forked from Mirror/GodMode9
39 lines
1.2 KiB
C
39 lines
1.2 KiB
C
|
#include "ndscard.h"
|
||
|
|
||
|
//---------------------------------------------------------------------------------
|
||
|
static inline void eepromWaitBusy() {
|
||
|
//---------------------------------------------------------------------------------
|
||
|
while (REG_AUXSPICNT & CARD_SPI_BUSY);
|
||
|
}
|
||
|
|
||
|
// Reads from the EEPROM
|
||
|
void cardReadEeprom(u32 address, u8 *data, u32 length, u32 addrtype);
|
||
|
|
||
|
// Writes to the EEPROM. TYPE 3 EEPROM must be erased first (I think?)
|
||
|
void cardWriteEeprom(u32 address, u8 *data, u32 length, u32 addrtype);
|
||
|
|
||
|
// Returns the ID of the EEPROM chip? Doesn't work well, most chips give ff,ff
|
||
|
// i = 0 or 1
|
||
|
u32 cardEepromReadID();
|
||
|
|
||
|
// Sends a command to the EEPROM
|
||
|
u8 cardEepromCommand(u8 command);
|
||
|
|
||
|
/*
|
||
|
* -1:no card or no EEPROM
|
||
|
* 0:unknown PassMe?
|
||
|
* 1:TYPE 1 4Kbit(512Byte) EEPROM
|
||
|
* 2:TYPE 2 64Kbit(8KByte)or 512kbit(64Kbyte) EEPROM
|
||
|
* 3:TYPE 3 2Mbit(256KByte) FLASH MEMORY (some rare 4Mbit and 8Mbit chips also)
|
||
|
*/
|
||
|
int cardEepromGetType(void);
|
||
|
|
||
|
// Returns the size in bytes of EEPROM
|
||
|
u32 cardEepromGetSize();
|
||
|
|
||
|
// Erases the entire chip. TYPE 3 chips MUST be erased before writing to them. (I think?)
|
||
|
void cardEepromChipErase(void);
|
||
|
|
||
|
// Erases a single sector of the TYPE 3 chip
|
||
|
void cardEepromSectorErase(u32 address);
|