Revision fe7e8758 hw/realview.c

b/hw/realview.c
31 31
{
32 32
    CPUState *env;
33 33
    ram_addr_t ram_offset;
34
    qemu_irq *pic;
35 34
    DeviceState *dev;
35
    qemu_irq *irqp;
36
    qemu_irq pic[64];
36 37
    PCIBus *pci_bus;
37 38
    NICInfo *nd;
38 39
    int n;
......
55 56
            fprintf(stderr, "Unable to find CPU definition\n");
56 57
            exit(1);
57 58
        }
58
        pic = arm_pic_init_cpu(env);
59
        cpu_irq[n] = pic[ARM_PIC_CPU_IRQ];
59
        irqp = arm_pic_init_cpu(env);
60
        cpu_irq[n] = irqp[ARM_PIC_CPU_IRQ];
60 61
        if (n > 0) {
61 62
            /* Set entry point for secondary CPUs.  This assumes we're using
62 63
               the init code from arm_boot.c.  Real hardware resets all CPUs
......
76 77
        /* ??? The documentation says GIC1 is nFIQ and either GIC2 or GIC3
77 78
           is nIRQ (there are inconsistencies).  However Linux 2.6.17 expects
78 79
           GIC1 to be nIRQ and ignores all the others, so do that for now.  */
79
        pic = realview_gic_init(0x10040000, cpu_irq[0]);
80
        dev = sysbus_create_simple("realview_gic", 0x10040000, cpu_irq[0]);
80 81
    } else {
81
        pic = mpcore_irq_init(cpu_irq);
82
        dev = sysbus_create_varargs("realview_mpcore", -1,
83
                                    cpu_irq[0], cpu_irq[1], cpu_irq[2],
84
                                    cpu_irq[3], NULL);
85
    }
86
    for (n = 0; n < 64; n++) {
87
        pic[n] = qdev_get_irq_sink(dev, n);
82 88
    }
83 89

  
84 90
    sysbus_create_simple("pl050_keyboard", 0x10006000, pic[20]);

Also available in: Unified diff