====== NeoFlash MK6/R6 (NDS) programming ====== ===== SPI commands ===== ==== Read response (9F FF FF FF) ==== Responds with a dummy byte, then three response bytes. ==== Lock? (FE FD FB F5) ==== ==== Unlock? (FE FD FB F7) ==== ==== Mode: accelerometer (DS Motion Card) (FE FD FB F8) ==== ==== Mode: 4kbit EEPROM (FE FD FB F9) ==== ==== Mode: 512kbit EEPROM (FE FD FB FA) ==== ==== Mode: 2/4/8mbit FLASH (FE FD FB FB) ==== TODO: Responds with ''20 80 14''? ===== ROM commands ===== ==== Set card chip ID? (B9 01 00 00 dd cc bb aa) ==== Set card chip ID to ''aa bb cc dd''. ==== ? (D7 50 ?? 00 00 00 00 00) ==== Part of the TF card initialization process? ''??'' is 00 or 80 - maybe controls TF card reset? ==== TF: Write command byte (D7 57 xx 00 00 00 00 00) ==== ==== TF: Read command bits (D7 6x 00 00 00 00 00 00) ==== * 66: Read 1 bit * 67: Read 2 bits * 68: Read 3 bits * 69: Read 4 bits ==== TF: Read data, 1024 x 4 bits (D7 4E 00 00 00 00 00 00) ==== Returns 1024 bytes; each byte has bits 0-3 set to the 4 bits read. ==== TF: Write data, 4 bits (D7 38 0x 00 00 00 00 00) ==== ==== Read halfword (F1 tt aa aa aa aa 00 00) ==== * tt: target (00 - SRAM, 01 - NOR) Returns 2 bytes, little endian. ==== Write halfword (F3 0t aa aa aa aa dd dd) ==== * tt: target (00 - SRAM, 01 - NOR) ''aa'' and ''dd'' are specified in reverse endianness.