44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
#pragma once
|
|
#include <ircolib/types.hpp>
|
|
|
|
namespace weee::core {
|
|
struct mem;
|
|
struct dsp {
|
|
dsp(mem &);
|
|
ircolib::u16 read16(ircolib::u32);
|
|
void write16(ircolib::u32, ircolib::u16);
|
|
ircolib::u32 read32(ircolib::u32);
|
|
void write32(ircolib::u32, ircolib::u32);
|
|
|
|
union Csr {
|
|
struct {
|
|
unsigned res : 1;
|
|
unsigned piint : 1;
|
|
unsigned halt : 1;
|
|
unsigned aidint : 1;
|
|
unsigned aidint_mask : 1;
|
|
unsigned arint : 1;
|
|
unsigned arint_mask : 1;
|
|
unsigned dspint : 1;
|
|
unsigned dspint_mask : 1;
|
|
unsigned int_status : 1;
|
|
unsigned : 1;
|
|
unsigned boot_mode : 1;
|
|
unsigned : 4;
|
|
};
|
|
ircolib::u16 raw;
|
|
} csr;
|
|
|
|
union {
|
|
struct {
|
|
ircolib::u32 lo;
|
|
ircolib::u32 hi;
|
|
};
|
|
ircolib::u64 whole;
|
|
} ar_dma_mmaddr, ar_dma_araddr, ar_dma_cnt, dma_start_addr;
|
|
|
|
ircolib::u16 ar_size;
|
|
ircolib::u16 dsp_mail_hi = 0, dsp_mail_lo = 0, cpu_mail_hi = 0, cpu_mail_lo = 0;
|
|
};
|
|
} // namespace weee::core
|