diff options
Diffstat (limited to 'arm9/lib/src/CARD_spi.c')
-rw-r--r-- | arm9/lib/src/CARD_spi.c | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/arm9/lib/src/CARD_spi.c b/arm9/lib/src/CARD_spi.c deleted file mode 100644 index 5f02b276..00000000 --- a/arm9/lib/src/CARD_spi.c +++ /dev/null @@ -1,123 +0,0 @@ -#include "function_target.h" -#include "nitro/types.h" -#include "CARD_common.h" -#include "CARD_spi.h" -#include "MI_memory.h" - -extern CARDiCommon cardi_common; - -ARM_FUNC void CARDi_IdentifyBackupCore(CARDBackupType type) -{ - CARDiCommandArg *const p = cardi_common.cmd; - - MI_CpuFill8(&p->spec, 0, sizeof(p->spec)); - p->type = type; - p->spec.caps = CARD_BACKUP_CAPS_AVAILABLE; - if (type != CARD_BACKUP_TYPE_NOT_USE) - { - const u32 size = (u32)(1 << ((type >> CARD_BACKUP_TYPE_SIZEBIT_SHIFT) & CARD_BACKUP_TYPE_SIZEBIT_MASK)); - - const s32 device = ((type >> CARD_BACKUP_TYPE_DEVICE_SHIFT) & CARD_BACKUP_TYPE_DEVICE_MASK); - - p->spec.total_size = size; - p->spec.initial_status = 0xFF; - if (device == CARD_BACKUP_TYPE_DEVICE_EEPROM) - { - switch (size) - { - default: - goto invalid_type; - case 0x000200: //CARD_BACKUP_TYPE_EEPROM_4KBITS - p->spec.page_size = 0x10; - p->spec.addr_width = 1; - p->spec.program_page = 5; - p->spec.initial_status = 0xF0; - break; - case 0x002000: //CARD_BACKUP_TYPE_EEPROM_64KIBTS - p->spec.page_size = 0x0020; - p->spec.addr_width = 2; - p->spec.program_page = 5; - p->spec.initial_status = 0x00; - break; - case 0x010000: //CARD_BACKUP_TYPE_EEPROM_512KBITS - p->spec.page_size = 0x0080; - p->spec.addr_width = 2; - p->spec.program_page = 10; - p->spec.initial_status = 0x00; - break; - } - p->spec.sect_size = p->spec.page_size; - p->spec.caps |= CARD_BACKUP_CAPS_READ; - p->spec.caps |= CARD_BACKUP_CAPS_PROGRAM; - p->spec.caps |= CARD_BACKUP_CAPS_VERIFY; - } - else if (device == CARD_BACKUP_TYPE_DEVICE_FLASH) - { - switch (size) - { - default: - goto invalid_type; - case 0x040000: //CARD_BACKUP_TYPE_FLASH_2MBITS - case 0x080000: //CARD_BACKUP_TYPE_FLASH_4MBITS - case 0x100000: //CARD_BACKUP_TYPE_FLASH_8MBITS - p->spec.write_page = 25; - p->spec.write_page_total = 300; - p->spec.erase_page = 300; - p->spec.erase_sector = 5000; - p->spec.caps |= CARD_BACKUP_CAPS_WRITE; - p->spec.caps |= CARD_BACKUP_CAPS_ERASE_PAGE; - break; - case 0x200000: //CARD_BACKUP_TYPE_FLASH_16MBITS - p->spec.erase_sector = 1000; - p->spec.erase_sector_total = 3000; - p->spec.erase_chip = 17000; - p->spec.erase_chip_total = 40000; - p->spec.initial_status = 0x00; - p->spec.caps |= CARD_BACKUP_CAPS_ERASE_CHIP; - break; - case 0x800000: //CARD_BACKUP_TYPE_FLASH_64MBITS - p->spec.erase_sector = 1000; - p->spec.erase_sector_total = 3000; - p->spec.erase_chip = 68000; - p->spec.erase_chip_total = 160000; - p->spec.initial_status = 0x00; - p->spec.caps |= CARD_BACKUP_CAPS_ERASE_CHIP; - break; - } - p->spec.sect_size = 0x010000; - p->spec.page_size = 0x0100; - p->spec.addr_width = 3; - p->spec.program_page = 5; - p->spec.caps |= CARD_BACKUP_CAPS_READ; - p->spec.caps |= CARD_BACKUP_CAPS_PROGRAM; - p->spec.caps |= CARD_BACKUP_CAPS_VERIFY; - p->spec.caps |= CARD_BACKUP_CAPS_ERASE_SECTOR; - } - else if (device == CARD_BACKUP_TYPE_DEVICE_FRAM) - { - switch (size) - { - default: - goto invalid_type; - case 0x002000: //CARD_BACKUP_TYPE_FRAM_64KBITS - case 0x008000: //CARD_BACKUP_TYPE_FRAM_64KBITS - break; - } - p->spec.page_size = size; - p->spec.sect_size = size; - p->spec.addr_width = 2; - p->spec.initial_status = 0x00; - p->spec.caps |= CARD_BACKUP_CAPS_READ; - p->spec.caps |= CARD_BACKUP_CAPS_PROGRAM; - p->spec.caps |= CARD_BACKUP_CAPS_VERIFY; - } - else - { - invalid_type: - p->type = CARD_BACKUP_TYPE_NOT_USE; - p->spec.total_size = 0; - cardi_common.cmd->result = CARD_RESULT_UNSUPPORTED; - return; - } - } -} |