Line 26:
Line 26:
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
−
| CFG_DEBUGUNIT
+
| CFG_DEBUGCTL
| 0x10000004
| 0x10000004
| 4
| 4
Line 35:
Line 35:
| 0x10000008
| 0x10000008
| 1
| 1
−
| TwlProcess9
+
| Boot9, Process9, TwlProcess9
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
−
| [[#CFG_CARDCONF|CFG_CARDCONF]]
+
| [[#CFG_CARDCTL|CFG_CARDCTL]]
| 0x1000000C
| 0x1000000C
| 2
| 2
−
|
+
| Process9
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
−
|
+
| [[#CFG_CARDSTATUS|CFG_CARDSTATUS]]
| 0x10000010
| 0x10000010
| 1
| 1
−
|
+
| Process9
−
|-
−
| style="background: green" | Yes
−
| ?
−
| 0x10000011
−
| 1
−
|
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
−
| ?
+
| CFG_CARDCYCLES0
| 0x10000012
| 0x10000012
| 2
| 2
−
|
+
| Boot9, Process9
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
−
| ?
+
| CFG_CARDCYCLES1
| 0x10000014
| 0x10000014
| 2
| 2
−
|
+
| Boot9, Process9
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
Line 134:
Line 128:
On New 3DS, the above is instead done by the [[FIRM#New_3DS_FIRM|Kernel9 loader]]. In addition to using the OTP data for initializing the TWL console-unique keys, the Kernel9 loader will generate the decryption key for NATIVE_FIRM. The final keyslot for NATIVE_FIRM is preserved, so that at a non-reset FIRM launch, the keyslot can be reused, since the OTP would then be inaccessible.
On New 3DS, the above is instead done by the [[FIRM#New_3DS_FIRM|Kernel9 loader]]. In addition to using the OTP data for initializing the TWL console-unique keys, the Kernel9 loader will generate the decryption key for NATIVE_FIRM. The final keyslot for NATIVE_FIRM is preserved, so that at a non-reset FIRM launch, the keyslot can be reused, since the OTP would then be inaccessible.
−
−
It is not possible to set any other bits.
== CFG_SYSPROT11 ==
== CFG_SYSPROT11 ==
Line 169:
Line 161:
|}
|}
−
== CFG_CARDCONF ==
+
== 0x10000008 ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bit
! Bit
! Description
! Description
+
! Used by
|-
|-
| 1-0
| 1-0
−
| Gamecard active controller select (0=NTRCARD, 1=?, 2=CTRCARD1, 3=CTRCARD2)
+
| ?
+
|
+
|-
+
| 3-2
+
| AES related? Value 3 written after write to AES_CTL.
+
| Boot9, Process9, TwlProcess9
+
|-
+
| 31-4
+
| Reserved
+
|
+
|}
+
+
== CFG_CARDCTL ==
+
{| class="wikitable" border="1"
+
! Bit
+
! Description
+
! Used by
+
|-
+
| 1-0
+
| Gamecard active controller select (0=NTRCARD, 1=?, 2=CTRCARD0, 3=CTRCARD1)
+
| Process9
|-
|-
| 8
| 8
−
| ?
+
| Enable gamecard eject IRQ, maybe?
+
| Process9
|}
|}
Depending on the gamecard controller that has been selected, one of the following gamecard registers will become active:
Depending on the gamecard controller that has been selected, one of the following gamecard registers will become active:
* Selecting NTRCARD will activate the register space at [[NTRCARD|0x10164000]].
* Selecting NTRCARD will activate the register space at [[NTRCARD|0x10164000]].
−
* Selecting CTRCARD1 will activate the register space at [[CTRCARD|0x10004000]].
+
* Selecting CTRCARD0 will activate the register space at [[CTRCARD|0x10004000]].
−
* Selecting CTRCARD2 will activate the register space at [[CTRCARD|0x10005000]].
+
* Selecting CTRCARD1 will activate the register space at [[CTRCARD|0x10005000]].
−
== 0x10000010 ==
+
== CFG_CARDSTATUS ==
−
When a gamecard isn't inserted, this register value is 0x01.
+
{| class="wikitable" border="1"
+
! Bit
+
! Description
+
! Used by
+
|-
+
| 0
+
| Cartridge-slot empty (0=inserted, 1=empty)
+
| Process9
+
|-
+
| 3-2
+
| ?
+
| Process9
+
|}
== CFG_EXTMEMCNT9 ==
== CFG_EXTMEMCNT9 ==
−
This register is New3DS-only. Only bit0 is writable: 0 = disable New3DS ARM9 memory at 0x08100000 size 0x80000, 1 = enable.
+
This register is New3DS-only.
−
This bit is set by New3DS ARM9-kernel crt0.
+
{| class="wikitable" border="1"
−
+
! Bit
−
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.
+
! Description
+
! Used by
+
|-
+
| 0
+
| Hide extended ARM9 memory (0=hidden, 1=shown)
+
| Kernel9 (New3DS)
+
|-
+
| 31-1
+
| Reserved
+
|
+
|}
== CFG_MPCORECFG ==
== CFG_MPCORECFG ==