User Tools

Site Tools


notes:flashcart:ezflash

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