From 626f09266d264dc994e51d8ce9e57b8da80704d4 Mon Sep 17 00:00:00 2001 From: Derek Hensley Date: Fri, 15 Sep 2023 05:41:51 -0700 Subject: Flash Headers (#1367) * Move flash stuff * format * Cleanup * format * bss names * Small cleanup * osFlashGetAddr * uintptr_t --- src/code/sys_flashrom.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/code/sys_flashrom.c') diff --git a/src/code/sys_flashrom.c b/src/code/sys_flashrom.c index 0f4e9f748..6666a26db 100644 --- a/src/code/sys_flashrom.c +++ b/src/code/sys_flashrom.c @@ -5,6 +5,8 @@ #include "stackcheck.h" #include "system_malloc.h" #include "z64thread.h" +#include "sys_flashrom.h" +#include "PR/os_internal_flash.h" OSMesgQueue sFlashromMesgQueue; OSMesg sFlashromMesg[1]; @@ -81,7 +83,7 @@ s32 SysFlashrom_ReadData(void* addr, u32 pageNum, u32 pageCount) { if (!SysFlashrom_IsInit()) { return -1; } - osInvalDCache(addr, pageCount * FLASH_PAGE_SIZE); + osInvalDCache(addr, pageCount * FLASH_BLOCK_SIZE); osFlashReadArray(&msg, OS_MESG_PRI_NORMAL, pageNum, addr, pageCount, &sFlashromMesgQueue); osRecvMesg(&sFlashromMesgQueue, NULL, OS_MESG_BLOCK); return 0; @@ -103,12 +105,12 @@ s32 SysFlashrom_ExecWrite(void* addr, u32 pageNum, u32 pageCount) { return -1; } // Ensure the page is always aligned to a sector boundary. - if ((pageNum % FLASH_PAGE_SIZE) != 0) { + if ((pageNum % FLASH_BLOCK_SIZE) != 0) { Fault_AddHungupAndCrash("../sys_flashrom.c", 275); } - osWritebackDCache(addr, pageCount * FLASH_PAGE_SIZE); + osWritebackDCache(addr, pageCount * FLASH_BLOCK_SIZE); for (i = 0; i < pageCount; i++) { - osFlashWriteBuffer(&msg, OS_MESG_PRI_NORMAL, (u8*)addr + i * FLASH_PAGE_SIZE, &sFlashromMesgQueue); + osFlashWriteBuffer(&msg, OS_MESG_PRI_NORMAL, (u8*)addr + i * FLASH_BLOCK_SIZE, &sFlashromMesgQueue); osRecvMesg(&sFlashromMesgQueue, NULL, OS_MESG_BLOCK); result = osFlashWriteArray(i + pageNum); if (result != 0) { @@ -125,7 +127,7 @@ s32 SysFlashrom_AttemptWrite(void* addr, u32 pageNum, u32 pageCount) { if (!SysFlashrom_IsInit()) { return -1; } - osWritebackDCache(addr, pageCount * FLASH_PAGE_SIZE); + osWritebackDCache(addr, pageCount * FLASH_BLOCK_SIZE); i = 0; failRetry: result = SysFlashrom_EraseSector(pageNum); @@ -153,7 +155,7 @@ s32 SysFlashrom_NeedsToErase(void* data, void* addr, u32 pageCount) { u32 size; u32 i; - for (i = 0; i < pageCount * FLASH_PAGE_SIZE; i += 4) { + for (i = 0; i < pageCount * FLASH_BLOCK_SIZE; i += 4) { if ((*(s32*)data & *(s32*)addr) != *(s32*)addr) { return false; } @@ -169,7 +171,7 @@ s32 SysFlashrom_WriteData(void* addr, u32 pageNum, u32 pageCount) { if (!SysFlashrom_IsInit()) { return -1; } - size = pageCount * FLASH_PAGE_SIZE; + size = pageCount * FLASH_BLOCK_SIZE; data = SystemArena_Malloc(size); if (data == NULL) { ret = SysFlashrom_AttemptWrite(addr, pageNum, pageCount); -- cgit v1.2.3