Card Registers

Menu

Getting Started

System Information

Misc

(redirected from Hardware.DSCardRegs)

CARD_SPI_CR (0x040001A0:16)

bitmodenamedescription
15WEnableEnables the SPI unit (reads as 0?)
14R/WIRQFire an IRQ when transfer is done
13R/W/Last_Trasmission0: Last write, 1: Part of a sequence
12..8W???
7RBusy0: Idle, 1: Transfer in progress
6R/WMode1: Talk to SPI device on DS Card
5..2R-000
1..0R/WSPI frequency0: 4.19MHz, 1: 2.10MHz, 2: 1.05MHz, 3: 524kHz

By comparison with the ARM7, some of the writable bits may select bus speed or 8/16 bit mode. Fixme: test this (write-and-stick bits = 00ffe043).

CARD_SPI_DATA (0x040001A2:16)

bitmodenamedescription
15..8W???
7..0R/WSPI data*

* A read returns the last value transferred in, while a write starts a transfer cycle.

For more information, see the SPI page for more information on SPI bus transfers, and Chips for information on some of the save memories used on DS cards.

CARD_CR2 (0x040001A4:32)

bitnamedescription
31R/Wenable/start 
30R/Wis commandis this a send command or a read?
29R/Wresetcontrols the status of the reset line?
28R/W?set after setting the encrypt registers
27R/W? 
26..24R/Wdatablock countused for reading multiple of 512 bytes. 7=invalid
23Rdata readyerr, in one place it reads from one reg, and in the other, another
22R/W? 
21..16R/Wlength of some sort 
15W?set after setting encrypt registers, elsewhere
14R/Wencrypt1=encrypt this command, 0=nah, send it plaintext
13R/W?only used on the binary transfers (10,20,A0,40,60)
12..0R/WData transfer size(does not count size of command itself)

ff7f7fff

Write-onlys (0x040001B0..1BB)

Write-only These are encrypt registers, they control the internal encryptor/decryptor, versus the 3C command which tells the card to set its encryptor/decryptor.

  • 0x040001B0:32 = CARD_1B0 (32 bits)
  • 0x040001B4:32 = CARD_1B4 (7 bits)
  • 0x040001B8:16 = CARD_1B8 (32 bits)
  • 0x040001BA:16 = CARD_1BA (7 bits)

Command registers

  • 0x040001A8:8
  • 0x040001A9:8
  • 0x040001AA:8
  • 0x040001AB:8
  • 0x040001AC:8
  • 0x040001AD:8
  • 0x040001AE:8
  • 0x040001AF:8

Both sets of write-only registers read as 00's.

Recent Changes (All) | Edit SideBar

Page last modified on February 07, 2006, at 05:23 AM
Edit Page | Page History
Everything done on this project is for the sole purpose of writing interoperable software under Sect. 1201 (f) Reverse Engineering exception of the DMCA.
This site is not affiliated with Nintendo in any manner. Nintendo DS © 2004 Nintendo. TM and ® are trademarks of Nintendo.
Powered by PmWiki