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 ==
After [[Package1#Package1ldr|package1ldr]] decrypts and validates [[Package1#Package1_.28PK11.29|package1]], execution carries over into the [[Package1#Section_1|NX bootloader]].
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.


Among various tasks, this bootloader checks for a button combination to determine if the system should enter Recovery 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'''.
== 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:
[1.0.0-3.0.2]
* 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 into [[Safemode|safemode]] and automatically finding and installing new updates from the internet.
This results in the system booting the [[Safemode|safemode]] sysmodule and automatically finding and installing new updates from the internet.