Line 9: |
Line 9: |
| | 1 | | | 1 |
| |- | | |- |
− | | KERNELVERSIONMINOR | + | | KERNEL_VERSIONMINOR |
| | 0x1FF80001 | | | 0x1FF80001 |
| | 1 | | | 1 |
| |- | | |- |
− | | KERNELVERSIONMAJOR | + | | 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 |
| |- | | |- |
− | | FIRMVERSIONMINOR | + | | FIRM_VERSIONMINOR |
| | 0x1FF80061 | | | 0x1FF80061 |
| | 1 | | | 1 |
| |- | | |- |
− | | FIRMVERSIONMAJOR | + | | FIRM_VERSIONMAJOR |
| | 0x1FF80062 | | | 0x1FF80062 |
| | 1 | | | 1 |
| |- | | |- |
− | | FIRMSYSCOREVER | + | | 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. |
| | | |
− | === KERNELVERSIONMINOR === | + | === KERNEL_VERSIONMINOR / FIRM_VERSIONMINOR === |
− | This is the kernel version-minor, this likely isn't obtained from the [[FIRM]] title-version. | + | This is the [[FIRM]] version-minor, this likely isn't obtained from the [[FIRM]] title-version. |
| | | |
− | === FIRMVERSIONMINOR === | + | === KERNEL_VERSIONMAJOR === |
− | This is the same as KERNELVERSIONMINOR.
| |
− | | |
− | === KERNELVERSIONMAJOR ===
| |
| This is the ((title-version & 0x3FF) >> 4), for the currently running [[FIRM]]. | | This is the ((title-version & 0x3FF) >> 4), for the currently running [[FIRM]]. |
| | | |
− | === FIRMVERSIONMAJOR === | + | === FIRM_VERSIONMAJOR === |
− | This is the same as KERNELVERSIONMAJOR. After [[AM:InstallNATIVEFIRM]] checks FIRMSYSCOREVER, [[AM:InstallNATIVEFIRM]] then compares FIRMVERSIONMAJOR with the NATIVE_FIRM ((title-version & 0x3FF) >> 4), when the latter is larger than FIRMVERSIONMAJOR [[AM:InstallNATIVEFIRM]] will trigger a FIRM install. | + | 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. |
| | | |
− | === FIRMSYSCOREVER === | + | === 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 FIRMSYSCOREVER, and these two values don't match, [[AM:InstallNATIVEFIRM]] will return an error. | + | 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 === |