15typedef volatile uint8_t io8_t;
16typedef volatile uint32_t io32_t;
19#define UNCACHED(address) ((typeof(address)) (((io32_t) (address)) | (0xA0000000UL)))
27#define SP_MEM_BASE (0x04000000UL)
28#define SP_MEM ((sp_mem_t *) SP_MEM_BASE)
42#define SP_BASE (0x04040000UL)
43#define SP ((sp_regs_t *) SP_BASE)
45#define SP_SR_HALT (1 << 0)
46#define SP_SR_BROKE (1 << 1)
47#define SP_SR_DMA_BUSY (1 << 2)
48#define SP_SR_DMA_FULL (1 << 3)
49#define SP_SR_IO_FULL (1 << 4)
50#define SP_SR_SSTEP (1 << 5)
51#define SP_SR_INTR_BREAK (1 << 6)
52#define SP_SR_SIG0 (1 << 7)
53#define SP_SR_SIG1 (1 << 8)
54#define SP_SR_SIG2 (1 << 9)
55#define SP_SR_SIG3 (1 << 10)
56#define SP_SR_SIG4 (1 << 11)
57#define SP_SR_SIG5 (1 << 12)
58#define SP_SR_SIG6 (1 << 13)
59#define SP_SR_SIG7 (1 << 14)
60#define SP_SR_CLR_HALT (1 << 0)
61#define SP_SR_SET_HALT (1 << 1)
62#define SP_SR_CLR_BROKE (1 << 2)
63#define SP_SR_CLR_INTR (1 << 3)
64#define SP_SR_SET_INTR (1 << 4)
65#define SP_SR_CLR_SSTEP (1 << 5)
66#define SP_SR_SET_SSTEP (1 << 6)
67#define SP_SR_CLR_INTR_BREAK (1 << 7)
68#define SP_SR_SET_INTR_BREAK (1 << 8)
69#define SP_SR_CLR_SIG0 (1 << 9)
70#define SP_SR_SET_SIG0 (1 << 10)
71#define SP_SR_CLR_SIG1 (1 << 11)
72#define SP_SR_SET_SIG1 (1 << 12)
73#define SP_SR_CLR_SIG2 (1 << 13)
74#define SP_SR_SET_SIG2 (1 << 14)
75#define SP_SR_CLR_SIG3 (1 << 15)
76#define SP_SR_SET_SIG3 (1 << 16)
77#define SP_SR_CLR_SIG4 (1 << 17)
78#define SP_SR_SET_SIG4 (1 << 18)
79#define SP_SR_CLR_SIG5 (1 << 19)
80#define SP_SR_SET_SIG5 (1 << 20)
81#define SP_SR_CLR_SIG6 (1 << 21)
82#define SP_SR_SET_SIG6 (1 << 22)
83#define SP_SR_CLR_SIG7 (1 << 23)
84#define SP_SR_SET_SIG7 (1 << 24)
99#define DPC_BASE (0x04100000UL)
100#define DPC ((dpc_regs_t *) DPC_BASE)
102#define DPC_SR_XBUS_DMEM_DMA (1 << 0)
103#define DPC_SR_FREEZE (1 << 1)
104#define DPC_SR_FLUSH (1 << 2)
105#define DPC_SR_START_GCLK (1 << 3)
106#define DPC_SR_TMEM_BUSY (1 << 4)
107#define DPC_SR_PIPE_BUSY (1 << 5)
108#define DPC_SR_CMD_BUSY (1 << 6)
109#define DPC_SR_CBUF_READY (1 << 7)
110#define DPC_SR_DMA_BUSY (1 << 8)
111#define DPC_SR_END_VALID (1 << 9)
112#define DPC_SR_START_VALID (1 << 10)
113#define DPC_SR_CLR_XBUS_DMEM_DMA (1 << 0)
114#define DPC_SR_SET_XBUS_DMEM_DMA (1 << 1)
115#define DPC_SR_CLR_FREEZE (1 << 2)
116#define DPC_SR_SET_FREEZE (1 << 3)
117#define DPC_SR_CLR_FLUSH (1 << 4)
118#define DPC_SR_SET_FLUSH (1 << 5)
119#define DPC_SR_CLR_TMEM_CTR (1 << 6)
120#define DPC_SR_CLR_PIPE_CTR (1 << 7)
121#define DPC_SR_CLR_CMD_CTR (1 << 8)
122#define DPC_SR_CLR_CLOCK_CTR (1 << 9)
143#define VI_BASE (0x04400000UL)
144#define VI ((vi_regs_t *) VI_BASE)
146#define VI_CR_TYPE_16 (2 << 0)
147#define VI_CR_TYPE_32 (3 << 0)
148#define VI_CR_GAMMA_DITHER_ON (1 << 2)
149#define VI_CR_GAMMA_ON (1 << 3)
150#define VI_CR_DIVOT_ON (1 << 4)
151#define VI_CR_SERRATE_ON (1 << 6)
152#define VI_CR_ANTIALIAS_0 (1 << 8)
153#define VI_CR_ANTIALIAS_1 (1 << 9)
154#define VI_CR_PIXEL_ADVANCE_0 (1 << 12)
155#define VI_CR_PIXEL_ADVANCE_1 (1 << 13)
156#define VI_CR_PIXEL_ADVANCE_2 (1 << 14)
157#define VI_CR_PIXEL_ADVANCE_3 (1 << 15)
158#define VI_CR_DITHER_FILTER_ON (1 << 16)
170#define AI_BASE (0x04500000UL)
171#define AI ((ai_regs_t *) AI_BASE)
173#define AI_SR_DMA_BUSY (1 << 30)
174#define AI_SR_FIFO_FULL (1 << 31)
175#define AI_CR_DMA_ON (1 << 0)
193#define PI_BASE (0x04600000UL)
194#define PI ((pi_regs_t *) PI_BASE)
196#define PI_SR_DMA_BUSY (1 << 0)
197#define PI_SR_IO_BUSY (1 << 1)
198#define PI_SR_DMA_ERROR (1 << 2)
199#define PI_SR_RESET (1 << 0)
200#define PI_SR_CLR_INTR (1 << 1)
203#define ROM_DDIPL_BASE (0x06000000UL)
204#define ROM_DDIPL ((io32_t *) ROM_DDIPL_BASE)
207#define ROM_CART_BASE (0x10000000UL)
208#define ROM_CART ((io32_t *) ROM_CART_BASE)
213 uint32_t device_type;
214 uint32_t device_base;
219 uint8_t app_nmi_buffer[64];
220 uint32_t __reserved_1[37];
221 uint32_t mem_size_6105;
224#define OS_INFO_BASE (0x80000300UL)
225#define OS_INFO ((os_info_t *) OS_INFO_BASE)
227#define OS_INFO_RESET_TYPE_COLD (0)
228#define OS_INFO_RESET_TYPE_NMI (1)
231static inline uint32_t cpu_io_read (io32_t *address) {
232 io32_t *uncached = UNCACHED(address);
233 uint32_t value = *uncached;
237static inline void cpu_io_write (io32_t *address, uint32_t value) {
238 io32_t *uncached = UNCACHED(address);
Definition: boot_io.h:161
DPC Registers Structure.
Definition: boot_io.h:88
Definition: boot_io.h:211
Parallel Interface Register Structure.
Definition: boot_io.h:179
Video Interface Registers Structure.
Definition: boot_io.h:126