Configuration Memory: Difference between revisions
No edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
= ARM11 Kernel Configuration Memory = | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! NAME | ! NAME | ||
Line 72: | Line 72: | ||
This memory page is [[Memory_layout|read-only]] for ARM11 processes. | This memory page is [[Memory_layout|read-only]] for ARM11 processes. | ||
= Shared Memory Page For ARM11 Processes = | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! NAME | ! NAME | ||
Line 89: | Line 89: | ||
This memory page is normally read-only for ARM11 processes, write-access is [[Memory_layout|determined]] by the process exheader kernel "Shared page writing" flag. | This memory page is normally read-only for ARM11 processes, write-access is [[Memory_layout|determined]] by the process exheader kernel "Shared page writing" flag. | ||
= ARM11 Kernel Config Fields = | |||
== 0x1FF80000 / 0x1FF80060 == | |||
Unknown, this is normally value 0. | Unknown, this is normally value 0. | ||
== KERNEL_VERSIONREVISION / FIRM_VERSIONREVISION == | |||
This is the version-revision for the currently running [[FIRM]]. | This is the version-revision for the currently running [[FIRM]]. | ||
== KERNEL_VERSIONMINOR == | |||
This is the version-minor from ((title-version & 0x3FF) >> 4), for the currently running [[FIRM]]. The values from KERNEL_VERSIONMINOR and KERNEL_VERSIONMAJOR can be stored in applications' [[NCCH#CXI|CXI]] exheader. | This is the version-minor from ((title-version & 0x3FF) >> 4), for the currently running [[FIRM]]. The values from KERNEL_VERSIONMINOR and KERNEL_VERSIONMAJOR can be stored in applications' [[NCCH#CXI|CXI]] exheader. | ||
== FIRM_VERSIONMINOR == | |||
This is the same as KERNEL_VERSIONMINOR. After [[AM:InstallNATIVEFIRM]] checks FIRM_SYSCOREVER, [[AM:InstallNATIVEFIRM]] then compares FIRM_VERSIONMINOR with the NATIVE_FIRM ((title-version & 0x3FF) >> 4), when the latter is larger than FIRM_VERSIONMINOR [[AM:InstallNATIVEFIRM]] will trigger a [[FIRM]] install. | This is the same as KERNEL_VERSIONMINOR. After [[AM:InstallNATIVEFIRM]] checks FIRM_SYSCOREVER, [[AM:InstallNATIVEFIRM]] then compares FIRM_VERSIONMINOR with the NATIVE_FIRM ((title-version & 0x3FF) >> 4), when the latter is larger than FIRM_VERSIONMINOR [[AM:InstallNATIVEFIRM]] will trigger a [[FIRM]] install. | ||
== KERNEL_VERSIONMAJOR / FIRM_VERSIONMAJOR == | |||
This is the version-major for the currently running [[FIRM]]. | This is the version-major for the currently running [[FIRM]]. | ||
== UPDATEFLAG == | |||
Normally this flag is zero, however when the ARM11 kernel is booting it will set this flag to 1, if the following [[PAD]] buttons are pressed: L, R, A, Up. When this flag is set, the system will launch the [[System_Settings#System_Updater|System Updater]] title instead of displaying the [[Home Menu]]. | Normally this flag is zero, however when the ARM11 kernel is booting it will set this flag to 1, if the following [[PAD]] buttons are pressed: L, R, A, Up. When this flag is set, the system will launch the [[System_Settings#System_Updater|System Updater]] title instead of displaying the [[Home Menu]]. | ||
== NSTID == | |||
This field contains the titleID of the first title to launch from CTR-NAND after the [[FIRM]] system processes are 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. | This field contains the titleID of the first title to launch from CTR-NAND after the [[FIRM]] system processes are 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]], 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 FIRM_SYSCOREVER, 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 == | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Bit | ! Bit | ||
Line 133: | Line 133: | ||
|} | |} | ||
Normally this | Normally this field 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]]. | This is the CTR-SDK version which was used to build the currently running [[FIRM]]. | ||
== APPMEMALLOC == | |||
This contains the total size of the memory that can be allocated with the application [[SVC|memory-type]]. On retail this is 64MB for [[3DS_Development_Unit_Software#Config|prod]]. | This contains the total size of the memory that can be allocated with the application [[SVC|memory-type]]. On retail this is 64MB for [[3DS_Development_Unit_Software#Config|prod]]. | ||
= Shared Memory Page Fields = | |||
== 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 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_Savegame|config]]) | 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_Savegame|config]]) |