Boot Modes: Difference between revisions
m Hexkyz moved page Recovery Mode to Boot Modes |
No edit summary |
||
Line 1: | Line 1: | ||
The Nintendo Switch's Horizon OS supports different boot modes to allow system recovery and general maintenance. | |||
= Recovery Mode = | |||
The Recovery Mode (also known as Maintenance Mode in firmware version 1.0.0) can be accessed when turning on the Nintendo Switch while performing a button combo. | The Recovery Mode (also known as Maintenance Mode in firmware version 1.0.0) can be accessed when turning on the Nintendo Switch while performing a button combo. | ||
= Description = | == Description == | ||
The [[boot2]] sysmodule is responsible for checking whether the system should go into Recovery Mode or not. This is done by looking for a particular system setting ("force_maintenance") or by checking the GPIOs for a specific button combination. | |||
== Button combination == | |||
= Button combination = | |||
In order to enter Recovery Mode, the following combination must be performed: | In order to enter Recovery Mode, the following combination must be performed: | ||
* With the system powered off, press and hold Volume Down + Volume Up; | * With the system powered off, press and hold Volume Down + Volume Up; | ||
* Press the Power button while still holding Volume Down + Volume Up; | * Press the Power button while still holding Volume Down + Volume Up; | ||
Line 17: | Line 16: | ||
The [1.0.0] variant (known as Maintenance Mode) does not have the system update option. However, downloaded update data is still deleted when this menu is accessed. | The [1.0.0] variant (known as Maintenance Mode) does not have the system update option. However, downloaded update data is still deleted when this menu is accessed. | ||
= Safe Mode = | |||
The Safe Mode can be accessed when turning on the Nintendo Switch while performing a button combo. | |||
== Description == | |||
After [[Package1#Package1ldr|package1ldr]] decrypts and validates [[Package1#Package1_.28PK11.29|package1]], execution carries over into the [[Package1#Section_1|NX bootloader]]. | |||
Among various tasks, this bootloader checks for a button combination to determine if the system should enter Safe Mode. If the combination is performed, the bootloader reads the [[Flash_Filesystem#Boot_Partitions|SafeMode Firmware BCT]] from the eMMC, swaps the normal [[BCT]] with it and performs a Watchdog reset after writing [[Panic_codes|panic code 0x20]] to '''PMC_SCRATCH200'''. | |||
[1.0.0-3.0.2] Entering Safe Mode forces the system to use [[Title_list#System_Data_Archives|Firmware Package B]], which is nearly identical to [[Title_list#System_Data_Archives|Firmware Package A]], with the exception of containing different code for the built-in sysmodules [[Filesystem_services|FS]] and [[boot]]. | |||
When coming from the Watchdog reset, the [[Package1#Section_1|NX bootloader]] checks if the system is running in Safe Mode by looking at the current bootloader's index. If the index is not 0, the screen is briefly painted with the [[Panic_codes|panic color 0xFFFFAA]] and execution continues into the [[Recovery Mode]]. | |||
[4.0.0+] Entering Safe Mode forces the system to use [[Title_list#System_Data_Archives|Firmware Package B]] or [[Title_list#System_Data_Archives|Firmware Package D]], but these now differ significantly from their normal counterparts. In addition to containing different code for the [[Filesystem_services|FS]] and [[boot]] built-in sysmodules, [[NCM_services|NCM]] and [[Process_Manager_services|PM]] are now changed to allow content database reconstruction and booting the new [[Safemode|safemode]] sysmodule. Due to the additional dependencies of this process [[PCV_services|PCV]], [[PSC_services|psc]] and [[Bus_services|bus]] sysmodules are now bundled with the kernel (only in Safe Mode firmware). | |||
The screen painting routine when coming from the Watchdog reset was removed. | |||
== Button combination == | |||
In order to enter Safe Mode, the following combination must be performed: | |||
[1.0.0-3.0.2] | |||
Same combination used for [[Recovery Mode]]. | |||
[4.0.0+] | [4.0.0+] | ||
Line 24: | Line 48: | ||
* Let go of the Power button and keep holding Volume Up until the [[Safemode|safemode]] system module starts. | * Let go of the Power button and keep holding Volume Up until the [[Safemode|safemode]] system module starts. | ||
This results in the system booting | This results in the system booting the [[Safemode|safemode]] sysmodule and automatically finding and installing new updates from the internet. |