CONFIG11 Registers

CONFIG11 Registers

Registers #

Old3DSNameAddressWidthUsed by
YesCFG11_SHAREDWRAM_32K_CODE<0-7>0x101400001*8boot11, process9, dsp services
YesCFG11_SHAREDWRAM_32K_DATA<0-7>0x101400081*8boot11, process9, dsp services
YesCFG11_NULLPAGE_CNT0x101401004
YesCFG11_FIQ_MASK0x101401041Kernel11.
YesDebug related bitfield? Observed: 0b1100(N3DS)/0b0000(O3DS)0x101401051
YesCFG_CDMA_CNT0x1014010C2TwlBg
YesCFG11_GPUPROT0x101401404Kernel11
YesCFG11_WIFICNT0x101401801twlbg, nwm services
YesCFG11_SPI_CNT0x101401c02spi services, TwlBg
Yes?0x101402004
NoCFG11_GPU_N3DS_CNT0x101404001NewKernel11
NoCFG11_CDMA_PERIPHERALS0x101404104NewKernel11
NoCFG11_BOOTROM_OVERLAY_CNT0x101404201NewKernel11
NoCFG11_BOOTROM_OVERLAY_VAL0x101404244NewKernel11
No?0x101404284
YesCFG11_SOCINFO0x10140FFC2Boot11, Kernel11

CFG11_SHAREDWRAM_32K_CODE #

Used for mapping 32K chunks of shared WRAM for DSP data.

BitsDescription
0-1Master (0=ARM9?, 1=ARM11?, 2 or 3=DSP/code)
2-4Offset (0..7) (slot 0..7) (LSB of address in 32Kbyte units)
5-6Not used (0)
7Enable (0=Disable, 1=Enable)

CFG11_SHAREDWRAM_32K_DATA #

Used for mapping 32K chunks of shared WRAM for DSP data.

BitsDescription
0-1Master (0=ARM9?, 1=ARM11?, 2 or 3=DSP/data)
2-4Offset (0..7) (slot 0..7) (LSB of address in 32Kbyte units)
5-6Not used (0)
7Enable (0=Disable, 1=Enable)

CFG11_NULLPAGE_CNT #

BitDescription
0Trap all data accesses to physmem addresses 0x0000 to 0x1000
16Unknown

The reset value of this register is 0x10000.

CFG11_FIQ_MASK #

Write bit N to mask FIQ interrutps on core N? (judging from what Kernel11 does – it only ever configures FIQ for core1)

Reset value: 0xF

CFG11_CDMA_CNT #

Write 1 to enable, to disable.

BitsDescription
0Enable Microphone DMA (CDMA 0x00)
1Enable NTRCARD DMA on Arm11 side (CDMA 0x01)
2-4?
5WiFi. Enabled during kernel init since 11.4.

CFG11_SPI_CNT #

When the corresponding bit is 0, the bus has to be accessed using the DS SPI registers. Otherwise it has to be accessed using the 3DS SPI registers.

BitDescription
0Enable SPI Registers 0x10160800.
1Enable SPI Registers 0x10142800.
2Enable SPI Registers 0x10143800.

CFG11_GPU_N3DS_CNT #

BitDescription
0Enable N3DS mode? (enables access to the extra N3DS FCRAM banks, etc.)
1Texture related? (observing texture glitches when disabling this bit)

CFG11_CDMA_PERIPHERALS #

BitDescription
0-17CDMA Peripheral 0x00-0x11 data request target (0=Old CDMA, 1=New CDMA)
18-31Unused

CFG11_BOOTROM_OVERLAY_CNT #

Bit0: Enable bootrom overlay functionality.

CFG11_BOOTROM_OVERLAY_VAL #

The 32-bit value to overlay data-reads to bootrom with. See PDN_LGR_CPU_CNT<0-3>.

CFG11_SOCINFO #

Read-only register. Identifies the maximum mode-switching capabilities of the SoC.

  • CTR: O3DS
  • LGR1: N3DS prototype, 4 cores (orginally 2), up to 535MHz, no L2C (see below)
  • LGR2: retail N3DS, 4 cores, up to 804MHz, has L2C

Kernel code suggests that devices that support LGR1 but not LGR2 only had 2 cores. All cores (the number of which can be read from MPCORE SCU registers) are usable in LGR1 mode.

BitsDescriptionUsed by
0CTR mode (1 on all 3DSes)Boot11
1LGR1 (1 on all N3DSes, orginally 2 cores, and 2x clockrate)Kernel11
2LGR2 (1 on all released N3DSes, 4 cores and 3x clockrate)Kernel11

CFG11_GPUPROT #

Old3DSBitsDescription
Yes3-0Old FCRAM DMA cutoff size, 0 = no protection.
No7-4New FCRAM DMA cutoff size, 0 = no protection.
Yes8AXIWRAM protection, 0 = accessible.
No10-9QTM DMA cutoff size
Yes31-11Zeroes

For the old FCRAM DMA cutoff, it protects starting from 0x28000000-(0x800000*x) until end of FCRAM. There is no way to protect the first 0x800000-bytes.

For the new FCRAM DMA cutoff, it protects starting from 0x30000000-(0x800000*x) until end of FCRAM. When the old FCRAM cutoff is set to non-zero, the first 0x800000-bytes bytes of new FCRAM are protected.

On New3DS the old+new FCRAM cutoff can be used at the same time, however this isn’t done officially.

For the QTM DMA cutoff, it protects starting from 0x1F400000-(0x100000*x) until end of QTM mem.

On cold boot this reg is set to 0.

When this register is set to value 0, the GPU can access the entire FCRAM, AXIWRAM, and on New3DS all QTM-mem.

Initialized during kernel boot, and used with SVC 0x59 which was implemented with v11.3.

CFG11_WIFICNT #

Old3DSBitsDescription
Yes0Enable wifi subsystem