NAND
The DSi uses a 256MB Samsung moviNAND flash chip, which is a NAND flash chip with a built-in controller that implements a MMC (SDIO) interface. In many ways, it's like an SD card in BGA packaging, and some people have successfully read it with modified SD card readers.
Addressing is done in terms of 512-bytes sectors. All wear-levelling and bad-block-mapping is handled transparently inside the chip by the controller. Most sectors are encrypted with a per-console key.
Layout:
Offset | Size | Description |
---|---|---|
0 | 0x200 | PC-style MBR, encrypted with a per-console key |
0x200 | 0x200 | Stage 2 info block 1 (see below) |
0x400 | 0x200 | Stage 2 info block 2 |
0x600 | 0x200 | Stage 2 info block 3 |
0x800 | 0x4DC00 | Stage 2 bootloader (encrypted with a universal key) |
0x4E400 | 0x400 | Stage 2 footer -- unknown format, but first 10 bytes are build number of Stage 2 bootloader |
0x4E800 | ? | Unused (all 00) |
0xffa00 | 0x400 | Factory test area (often contains build date of device in plaintext) |
0x10ee00 | ? | start of per-console unique encrypted data |