Revision fd6dc90b hw/etraxfs.c
b/hw/etraxfs.c | ||
---|---|---|
48 | 48 |
const char *kernel_filename, const char *kernel_cmdline, |
49 | 49 |
const char *initrd_filename, const char *cpu_model) |
50 | 50 |
{ |
51 |
DeviceState *dev; |
|
51 | 52 |
CPUState *env; |
52 |
qemu_irq *irq, *nmi;
|
|
53 |
qemu_irq irq[30], nmi[2], *cpu_irq;
|
|
53 | 54 |
void *etraxfs_dmac; |
54 | 55 |
struct etraxfs_dma_client *eth[2] = {NULL, NULL}; |
55 | 56 |
int kernel_size; |
... | ... | |
83 | 84 |
FLASH_SIZE >> 16, |
84 | 85 |
1, 2, 0x0000, 0x0000, 0x0000, 0x0000, |
85 | 86 |
0x555, 0x2aa); |
86 |
irq = etraxfs_pic_init(env, 0x3001c000); |
|
87 |
nmi = irq + 30; |
|
87 |
cpu_irq = cris_pic_init_cpu(env); |
|
88 |
dev = sysbus_create_varargs("etraxfs,pic", 0x3001c000, |
|
89 |
cpu_irq[0], cpu_irq[1], NULL); |
|
90 |
/* FIXME: Is there a proper way to signal vectors to the CPU core? */ |
|
91 |
qdev_set_prop_ptr(dev, "interrupt_vector", &env->interrupt_vector); |
|
92 |
for (i = 0; i < 30; i++) { |
|
93 |
irq[i] = qdev_get_irq_sink(dev, i); |
|
94 |
} |
|
95 |
nmi[0] = qdev_get_irq_sink(dev, 30); |
|
96 |
nmi[1] = qdev_get_irq_sink(dev, 31); |
|
88 | 97 |
|
89 | 98 |
etraxfs_dmac = etraxfs_dmac_init(env, 0x30000000, 10); |
90 | 99 |
for (i = 0; i < 10; i++) { |
Also available in: Unified diff