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