mirror of
https://github.com/dingusdev/dingusppc.git
synced 2024-06-12 11:29:29 +00:00
dbdma: noop incomplete LOAD_QUAD & STORE_QUAD.
This commit is contained in:
parent
5e32b599d6
commit
a69763c6de
|
@ -331,17 +331,6 @@ uint8_t* mmu_get_dma_mem(uint32_t addr, uint32_t size, bool* is_writable)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void mmu_dma_store_quad(uint32_t addr, uint32_t value) {
|
|
||||||
mmu_write_vmem<uint32_t>(ppc_effective_address, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t* mmu_dma_load_quad(uint32_t addr) {
|
|
||||||
uint32_t ret_value = mmu_read_vmem<uint32_t>(addr);
|
|
||||||
uint8_t ret_array[4] = {(uint8_t)ret_value, (uint8_t)(ret_value >> 8), (uint8_t)(ret_value >> 16), (uint8_t)(ret_value >> 24)};
|
|
||||||
return ret_array;
|
|
||||||
}
|
|
||||||
|
|
||||||
// primary ITLB for all MMU modes
|
// primary ITLB for all MMU modes
|
||||||
static std::array<TLBEntry, TLB_SIZE> itlb1_mode1;
|
static std::array<TLBEntry, TLB_SIZE> itlb1_mode1;
|
||||||
static std::array<TLBEntry, TLB_SIZE> itlb1_mode2;
|
static std::array<TLBEntry, TLB_SIZE> itlb1_mode2;
|
||||||
|
|
|
@ -107,8 +107,6 @@ extern std::function<void(uint32_t bat_reg)> ibat_update;
|
||||||
extern std::function<void(uint32_t bat_reg)> dbat_update;
|
extern std::function<void(uint32_t bat_reg)> dbat_update;
|
||||||
|
|
||||||
extern uint8_t* mmu_get_dma_mem(uint32_t addr, uint32_t size, bool* is_writable);
|
extern uint8_t* mmu_get_dma_mem(uint32_t addr, uint32_t size, bool* is_writable);
|
||||||
extern void mmu_dma_store_quad(uint32_t addr, uint32_t value);
|
|
||||||
extern uint8_t* mmu_dma_load_quad(uint32_t addr);
|
|
||||||
|
|
||||||
extern void mmu_change_mode(void);
|
extern void mmu_change_mode(void);
|
||||||
extern void mmu_pat_ctx_changed();
|
extern void mmu_pat_ctx_changed();
|
||||||
|
|
|
@ -118,19 +118,19 @@ uint8_t DMAChannel::interpret_cmd() {
|
||||||
case DBDMA_Cmd::STORE_QUAD:
|
case DBDMA_Cmd::STORE_QUAD:
|
||||||
if (cmd_struct.cmd_key != 6) {
|
if (cmd_struct.cmd_key != 6) {
|
||||||
LOG_F(ERROR, "Illegal key value for STORE_QUAD");
|
LOG_F(ERROR, "Illegal key value for STORE_QUAD");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (cmd_struct.req_count & 0x4) {
|
if (cmd_struct.req_count & 0x4) {
|
||||||
cmd_struct.req_count = 4;
|
cmd_struct.req_count = 4;
|
||||||
}
|
}
|
||||||
else if (cmd_struct.req_count & 0x2) {
|
else if (cmd_struct.req_count & 0x2) {
|
||||||
cmd_struct.req_count = 2;
|
cmd_struct.req_count = 2;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
cmd_struct.req_count = 1;
|
cmd_struct.req_count = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
mmu_dma_store_quad(cmd_struct.address, cmd_struct.cmd_arg);
|
//mmu_dma_store_quad(cmd_struct.address, cmd_struct.cmd_arg);
|
||||||
this->queue_len = 4;
|
this->queue_len = 4;
|
||||||
this->cmd_in_progress = true;
|
this->cmd_in_progress = true;
|
||||||
}
|
}
|
||||||
|
@ -139,7 +139,7 @@ uint8_t DMAChannel::interpret_cmd() {
|
||||||
if (cmd_struct.cmd_key != 6) {
|
if (cmd_struct.cmd_key != 6) {
|
||||||
LOG_F(ERROR, "Illegal key value for LOAD_QUAD");
|
LOG_F(ERROR, "Illegal key value for LOAD_QUAD");
|
||||||
} else {
|
} else {
|
||||||
this->queue_data = mmu_dma_load_quad(cmd_struct.address);
|
//this->queue_data = mmu_dma_load_quad(cmd_struct.address);
|
||||||
this->queue_len = 4;
|
this->queue_len = 4;
|
||||||
this->cmd_in_progress = true;
|
this->cmd_in_progress = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user