notes:flashcart:ezflash
Table of Contents
EZ Flash (GBA) programming
It appears many EZ Flash GBA cartridges use a compatible interface across the product line.
Unlocking
To unlock the cartridge's interface, the following writes must be issued:
- 0x9FE0000 = 0xD200
- 0x8000000 = 0x1500
- 0x8020000 = 0xD200
- 0x8040000 = 0x1500
To lock the interface:
- 0x9FC0000 = 0x1500
Specifications
EZ-Flash III
- 1 Gbit NAND (Samsung K9F1G08U0M).
- 256 Mbit NOR
- 32 Mbit NOR (firmware),
- 128 Mbit RAM
- 2Mbit SRAM
Memory Map (OS mode):
Start | End | Role |
---|---|---|
0x8000000 | 0x83FFFFF | 32 Mbit NOR (firmware) |
0x8400000 | 0x93FFFFF | 128 Mbit RAM |
0x9400000 | 0x9BFFFFF | 64 Mbit window of 256 Mbit NOR |
Memory Map (Game mode):
ROM page (Mbits) | Role |
---|---|
0 | 256 Mbit NOR |
256 | 128 Mbit SRAM |
384 | 32 Mbit NOR (firmware) |
EZ-Flash IV
EZ402TF 2014.08.14
- S71WS512ND0 (512Mbit NOR + 128Mbit PSRAM)
- M6MGT321S4TP (32Mbit NOR + 4Mbit SRAM)
EZ-Flash Reform
- S71WS512ND0 (512Mbit NOR + 128Mbit PSRAM)
EZ-Flash Omega/Omega DE
- S98WS512PE0 (512Mbit NOR + 256Mbit PSRAM)
- S71GL064A08 (64Mbit NOR + 8Mbit SRAM)
- FM28V100 (1Mbit FRAM)
- XC6SLX9 (FPGA)
- W25Q16 (SPI flash)
Memory Map (S71GL064A08 NOR):
Start | End | Role |
---|---|---|
0x000000 | 0x00FFFF | Boot loader |
0x040000 | 0x7FFFFF? | Kernel |
Memory Map (Game mode):
ROM page (Mbits) | Role |
---|---|
0 | 512 Mbit NOR |
512 | Special value - map 256 Mbit PSRAM |
Memory Map (OS mode):
Start | End | Role |
---|---|---|
0x8000000 | 0x87FFFFF | 64 Mbit NOR (bootloader/kernel) |
0x8800000 | 0x8FFFFFF | 64 Mbit window of 256 Mbit PSRAM |
0x9000000 | 0x97FFFFF | 64 Mbit window of 512 Mbit NOR |
0xE000000 | 0xE01FFFF | 1 Mbit FRAM |
TODO: 0xE020000?
Memory-mapped I/O
NAND Flash (III)
EZ_NAND_CONTROL (0x9400000; III)
EZ_NAND_DATA (0x9FFC000; III)
EZ_NAND_ADDR (0x9FFFFE0; III)
EZ_NAND_CMD (0x9FFFFE2; III)
SD Card (IV)
? (0x9FEA000; IV)
? (0x9FFFF40; IV)
SD Card (Omega)
EZ_SDCARD_CONTROL (0x9400000; Omega, Omega DE)
EZ_SDCARD_BUFFER_ADDR_LO (0x9600000; Omega, Omega DE)
EZ_SDCARD_BUFFER_ADDR_HI (0x9620000; Omega, Omega DE)
EZ_SDCARD_BUFFER_CONTROL (0x9640000; Omega, Omega DE)
15 bit 0 m... .... .... .ccc | ||| | +++- Sector count (0-4) +------------------- Mode: 0 - Read, 1 - Write
EZ_SDCARD_BUFFER_DATA (0x9E00000; Omega, Omega DE)
2KB buffer for read and/or written sectors.
SPI (IV)
EZ_SPI_DATA (0x80000C4; IV)
EZ_SPI_CONTROL (0x80000C6; IV)
15 bit 0 .... .... .... .csk ||| ||+- SCK |+-- SIO +--- CS
EZ_SPI_ENABLE (0x80000C8; IV)
15 bit 0 .... .... .... ...e | +- Enable
Cartridge
EZ_RTC_CONTROL (0x96A0000; Omega, Omega DE)
EZ_AUTO_SAVE_CONTROL (0x96C0000; Omega, Omega DE)
EZ_LED_CONTROL (0x96E0000; Omega DE)
EZ_64MROM_CONTROL (0x9700000; Omega DE)
15 bit 0 .... .... .... ...v | +- Emulate GBA Video 64M mapper
EZ_PSRAM_OFFSET (0x9860000; Omega, Omega DE)
PSRAM offset, in megabits.
EZ_ROM_OFFSET (0x9880000; III, IV, Omega, Omega DE)
ROM offset, in megabits.
EZ_RAM_OFFSET (0x9C00000; III, IV, Omega, Omega DE)
RAM offset, in megabits.
EZ_NOR_WRITE_ENABLE (0x9C40000; III, IV)
EZ_RUMBLE_STRENGTH (0x9E20000; Omega DE)
- Minimum: 0xF0
- Maximum: 0xF1
- Regular: 0xF2
FPGA SPI
EZ_SPI_CONTROL (0x9660000; Omega, Omega DE)
EZ_SPI_WRITE (0x9680000; Omega, Omega DE)
Other/Unknown
? (0x9420000; Omega, Omega DE)
? (0x9A40000; IV)
notes/flashcart/ezflash.txt · Last modified: 2024/09/29 21:13 by asie