Revision fd6dc90b hw/axis_dev88.c
b/hw/axis_dev88.c | ||
---|---|---|
254 | 254 |
const char *initrd_filename, const char *cpu_model) |
255 | 255 |
{ |
256 | 256 |
CPUState *env; |
257 |
qemu_irq *irq, *nmi; |
|
257 |
DeviceState *dev; |
|
258 |
SysBusDevice *s; |
|
259 |
qemu_irq irq[30], nmi[2], *cpu_irq; |
|
258 | 260 |
void *etraxfs_dmac; |
259 | 261 |
struct etraxfs_dma_client *eth[2] = {NULL, NULL}; |
260 | 262 |
int kernel_size; |
... | ... | |
292 | 294 |
cpu_register_physical_memory(0x3001a000, 0x5c, gpio_regs); |
293 | 295 |
|
294 | 296 |
|
295 |
irq = etraxfs_pic_init(env, 0x3001c000); |
|
296 |
nmi = irq + 30; |
|
297 |
cpu_irq = cris_pic_init_cpu(env); |
|
298 |
dev = qdev_create(NULL, "etraxfs,pic"); |
|
299 |
/* FIXME: Is there a proper way to signal vectors to the CPU core? */ |
|
300 |
qdev_set_prop_ptr(dev, "interrupt_vector", &env->interrupt_vector); |
|
301 |
qdev_init(dev); |
|
302 |
s = sysbus_from_qdev(dev); |
|
303 |
sysbus_mmio_map(s, 0, 0x3001c000); |
|
304 |
sysbus_connect_irq(s, 0, cpu_irq[0]); |
|
305 |
sysbus_connect_irq(s, 1, cpu_irq[1]); |
|
306 |
for (i = 0; i < 30; i++) { |
|
307 |
irq[i] = qdev_get_irq_sink(dev, i); |
|
308 |
} |
|
309 |
nmi[0] = qdev_get_irq_sink(dev, 30); |
|
310 |
nmi[1] = qdev_get_irq_sink(dev, 31); |
|
297 | 311 |
|
298 | 312 |
etraxfs_dmac = etraxfs_dmac_init(env, 0x30000000, 10); |
299 | 313 |
for (i = 0; i < 10; i++) { |
Also available in: Unified diff