Changes

2,089 bytes added ,  18:40, 22 April 2018
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.