Revision 97aff481 hw/versatilepb.c
b/hw/versatilepb.c | ||
---|---|---|
23 | 23 |
uint32_t level; |
24 | 24 |
uint32_t mask; |
25 | 25 |
uint32_t pic_enable; |
26 |
qemu_irq *parent;
|
|
26 |
qemu_irq parent[32];
|
|
27 | 27 |
int irq; |
28 | 28 |
} vpb_sic_state; |
29 | 29 |
|
... | ... | |
133 | 133 |
vpb_sic_state *s; |
134 | 134 |
qemu_irq *qi; |
135 | 135 |
int iomemtype; |
136 |
int i; |
|
136 | 137 |
|
137 | 138 |
s = (vpb_sic_state *)qemu_mallocz(sizeof(vpb_sic_state)); |
138 | 139 |
qi = qemu_allocate_irqs(vpb_sic_set_irq, s, 32); |
139 |
s->parent = parent; |
|
140 |
for (i = 0; i < 32; i++) { |
|
141 |
s->parent[i] = parent[i]; |
|
142 |
} |
|
140 | 143 |
s->irq = irq; |
141 | 144 |
iomemtype = cpu_register_io_memory(0, vpb_sic_readfn, |
142 | 145 |
vpb_sic_writefn, s); |
... | ... | |
161 | 164 |
{ |
162 | 165 |
CPUState *env; |
163 | 166 |
ram_addr_t ram_offset; |
164 |
qemu_irq *pic; |
|
167 |
qemu_irq *cpu_pic; |
|
168 |
qemu_irq pic[32]; |
|
165 | 169 |
qemu_irq *sic; |
170 |
DeviceState *dev; |
|
166 | 171 |
PCIBus *pci_bus; |
167 | 172 |
NICInfo *nd; |
168 | 173 |
int n; |
... | ... | |
181 | 186 |
cpu_register_physical_memory(0, ram_size, ram_offset | IO_MEM_RAM); |
182 | 187 |
|
183 | 188 |
arm_sysctl_init(0x10000000, 0x41007004); |
184 |
pic = arm_pic_init_cpu(env); |
|
185 |
pic = pl190_init(0x10140000, pic[0], pic[1]); |
|
189 |
cpu_pic = arm_pic_init_cpu(env); |
|
190 |
dev = sysbus_create_varargs("pl190", 0x10140000, |
|
191 |
cpu_pic[0], cpu_pic[1], NULL); |
|
192 |
for (n = 0; n < 32; n++) { |
|
193 |
pic[n] = qdev_get_irq_sink(dev, n); |
|
194 |
} |
|
186 | 195 |
sic = vpb_sic_init(0x10003000, pic, 31); |
187 | 196 |
|
188 | 197 |
sysbus_create_simple("pl050_keyboard", 0x10006000, sic[3]); |
189 | 198 |
sysbus_create_simple("pl050_mouse", 0x10007000, sic[4]); |
190 | 199 |
|
191 |
pci_bus = pci_vpb_init(sic, 27, 0);
|
|
200 |
pci_bus = pci_vpb_init(sic + 27, 0);
|
|
192 | 201 |
/* The Versatile PCI bridge does not provide access to PCI IO space, |
193 | 202 |
so many of the qemu PCI devices are not useable. */ |
194 | 203 |
for(n = 0; n < nb_nics; n++) { |
Also available in: Unified diff