EverDrive-64 v3

From N64brew Wiki
Revision as of 08:13, 17 September 2020 by Murachue (talk | contribs) (initial WIP)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The EverDrive-64 v3 is a flash cart made by Krikzz.

Basic information

ROM: Max 64MiB

RTC: supported

Save: 4k/16k bit EEPROM, 32KiB/128KiB SRAM, 128KiB Flash

USB Serial: 512-bytes block read-write

Registers

All registers must be accessed by 32bit word, but it seems only lower 16bits are valid.

High 16bits of all registers seems REG_STATUS on read.

Base PI address for registers is 0x08040000 (Cartridge Domain 2, SRAM area +0x40000)

You should access these registers from CPU through no-cached segment, i.e. +0xA0000000, ex. 0xA8040020 for REG_KEY.

PI address name R/W description
0x08040000 REG_CFG R/W ED64 general configurations
0x08040004 REG_STATUS R ED64 registers, SPI, DMA statuses
0x08040008 REG_DMA_LEN W SD/USB DMA length in 512bytes blocks - 1 (ex. 0 = 0x200 bytes)
0x0804000C REG_DMA_ADDR W SD/USB Cart address in 2048bytes blocks (ex. 1 = 0x00000800)
0x08040010 REG_MSG ? ?
0x08040014 REG_DMA_CFG W Invoke SD/USB DMA
0x08040018 REG_SPI R/W SPI DAT/CMD (write invoke CLK)
0x0804001C REG_SPI_CFG W SPI configurations
0x08040020 REG_KEY W Enable or disable ED64 registers
0x08040024 REG_SAV_CFG W Save configurations (EEPROM/SRAM/FLASH)
0x08040028 REG_SEC ? ?
0x0804002C REG_VER R Hardware version
0x08040030 ? R/W I2C to access RTC
0x08040034 ? ? ?
0x08040038 ? ? ?
0x0804003C ? ? ?
0x08040040 REG_CNT ? FPGA?
0x08040044 REG_DAT ? FPGA?
0x08040048 MAX_MSG R/W Some configurations
0x0804004C REG_CRC ? ?
0x08040050 ? ? Flash?
0x08040054 ? ? Flash?

0x08040000 (REG_CFG)

R/W

bit from lsb description
15 1=start FPGA configuration??
9-8 D64 specific??
6-5 I2C/RTC??
3 WR_ADDR_MASK??
2 WR_MOD??
1 1=16bit swap on SD DMA read
0 1=enable SDRAM on cart (usually set to 1)

...other regs TBA

USB Serial Communication

TBA