blob: be6287c34818041575ddcb85d72420bd2c4a2961 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include "libultra_internal.h"
#include "hardware.h"
s32 __osSpRawStartDma(u32 dir, void* sp_ptr, void* dram_ptr, size_t size) {
if (__osSpDeviceBusy()) {
return -1;
}
HW_REG(SP_MEM_ADDR_REG, void*) = sp_ptr;
HW_REG(SP_DRAM_ADDR_REG, void*) = (void*) osVirtualToPhysical(dram_ptr);
if (dir == 0) {
HW_REG(SP_WR_LEN_REG, u32) = size - 1;
} else {
HW_REG(SP_RD_LEN_REG, u32) = size - 1;
}
return 0;
}
|