xref: /qemu/hw/arm/strongarm.h (revision fc524567087c2537b5103cdfc1d41e4f442892b6)
12a6a4076SMarkus Armbruster #ifndef STRONGARM_H
22a6a4076SMarkus Armbruster #define STRONGARM_H
35bc95aa2SDmitry Eremin-Solenikov 
4*8be545baSRichard Henderson #include "system/memory.h"
5fcf5ef2aSThomas Huth #include "target/arm/cpu-qom.h"
6eb2fefbcSAvi Kivity 
75bc95aa2SDmitry Eremin-Solenikov #define SA_CS0          0x00000000
85bc95aa2SDmitry Eremin-Solenikov #define SA_CS1          0x08000000
95bc95aa2SDmitry Eremin-Solenikov #define SA_CS2          0x10000000
105bc95aa2SDmitry Eremin-Solenikov #define SA_CS3          0x18000000
115bc95aa2SDmitry Eremin-Solenikov #define SA_PCMCIA_CS0   0x20000000
125bc95aa2SDmitry Eremin-Solenikov #define SA_PCMCIA_CS1   0x30000000
135bc95aa2SDmitry Eremin-Solenikov #define SA_CS4          0x40000000
145bc95aa2SDmitry Eremin-Solenikov #define SA_CS5          0x48000000
155bc95aa2SDmitry Eremin-Solenikov /* system registers here */
165bc95aa2SDmitry Eremin-Solenikov #define SA_SDCS0        0xc0000000
175bc95aa2SDmitry Eremin-Solenikov #define SA_SDCS1        0xc8000000
185bc95aa2SDmitry Eremin-Solenikov #define SA_SDCS2        0xd0000000
195bc95aa2SDmitry Eremin-Solenikov #define SA_SDCS3        0xd8000000
205bc95aa2SDmitry Eremin-Solenikov 
215bc95aa2SDmitry Eremin-Solenikov enum {
225bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIO0_EDGE = 0,
235bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIO1_EDGE,
245bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIO2_EDGE,
255bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIO3_EDGE,
265bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIO4_EDGE,
275bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIO5_EDGE,
285bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIO6_EDGE,
295bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIO7_EDGE,
305bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIO8_EDGE,
315bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIO9_EDGE,
325bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIO10_EDGE,
335bc95aa2SDmitry Eremin-Solenikov     SA_PIC_GPIOX_EDGE,
345bc95aa2SDmitry Eremin-Solenikov     SA_PIC_LCD,
355bc95aa2SDmitry Eremin-Solenikov     SA_PIC_UDC,
365bc95aa2SDmitry Eremin-Solenikov     SA_PIC_RSVD1,
375bc95aa2SDmitry Eremin-Solenikov     SA_PIC_UART1,
385bc95aa2SDmitry Eremin-Solenikov     SA_PIC_UART2,
395bc95aa2SDmitry Eremin-Solenikov     SA_PIC_UART3,
405bc95aa2SDmitry Eremin-Solenikov     SA_PIC_MCP,
415bc95aa2SDmitry Eremin-Solenikov     SA_PIC_SSP,
425bc95aa2SDmitry Eremin-Solenikov     SA_PIC_DMA_CH0,
435bc95aa2SDmitry Eremin-Solenikov     SA_PIC_DMA_CH1,
445bc95aa2SDmitry Eremin-Solenikov     SA_PIC_DMA_CH2,
455bc95aa2SDmitry Eremin-Solenikov     SA_PIC_DMA_CH3,
465bc95aa2SDmitry Eremin-Solenikov     SA_PIC_DMA_CH4,
475bc95aa2SDmitry Eremin-Solenikov     SA_PIC_DMA_CH5,
485bc95aa2SDmitry Eremin-Solenikov     SA_PIC_OSTC0,
495bc95aa2SDmitry Eremin-Solenikov     SA_PIC_OSTC1,
505bc95aa2SDmitry Eremin-Solenikov     SA_PIC_OSTC2,
515bc95aa2SDmitry Eremin-Solenikov     SA_PIC_OSTC3,
525bc95aa2SDmitry Eremin-Solenikov     SA_PIC_RTC_HZ,
535bc95aa2SDmitry Eremin-Solenikov     SA_PIC_RTC_ALARM,
545bc95aa2SDmitry Eremin-Solenikov };
555bc95aa2SDmitry Eremin-Solenikov 
565bc95aa2SDmitry Eremin-Solenikov typedef struct {
578bf502e2SAndreas Färber     ARMCPU *cpu;
585bc95aa2SDmitry Eremin-Solenikov     DeviceState *pic;
595bc95aa2SDmitry Eremin-Solenikov     DeviceState *gpio;
605bc95aa2SDmitry Eremin-Solenikov     DeviceState *ppc;
615bc95aa2SDmitry Eremin-Solenikov     DeviceState *ssp;
625bc95aa2SDmitry Eremin-Solenikov     SSIBus *ssp_bus;
635bc95aa2SDmitry Eremin-Solenikov } StrongARMState;
645bc95aa2SDmitry Eremin-Solenikov 
653cd892daSPhilippe Mathieu-Daudé StrongARMState *sa1110_init(const char *cpu_type);
665bc95aa2SDmitry Eremin-Solenikov 
675bc95aa2SDmitry Eremin-Solenikov #endif
68