Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.
Find a file
Tomasz Moń 206c10f333 Rework sdmmc clocking configuration
Use 204 MHz as host clock in SDR104 mode instead of 136 MHz.
Due to this, also change the frequency init divider so the
initialization frequency is below 400 kHz.
This makes the clocks for SDMMC1 in all modes to match the TRM table.

Make it clear in the code that HS200/HS400 modes in fact use PLLP_OUT0
and not PLLC4_OUT2_LJ like the comment suggest. In fact selecting the
PLLC4_OUT2_LJ as clock source results in freeze after switching to
HS200/HS400 mode. This is most likely related to the PLLC4 not being
enabled, but it should be checked later.

Set the HS200/HS400 divider to 3, as this is what the code really did
set prior to this change - so this commit does not change that.

Configure Legacy 12 MHz clock to run at 12 MHz using the SW default
configuration (as per TRM) for the SDMMC legacy timer.

Introduce initial version of sdmmc_host_clock_delay() in order to use it
in places where the wait is host clock dependent. The way it is
implemented now does not change the sleep that was used instead.
2018-06-12 17:20:15 +02:00
exosphere Merge pull request #73 from Resaec/uart 2018-06-04 16:33:43 +01:00
fusee Rework sdmmc clocking configuration 2018-06-12 17:20:15 +02:00
img Push all graphical resources to main repo, add credits 2018-05-01 18:42:23 -06:00
stratosphere fs.mitm: Add HANS-style redirection for System Data Archives. 2018-06-10 11:11:23 -06:00
thermosphere Revamp all the Makefiles (thanks @fincs @WinterMute) 2018-05-19 01:07:27 +02:00
.gitignore Revamp all the Makefiles (thanks @fincs @WinterMute) 2018-05-19 01:07:27 +02:00
LICENSE Add license and disclaimer. 2018-01-17 23:54:38 -08:00
Makefile Revamp all the Makefiles (thanks @fincs @WinterMute) 2018-05-19 01:07:27 +02:00
README.md Remove credit by request. 2018-06-07 20:55:57 -06:00

Banner

License

Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.

Components

Atmosphère consists of multiple components, each of which replaces/modifies a different component of the system:

  • Fusée: First-stage Loader, responsible for loading and validating stage 2 (custom TrustZone) plus package2 (Kernel/FIRM sysmodules), and patching them as needed. This replaces all functionality normally in Package1loader/NX Bootloader.
  • Exosphère: Customized TrustZone, to run a customized Secure Monitor
  • Thermosphère: EL2 EmuNAND support, i.e. backing up and using virtualized/redirected NAND images
  • Stratosphère: Custom Sysmodule(s), both Rosalina style to extend the kernel/provide new features, and of the loader reimplementation style to hook important system actions
  • Troposphère: Application-level Horizon OS patches, used to implement desirable CFW features

Credits

Atmosphère is currently being developed and maintained by SciresM, TuxSH and hexkyz.
In no particular order, we credit the following for their invaluable contributions:

  • switchbrew for the libnx project and the extensive documentation, research and tool development pertaining to the Nintendo Switch.
  • devkitPro for the devkitA64 toolchain and libnx support.
  • ReSwitched Team for additional documentation, research and tool development pertaining to the Nintendo Switch.
  • ChaN for the FatFs module.
  • Riley for suggesting "Atmosphere" as a Horizon OS reimplementation+customization project name.
  • naehrwert for the hekate project and its hwinit code base.
  • hedgeberg for research and hardware testing.
  • lioncash for code cleanup and general improvements.
  • jaames for designing and providing Atmosphère's graphical resources.
  • Everyone who submitted entries for Atmosphère's splash design contest.
  • All those who actively contribute to the Atmosphère repository.