Difference between revisions of "Configuration Memory"
Line 1: | Line 1: | ||
− | == | + | == Memory == |
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! NAME | ! NAME | ||
− | |||
! PROCESS VIRTUAL ADDRESS | ! PROCESS VIRTUAL ADDRESS | ||
− | |||
! WIDTH | ! WIDTH | ||
|- | |- | ||
− | | | + | | NSTID |
− | |||
| 0x1FF80008 | | 0x1FF80008 | ||
− | |||
| 8 | | 8 | ||
|- | |- | ||
− | | | + | | SYSCOREVER |
− | |||
| 0x1FF80010 | | 0x1FF80010 | ||
− | |||
| 4 | | 4 | ||
|- | |- | ||
− | | | + | | UNITINFO |
− | |||
| 0x1FF80014 | | 0x1FF80014 | ||
− | |||
| 1 | | 1 | ||
|- | |- | ||
− | | | + | | MENUTID |
− | |||
| 0x1FF810A0 | | 0x1FF810A0 | ||
− | |||
| 8 | | 8 | ||
|- | |- | ||
− | | | + | | ACTIVEMENUTID |
− | |||
| 0x1FF810A8 | | 0x1FF810A8 | ||
− | |||
| 8 | | 8 | ||
|} | |} | ||
− | All of these | + | All of these fields are initialized by the ARM11 kernel, except for MENUTID and ACTIVEMENUTID which are set by NS. |
− | === | + | === NSTID === |
− | This | + | This field contains the titleID of the first title to launch after the core system processes loaded. The [[Process Manager Ports|PM]] module launches this title. If this field titleID is all-zero, the system will not attempt to launch the title. The regular ARM11 kernel sets this to the regular [[NS]] titleID, while the SAFE_MODE ARM11 kernel sets this to the SAFE_MODE NS titleID. |
− | === | + | === SYSCOREVER === |
− | When launching [[NCCH#CXI|CXIs]], | + | When launching [[NCCH#CXI|CXIs]], the value stored here must match the core version field stored in the CXI exheader. If they do not match, the [[Process Manager Ports|PM]] module will refuse to launch the ARM11 process. The regular ARM11 kernel sets this to 0x2, while the SAFE_MODE ARM11 kernel sets this to 0x3. |
− | === | + | === UNITINFO === |
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Bit | ! Bit | ||
Line 64: | Line 52: | ||
|} | |} | ||
− | Normally this register is all-zero, however bit2 in this register is set by the ARM11 kernel when ARM debug CP14 DSCR bit14 is set. [[NS]] loads the menu TID from | + | Normally this register is all-zero, however bit2 in this register is set by the ARM11 kernel when ARM debug CP14 DSCR bit14 is set. [[NS]] loads the menu TID from MENUTID when bits 1-7 of this register are clear. |
− | === | + | === MENUTID === |
This contains the titleID of the retail menu which will be launched by [[NS]]. | This contains the titleID of the retail menu which will be launched by [[NS]]. | ||
− | === | + | === ACTIVEMENUTID === |
− | This contains the titleID of the currently running menu launched by [[NS]]. Normally this is the home menu TID from | + | This contains the titleID of the currently running menu launched by [[NS]]. Normally this is the home menu TID from MENUTID, but if launching that fails this titleID is the [[NS#Alternate Menu|alternate menu]].(On debug units this is the TID loaded from [[Config Info Blocks|config]]) |
Revision as of 07:45, 27 November 2012
Memory
NAME | PROCESS VIRTUAL ADDRESS | WIDTH |
---|---|---|
NSTID | 0x1FF80008 | 8 |
SYSCOREVER | 0x1FF80010 | 4 |
UNITINFO | 0x1FF80014 | 1 |
MENUTID | 0x1FF810A0 | 8 |
ACTIVEMENUTID | 0x1FF810A8 | 8 |
All of these fields are initialized by the ARM11 kernel, except for MENUTID and ACTIVEMENUTID which are set by NS.
NSTID
This field contains the titleID of the first title to launch after the core system processes loaded. The PM module launches this title. If this field titleID is all-zero, the system will not attempt to launch the title. The regular ARM11 kernel sets this to the regular NS titleID, while the SAFE_MODE ARM11 kernel sets this to the SAFE_MODE NS titleID.
SYSCOREVER
When launching CXIs, the value stored here must match the core version field stored in the CXI exheader. If they do not match, the PM module will refuse to launch the ARM11 process. The regular ARM11 kernel sets this to 0x2, while the SAFE_MODE ARM11 kernel sets this to 0x3.
UNITINFO
Bit | Description |
---|---|
0 | ? |
1 | ? |
2 | Set for debug units |
3-7 | ? |
Normally this register is all-zero, however bit2 in this register is set by the ARM11 kernel when ARM debug CP14 DSCR bit14 is set. NS loads the menu TID from MENUTID when bits 1-7 of this register are clear.
MENUTID
This contains the titleID of the retail menu which will be launched by NS.
ACTIVEMENUTID
This contains the titleID of the currently running menu launched by NS. Normally this is the home menu TID from MENUTID, but if launching that fails this titleID is the alternate menu.(On debug units this is the TID loaded from config)