Configuration Memory: Difference between revisions
No edit summary |
|||
| Line 9: | Line 9: | ||
| 1 | | 1 | ||
|- | |- | ||
| | | KERNEL_VERSIONMINOR | ||
| 0x1FF80001 | | 0x1FF80001 | ||
| 1 | | 1 | ||
|- | |- | ||
| | | KERNEL_VERSIONMAJOR | ||
| 0x1FF80002 | | 0x1FF80002 | ||
| 1 | | 1 | ||
| Line 36: | Line 36: | ||
| 0x1FF80014 | | 0x1FF80014 | ||
| 1 | | 1 | ||
|- | |||
| KERNEL_CTRSDKVERSION | |||
| 0x1FF80018 | |||
| 4 | |||
|- | |- | ||
| APPMEMALLOC | | APPMEMALLOC | ||
| Line 41: | Line 45: | ||
| 4 | | 4 | ||
|- | |- | ||
| | | FIRM_VERSIONMINOR | ||
| 0x1FF80061 | | 0x1FF80061 | ||
| 1 | | 1 | ||
|- | |- | ||
| | | FIRM_VERSIONMAJOR | ||
| 0x1FF80062 | | 0x1FF80062 | ||
| 1 | | 1 | ||
|- | |- | ||
| | | FIRM_SYSCOREVER | ||
| 0x1FF80064 | | 0x1FF80064 | ||
| 4 | |||
|- | |||
| FIRM_CTRSDKVERSION | |||
| 0x1FF80068 | |||
| 4 | | 4 | ||
|- | |- | ||
| Line 64: | Line 72: | ||
All of these fields are initialized by the ARM11 kernel, except for MENUTID and ACTIVEMENUTID which are set by NS. | All of these fields are initialized by the ARM11 kernel, except for MENUTID and ACTIVEMENUTID which are set by NS. | ||
=== | === KERNEL_VERSIONMINOR / FIRM_VERSIONMINOR === | ||
This is the | This is the [[FIRM]] version-minor, this likely isn't obtained from the [[FIRM]] title-version. | ||
=== | === KERNEL_VERSIONMAJOR === | ||
This is the ((title-version & 0x3FF) >> 4), for the currently running [[FIRM]]. | This is the ((title-version & 0x3FF) >> 4), for the currently running [[FIRM]]. | ||
=== | === FIRM_VERSIONMAJOR === | ||
This is the same as | This is the same as KERNEL_VERSIONMAJOR. After [[AM:InstallNATIVEFIRM]] checks FIRM_SYSCOREVER, [[AM:InstallNATIVEFIRM]] then compares FIRM_VERSIONMAJOR with the NATIVE_FIRM ((title-version & 0x3FF) >> 4), when the latter is larger than FIRM_VERSIONMAJOR [[AM:InstallNATIVEFIRM]] will trigger a [[FIRM]] install. | ||
=== UPDATEFLAG === | === UPDATEFLAG === | ||
| Line 85: | Line 90: | ||
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. | 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. | ||
=== | === FIRM_SYSCOREVER === | ||
Normally this is the same as SYSCOREVER. This used by [[AM:InstallNATIVEFIRM]] for comparing with the NATIVE_FIRM titleID-low. When the low u8 from the NATIVE_FIRM titleID-low is larger than FIRMSYSCOREVER, [[AM:InstallNATIVEFIRM]] will trigger FIRM installing. When that u8 is not larger than | Normally this is the same as SYSCOREVER. This used by [[AM:InstallNATIVEFIRM]] for comparing with the NATIVE_FIRM titleID-low. When the low u8 from the NATIVE_FIRM titleID-low is larger than FIRMSYSCOREVER, [[AM:InstallNATIVEFIRM]] will trigger FIRM installing. When that u8 is not larger than FIRM_SYSCOREVER, and these two values don't match, [[AM:InstallNATIVEFIRM]] will return an error. | ||
=== UNITINFO === | === UNITINFO === | ||
| Line 104: | Line 109: | ||
Normally this register is all-zero, however bit1 in this field 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. [[ErrDisp]] will display development error info when bit0 is clear. | Normally this register is all-zero, however bit1 in this field 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. [[ErrDisp]] will display development error info when bit0 is clear. | ||
=== KERNEL_CTRSDKVERSION / FIRM_CTRSDKVERSION === | |||
This is the CTR-SDK version which was used to build the currently running [[FIRM]]. | |||
=== APPMEMALLOC === | === APPMEMALLOC === | ||