| Submitter | Paolo Bonzini |
|---|---|
| Date | Jan. 18, 2012, 10:33 a.m. |
| Message ID | <1326882794-31816-7-git-send-email-pbonzini@redhat.com> |
| Download | mbox | patch |
| Permalink | /patch/136590/ |
| State | New |
| Headers | show |
Comments
On 2012-01-18 11:33, Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > hw/pc_piix.c | 7 +++++-- > 1 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/hw/pc_piix.c b/hw/pc_piix.c > index 2aba89c..3f92bf9 100644 > --- a/hw/pc_piix.c > +++ b/hw/pc_piix.c > @@ -54,7 +54,7 @@ static const int ide_iobase[MAX_IDE_BUS] = { 0x1f0, 0x170 }; > static const int ide_iobase2[MAX_IDE_BUS] = { 0x3f6, 0x376 }; > static const int ide_irq[MAX_IDE_BUS] = { 14, 15 }; > > -static void ioapic_init(GSIState *gsi_state) > +static DeviceState *ioapic_init(GSIState *gsi_state) > { > DeviceState *dev; > SysBusDevice *d; > @@ -68,6 +68,7 @@ static void ioapic_init(GSIState *gsi_state) > for (i = 0; i < IOAPIC_NUM_PINS; i++) { > gsi_state->ioapic_irq[i] = qdev_get_gpio_in(dev, i); > } > + return dev; > } > > /* PC hardware initialisation */ > @@ -168,7 +169,9 @@ static void pc_init1(MemoryRegion *system_memory, > gsi_state->i8259_irq[i] = i8259[i]; > } > if (pci_enabled) { > - ioapic_init(gsi_state); > + dev = ioapic_init(gsi_state); > + qdev_property_add_child(qdev_resolve_path("/i440fx/piix3", NULL), > + "ioapic", dev, NULL); That's not true. The IOAPIC was a separate IC, not part of the PIIX3. It should be assigned to the board if you want to do it correctly. :) Jan
Patch
diff --git a/hw/pc_piix.c b/hw/pc_piix.c index 2aba89c..3f92bf9 100644 --- a/hw/pc_piix.c +++ b/hw/pc_piix.c @@ -54,7 +54,7 @@ static const int ide_iobase[MAX_IDE_BUS] = { 0x1f0, 0x170 }; static const int ide_iobase2[MAX_IDE_BUS] = { 0x3f6, 0x376 }; static const int ide_irq[MAX_IDE_BUS] = { 14, 15 }; -static void ioapic_init(GSIState *gsi_state) +static DeviceState *ioapic_init(GSIState *gsi_state) { DeviceState *dev; SysBusDevice *d; @@ -68,6 +68,7 @@ static void ioapic_init(GSIState *gsi_state) for (i = 0; i < IOAPIC_NUM_PINS; i++) { gsi_state->ioapic_irq[i] = qdev_get_gpio_in(dev, i); } + return dev; } /* PC hardware initialisation */ @@ -168,7 +169,9 @@ static void pc_init1(MemoryRegion *system_memory, gsi_state->i8259_irq[i] = i8259[i]; } if (pci_enabled) { - ioapic_init(gsi_state); + dev = ioapic_init(gsi_state); + qdev_property_add_child(qdev_resolve_path("/i440fx/piix3", NULL), + "ioapic", dev, NULL); } pc_register_ferr_irq(gsi[13]);
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- hw/pc_piix.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)