Line 62: |
Line 62: |
| |- | | |- |
| | Yes | | | Yes |
− | | REG_CORECONFIG? | + | | REG_MPCORECFG? |
| | 0x10000FFC | | | 0x10000FFC |
| | 4 | | | 4 |
Line 76: |
Line 76: |
| | 1 | | | 1 |
| |} | | |} |
| + | |
| + | == REG_SYSPROT9 == |
| + | Writing values to SYSPROT sets the specified bitmask. The ARM9 [[Memory_layout|bootrom]](+0x8000) is disabled by writing bit0. bit1 is used by NATIVE_FIRM to make sure console-unique TWL AES-keys are only set at hard-boot. It is not possible to set any other bits. |
| + | |
| + | From disassembly of the New3DS process9, it appears that setting bit1 disables the 0x10012000+ region. |
| + | |
| + | == REG_SYSPROT11 == |
| + | ARM11 bootrom (+0x8000) is disabled by writing bit0. It is not possible to set any other bits. |
| | | |
| == REG_CARDCONF == | | == REG_CARDCONF == |
Line 93: |
Line 101: |
| * Selecting CTRCARD1 will activate the register space at [[CTRCARD|0x10004000]]. | | * Selecting CTRCARD1 will activate the register space at [[CTRCARD|0x10004000]]. |
| * Selecting CTRCARD2 will activate the register space at [[CTRCARD|0x10005000]]. | | * Selecting CTRCARD2 will activate the register space at [[CTRCARD|0x10005000]]. |
− |
| |
− | == REG_SYSPROT9 ==
| |
− |
| |
− | Writing values to SYSPROT sets the specified bitmask. The ARM9 [[Memory_layout|bootrom]](+0x8000) is disabled by writing bit0. bit1 is used by NATIVE_FIRM to make sure console-unique TWL AES-keys are only set at hard-boot. It is not possible to set any other bits.
| |
− |
| |
− | From disassembly of the New3DS process9, it appears that setting bit1 disables the 0x10012000+ region.
| |
− |
| |
− | == REG_SYSPROT11 ==
| |
− | ARM11 bootrom (+0x8000) is disabled by writing bit0. It is not possible to set any other bits.
| |
| | | |
| == REG_EXTMEMCNT9 == | | == REG_EXTMEMCNT9 == |
Line 110: |
Line 109: |
| The data in this extended memory doesn't change when disabling the memory, then re-enabling the memory. Reading this extended memory while disabled results in zeros. | | The data in this extended memory doesn't change when disabling the memory, then re-enabling the memory. Reading this extended memory while disabled results in zeros. |
| | | |
− | == 0x10010000 == | + | == REG_BOOTENV == |
| Initially this is value zero. NATIVE_FIRM writes value 1 here when a FIRM launch begins. The [[Legacy_FIRM_PXI|LGY]] FIRM writes value 3 here when handling PXI command 0x00020080(first TWL PXI command), it also writes value 7 here when handling PXI command 0x00030080(first AGB PXI command). This register can be read to determine what "mode" the system is running under: hard-boot, FIRM launch, or TWL/AGB FIRM. | | Initially this is value zero. NATIVE_FIRM writes value 1 here when a FIRM launch begins. The [[Legacy_FIRM_PXI|LGY]] FIRM writes value 3 here when handling PXI command 0x00020080(first TWL PXI command), it also writes value 7 here when handling PXI command 0x00030080(first AGB PXI command). This register can be read to determine what "mode" the system is running under: hard-boot, FIRM launch, or TWL/AGB FIRM. |
| + | |
| + | 0=Cold boot, 1=CTR, 3=TWL, 5=NTR, 7=AGB |
| + | |
| + | It is unknown if this register controls anything. |
| | | |
| == REG_UNITINFO == | | == REG_UNITINFO == |
| This 8-bit register is value zero for retail, non-zero for dev/debug units. | | This 8-bit register is value zero for retail, non-zero for dev/debug units. |
− |
| |
− |
| |
− | == REG_BOOTENV ==
| |
− | 0=Cold boot, 1=CTR, 3=TWL, 7=AGB
| |
− |
| |
− | It is unknown if this register controls anything.
| |