Changes

Jump to navigation Jump to search
7,644 bytes added ,  20:31, 14 April 2020
no edit summary
Line 1: Line 1: −
boot2 is the first non-built-in sysmodule. It's presumably hardcoded to be the first sysmodule launched by PM.
+
boot2 is the first non-built-in sysmodule. It's hardcoded to be the first sysmodule launched by PM.
   −
It connects to "pm:shell" service and launches the following titles in this order:
+
On retail systems, the boot2 title is called [[#boot2.prodBoot|boot2.prodBoot]] while on debug systems it's called [[#boot2|boot2]]. Debug systems also have a version called [[#boot2.SafeMode|boot2.SafeMode]] installed in SAFE for safe mode. During [[Factory Setup|the factory setup process]] the boot2 title is called [[#boot2.manuBoot|boot2.manuBoot]] instead.
 +
 
 +
= boot2.prodBoot =
 +
It opens the [[Process_Manager_services#pm:shell|pm:shell]] service and prior to [[10.0.0|10.0.0]] launches the following titles in order:
 
* 0100000000000021 (psc)
 
* 0100000000000021 (psc)
 
* 0100000000000009 (settings)
 
* 0100000000000009 (settings)
Line 10: Line 13:  
* 010000000000001A (pcv)
 
* 010000000000001A (pcv)
   −
Then it connects to "set:sys" and reads a bool from "boot" section called "force_maintenance" with default value true.
+
It then opens the [[Settings_services#set:sys|set:sys]] service and reads a bool from the "boot" section called "force_maintenance" with default value set to "true".
   −
If the value reads successfully as false, it initializes "gpio" and opens sessions for GPIOs 26 and 25.
+
If the value reads successfully as "false", it opens the [[Bus_services#gpio|gpio]] service and opens sessions for GPIOs 26 and 25.
If both GPIOs read as zero, then maintenance mode is forced. This probably checks if both volume up and down keys are held down at the same time?
+
If both GPIOs read as zero, then [[Recovery_Mode|maintenance mode]] is forced despite the setting being false. This checks if both volume up and down keys are held down at the same time.
   −
Then depending on maintenance mode or not it launches the following titles in this order:
+
If it's in maintenance mode then it opens the [[Process_Manager_services#pm:bm|pm:bm]] service and calls [[Process_Manager_services#pm:bm|SetMaintenanceBoot]].
 +
 
 +
Prior to [[10.0.0|10.0.0]] it then launches the following titles in order:
 
* 0100000000000023 (am)
 
* 0100000000000023 (am)
 
* 0100000000000019 (nvservices)
 
* 0100000000000019 (nvservices)
Line 22: Line 27:  
* 010000000000001F (ns)
 
* 010000000000001F (ns)
 
* 0100000000000015 (lm)
 
* 0100000000000015 (lm)
* 010000000000001B (ppc)
+
* 010000000000001B (ppc) [1.0.0-8.1.0]
 
* 0100000000000010 (ptm)
 
* 0100000000000010 (ptm)
 
* 0100000000000013 (hid)
 
* 0100000000000013 (hid)
Line 33: Line 38:  
* 0100000000000018 (ldn)
 
* 0100000000000018 (ldn)
 
* 010000000000001E (account)
 
* 010000000000001E (account)
* 010000000000000E (friends) [skipped in maintenance]
+
* 010000000000000E (friends) [skipped in maintenance mode]
 
* 0100000000000020 (nfc)
 
* 0100000000000020 (nfc)
 +
* 010000000000003C (jpegdec) [4.0.0+]
 
* 0100000000000022 (capsrv)
 
* 0100000000000022 (capsrv)
 
* 0100000000000024 (ssl)
 
* 0100000000000024 (ssl)
 
* 0100000000000025 (nim)
 
* 0100000000000025 (nim)
* 010000000000000C (bcat) [skipped in maintenance]
+
* 010000000000000C (bcat) [skipped in maintenance mode]
 
* 010000000000002B (erpt)
 
* 010000000000002B (erpt)
 
* 0100000000000033 (es)
 
* 0100000000000033 (es)
 
* 010000000000002E (pctl)
 
* 010000000000002E (pctl)
 
* 010000000000002A (btm)
 
* 010000000000002A (btm)
* 0100000000000030 (eupld) [skipped in maintenance]
+
* 0100000000000030 (eupld) [skipped in maintenance mode]
 
* 0100000000000031 (glue)
 
* 0100000000000031 (glue)
 
* 0100000000000032 (eclct)
 
* 0100000000000032 (eclct)
* 010000000000002F (npns) [skipped in maintenance]
+
* 010000000000002F (npns) [skipped in maintenance mode]
 
* 0100000000000034 (fatal)
 
* 0100000000000034 (fatal)
 +
* 0100000000000037 (ro) [3.0.0+]
 +
* 0100000000000038 (profiler) (doesn't exist on retail systems) [3.0.0+]
 +
* 0100000000000039 (sdb) [3.0.0+]
 +
* 010000000000003A (migration) [4.0.0+]
 +
* 0100000000000035 (grc) [4.0.0+]
 +
* 010000000000003E (olsc) [6.0.0+]
 +
* 0100000000000041 (ngct) [9.0.0+]
 +
 +
In [[10.0.0|10.0.0]] the order was switched up a bit
 +
 +
It now starts by launching the following titles in order:
 +
* 0100000000000021 (psc)
 +
* 0100000000000009 (settings)
 +
* 0100000000000006 (usb)
 +
* 010000000000001D (pcie)
 +
* 010000000000000A (bus)
 +
* 010000000000001A (pcv)
 +
* 0100000000000007 (tma)
 +
 +
Then it launches the following titles in order:
 +
* 0100000000000023 (am)
 +
* 0100000000000019 (nvservices)
 +
* 010000000000001C (nvnflinger)
 +
* 010000000000002D (vi)
 +
* 0100000000000042 (pgl)
 +
* 010000000000001F (ns)
 +
* 0100000000000015 (lm)
 +
* 0100000000000010 (ptm)
 +
* 0100000000000013 (hid)
 +
* 0100000000000014 (audio)
 +
* 0100000000000016 (wlan)
 +
* 010000000000000B (bluetooth)
 +
* 0100000000000012 (bsdsockets)
 +
* 010000000000000F (nifm)
 +
* 0100000000000018 (ldn)
 +
* 010000000000001E (account)
 +
* 0100000000000020 (nfc)
 +
* 010000000000003C (jpegdec)
 +
* 0100000000000022 (capsrv)
 +
* 0100000000000024 (ssl)
 +
* 0100000000000025 (nim)
 +
* 010000000000002B (erpt)
 +
* 0100000000000033 (es)
 +
* 010000000000002E (pctl)
 +
* 010000000000002A (btm)
 +
* 0100000000000031 (glue)
 +
* 0100000000000032 (eclct)
 +
* 010000000000002F (npns)
 +
* 0100000000000034 (fatal)
 +
* 0100000000000037 (ro)
 +
* 0100000000000038 (profiler) (doesn't exist on retail systems)
 +
* 0100000000000039 (sdb)
 +
* 010000000000003A (migration)
 +
* 0100000000000035 (grc)
 +
* 010000000000003E (olsc)
 +
* 0100000000000041 (ngct)
 +
* 010000000000000E (friends)
 +
* 010000000000000C (bcat)
 +
* 0100000000000030 (eupld)
    
This list is probably optimized for boot-time. It launches display-related things first presumably to make sure it displays something as soon as possible.
 
This list is probably optimized for boot-time. It launches display-related things first presumably to make sure it displays something as soon as possible.
    
After that, the process exits itself.
 
After that, the process exits itself.
 +
 +
= boot2 =
 +
Just like [[#boot2.prodBoot|boot2.prodBoot]], it opens the [[Process_Manager_services#pm:shell|pm:shell]] service and prior to [[10.0.0|10.0.0]] launches the following titles in order:
 +
* 0100000000000021 (psc)
 +
* 0100000000000009 (settings)
 +
* 0100000000000006 (usb)
 +
* 010000000000001D (pcie)
 +
* 010000000000000A (bus)
 +
* 0100000000000007 (tma)
 +
* 010000000000001A (pcv)
 +
 +
It then launches the following titles in order:
 +
* 0100000000000023 (am)
 +
* 0100000000000019 (nvservices)
 +
* 010000000000001C (nvnflinger)
 +
* 010000000000002D (vi)
 +
* 010000000000001F (ns)
 +
* 0100000000003003 (DebugMonitor0) [1.0.0-4.1.0]
 +
* 010000000000000D (dmnt)
 +
* 0100000000000015 (lm)
 +
* 010000000000001B (ppc) [1.0.0-8.1.0]
 +
* 0100000000000010 (ptm)
 +
* 0100000000000017 (cs)
 +
* 0100000000000011 (shell)
 +
* 0100000000000013 (hid)
 +
* 0100000000000014 (audio)
 +
* 0100000000000029 (lbl)
 +
* 0100000000000016 (wlan)
 +
* 010000000000000B (bluetooth)
 +
* 0100000000000012 (bsdsockets)
 +
* 010000000000000F (nifm)
 +
* 0100000000000018 (ldn)
 +
* 010000000000001E (account)
 +
* 010000000000000E (friends) [skipped in maintenance mode]
 +
* 0100000000000020 (nfc)
 +
* 010000000000003C (jpegdec) [4.0.0+]
 +
* 0100000000000022 (capsrv)
 +
* 0100000000000024 (ssl)
 +
* 0100000000000025 (nim)
 +
* 010000000000000C (bcat) [skipped in maintenance mode]
 +
* 010000000000002B (erpt)
 +
* 0100000000000033 (es)
 +
* 010000000000002E (pctl)
 +
* 010000000000002A (btm)
 +
* 0100000000000030 (eupld) [skipped in maintenance mode]
 +
* 0100000000000031 (glue)
 +
* 0100000000000032 (eclct)
 +
* 010000000000B120 (nvdbgsvc)
 +
* 010000000000002F (npns) [skipped in maintenance mode]
 +
* 0100000000000034 (fatal)
 +
* 0100000000000037 (ro) [3.0.0+]
 +
* 0100000000000038 (profiler)
 +
* 0100000000000039 (sdb) [3.0.0+]
 +
* 010000000000003A (migration) [4.0.0+]
 +
* 0100000000000035 (grc) [4.0.0+]
 +
* 010000000000003E (olsc) [6.0.0+]
 +
* 0100000000000041 (ngct) [9.0.0+]
 +
 +
In [[10.0.0|10.0.0]] the order was switched up a bit
 +
 +
It now starts by launching the following titles in order:
 +
* 0100000000000021 (psc)
 +
* 0100000000000009 (settings)
 +
* 0100000000000006 (usb)
 +
* 010000000000001D (pcie)
 +
* 010000000000000A (bus)
 +
* 010000000000001A (pcv)
 +
* 0100000000000007 (tma) or 010000000000B240 (htc)
 +
* 010000000000000D (dmnt) or 010000000000D609 (dmnt.gen2)
 +
 +
Then it launches the following titles in order:
 +
* 0100000000000023 (am)
 +
* 0100000000000019 (nvservices)
 +
* 010000000000001C (nvnflinger)
 +
* 010000000000002D (vi)
 +
* 010000000000B120 (nvdbgsvc)
 +
* 0100000000000017 (cs)
 +
* 0100000000000011 (shell)
 +
* 0100000000000042 (pgl)
 +
* 010000000000001F (ns)
 +
* 0100000000000015 (lm)
 +
* 0100000000000010 (ptm)
 +
* 0100000000000013 (hid)
 +
* 0100000000000014 (audio)
 +
* 0100000000000016 (wlan)
 +
* 010000000000000B (bluetooth)
 +
* 0100000000000012 (bsdsockets)
 +
* 010000000000000F (nifm)
 +
* 0100000000000018 (ldn)
 +
* 010000000000001E (account)
 +
* 0100000000000020 (nfc)
 +
* 010000000000003C (jpegdec)
 +
* 0100000000000022 (capsrv)
 +
* 0100000000000024 (sll)
 +
* 0100000000000025 (nim)
 +
* 010000000000002B (erpt)
 +
* 0100000000000033 (es)
 +
* 010000000000002E (pctl)
 +
* 010000000000002A (btm)
 +
* 0100000000000031 (glue)
 +
* 0100000000000032 (eclct)
 +
* 010000000000002F (npns)
 +
* 0100000000000034 (fatal)
 +
* 0100000000000037 (ro)
 +
* 0100000000000038 (profiler)
 +
* 0100000000000039 (sdb)
 +
* 010000000000003A (migration)
 +
* 0100000000000035 (grc)
 +
* 010000000000003E (olsc)
 +
* 0100000000000041 (ngct)
 +
* 010000000000000E (friends)
 +
* 010000000000000C (bcat)
 +
* 0100000000000030 (eupld)
 +
 +
= boot2.SafeMode =
 +
Normally it launches the exact same titles as [[#boot2.prodBoot|boot2.prodBoot]] in the same order, but then finishes by launching 0100000000002041 (recovery) before exiting itself.
 +
 +
In maintenance mode its launch order is identical to the launch order in [[#boot2|boot2]] maintenance mode.
 +
 +
= boot2.manuBoot =
 +
Just like [[#boot2.prodBoot|boot2.prodBoot]], it opens the [[Process_Manager_services#pm:shell|pm:shell]] service and launches the following titles in order:
 +
* 0100000000000021 (psc)
 +
* 0100000000000009 (settings)
 +
* 0100000000000006 (usb)
 +
* 010000000000001D (pcie)
 +
* 010000000000000A (bus)
 +
* 0100000000000007 (tma)
 +
* 010000000000001A (pcv)
 +
 +
If maintenance mode was requested, it then launches the following titles in order:
 +
* 0100000000000023 (am)
 +
* 0100000000000019 (nvservices)
 +
* 010000000000001C (nvnflinger)
 +
* 010000000000002D (vi)
 +
* 010000000000000D (dmnt)
 +
* 010000000000001F (ns)
 +
* 0100000000000015 (lm)
 +
* 0100000000000017 (cs)
 +
* 0100000000000011 (shell)
 +
* 0100000000000013 (hid)
 +
* 0100000000000014 (audio)
 +
* 0100000000000029 (lbl)
 +
* 0100000000000016 (wlan)
 +
* 010000000000000B (bluetooth)
 +
* 0100000000000012 (bsdsockets)
 +
* 010000000000000F (nifm)
 +
* 0100000000000018 (ldn)
 +
* 010000000000001E (account)
 +
* 0100000000000020 (nfc)
 +
* 0100000000000022 (capsrv)
 +
* 0100000000000024 (ssl)
 +
* 0100000000000025 (nim)
 +
* 010000000000002B (erpt)
 +
* 0100000000000033 (es)
 +
* 010000000000002E (pctl)
 +
* 010000000000002A (btm)
 +
* 0100000000000031 (glue)
 +
* 0100000000000032 (eclct)
 +
* 010000000000B120 (nvdbgsvc)
 +
* 0100000000000034 (fatal)
 +
* 01000000000020D1 (DevSafeModeUpdater)
 +
 +
Otherwise, it launches exactly the same titles as [[#boot2.prodBoot|boot2.prodBoot]] in the same order, but then finishes by launching 010000000000B14A ([[Manu Services|Manu]]) before exiting itself.

Navigation menu