Registers

NAME PHYSICAL ADDRESS WIDTH INFO
SPI_CFG 0x101401C0 4
SHAREDWRAM_CFG 0x10141000 16
? 0x10141100 1
? 0x10141103 1
? 0x10141104 1
? 0x10141105 1
? 0x10141108 1
PDN_WIFI? 0x1014110C 1
? 0x10141140 1
? 0x10141141 1
PDN_WIFI 0x10141180 1 1=Internet?, 0=Streetpass?
PDN_HID 0x101411C0 1
? 0x10141200 4
? 0x10141FFC 4
? 0x10141008 4
? 0x1014100C 4
PDN_TWLMODE? 0x10141100 2
? 0x10141104 2
? 0x10141110 2
? 0x10141112 2
? 0x10141114 2
? 0x10141116 2
PDN_LCD 0x10141200 1 Boot11 sets/clears bit16, bit0.
PDN_BACKLIGHT 0x10141202 1
? 0x10141204 1 Boot11 sets/clears bit0.
? 0x10141210 1
PDN_CODEC 0x10141220 1
PDN_CAMERA 0x10141224 1
? 0x10141230 1

0x1EC41008 and 0x1EC4100C

These are the PDN PTM registers used for the PDN PTM service.

PDN_TWLMODE

The very last 3DS-mode register poke the TWL_FIRM Process9 does before it gets switched into TWL-mode, is writing 0x8000 to this register. Before writing this register, TWL Process9 waits for the value of this register to become non-zero. The Process9 code for this runs from ITCM, since switching into TWL-mode includes remapping all ARM9 physical memory.

Writing 0x8000 to here from the ARM9 with NATIVE_FIRM running doesn't seem to do anything, other reg-pokes likely need done first.

PDN_LCD

This one seems to control the LCD displays?

PDN_BACKLIGHT

This is the power register used for the LCD backlights.

bit0 = turn on/off LCD backlight, rest = always 0.

PDN_CODEC

This is the power register used for the PDN CODEC service.

bit0 = unknown, bit1 = turn on/off DSP, rest = always 0.

PDN_CAMERA

This is the power register used for the PDN camera service.

bit0 = unknown, bit1 = turn on/off cameras, rest = always 0.