23 lines
514 B
C
23 lines
514 B
C
#include <ultra64.h>
|
|
|
|
s32 __osSiRawStartDma(s32 direction, void *dramAddr)
|
|
{
|
|
if (__osSiDeviceBusy())
|
|
return -1;
|
|
|
|
if (direction == OS_WRITE)
|
|
osWritebackDCache(dramAddr, 64);
|
|
|
|
IO_WRITE(SI_DRAM_ADDR_REG, osVirtualToPhysical(dramAddr));
|
|
|
|
if (direction == OS_READ)
|
|
IO_WRITE(SI_PIF_ADDR_RD64B_REG, 0x1FC007C0);
|
|
else
|
|
IO_WRITE(SI_PIF_ADDR_WR64B_REG, 0x1FC007C0);
|
|
|
|
if (direction == OS_READ)
|
|
osInvalDCache(dramAddr, 64);//bzero(dramAddr, 64);
|
|
|
|
return 0;
|
|
}
|