#include "ultra64.h" #include "PR/os_internal_flash.h" s32 osFlashWriteBuffer(OSIoMesg* mb, s32 priority, void* dramAddr, OSMesgQueue* mq) { s32 ret; // select page program mode osEPiWriteIo(&__osFlashHandler, __osFlashHandler.baseAddress | FLASH_CMD_REG, FLASH_CMD_PAGE_PROGRAM); // DMA 128-byte page mb->hdr.pri = priority; mb->hdr.retQueue = mq; mb->dramAddr = dramAddr; mb->devAddr = 0; mb->size = FLASH_BLOCK_SIZE; ret = osEPiStartDma(&__osFlashHandler, mb, OS_WRITE); return ret; }