__osSpRawStartDma.c (428B)
1 #include "libultra_internal.h" 2 #include "PR/rcp.h" 3 4 s32 __osSpRawStartDma(u32 dir, void *sp_ptr, void *dram_ptr, size_t size) { 5 if (__osSpDeviceBusy()) { 6 return -1; 7 } 8 9 IO_WRITE(SP_MEM_ADDR_REG, sp_ptr); 10 IO_WRITE(SP_DRAM_ADDR_REG, osVirtualToPhysical(dram_ptr)); 11 12 if (dir == 0) { 13 IO_WRITE(SP_WR_LEN_REG, size - 1); 14 } else { 15 IO_WRITE(SP_RD_LEN_REG, size - 1); 16 } 17 return 0; 18 }