Message ID | 20210515173716.358295-10-philmd@redhat.com |
---|---|
State | New |
Headers | show |
Series | hw: Various Kconfig fixes | expand |
On Sat, 15 May 2021, Philippe Mathieu-Daudé wrote: > From: Philippe Mathieu-Daudé <f4bug@amsat.org> > > Looking at the MV64340 model source, there is a dependency on the > 8259 interrupt controller: > > 523 case MV64340_PCI_1_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG: > 524 /* FIXME: Should this be sent via the PCI bus somehow? */ > 525 if (s->gpp_int_level && (s->gpp_value & BIT(31))) { > 526 ret = pic_read_irq(isa_pic); > 527 } > 528 break; > > Add it to Kconfig to avoid the following build failure: > > /usr/bin/ld: libcommon.fa.p/hw_pci-host_mv64361.c.o: in function `mv64361_read': > hw/pci-host/mv64361.c:526: undefined reference to `isa_pic' > /usr/bin/ld: hw/pci-host/mv64361.c:526: undefined reference to `pic_read_irq' > > Fixes: dcdf98a9015 ("hw/pci-host: Add emulation of Marvell MV64361 PPC system controller") > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu> Correct, this is a dependency that I've missed, although pegasos2 probably has it already and nothing else is using this chip but it's more correct to list it explicitely. > --- > hw/pci-host/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig > index 79c20bf28bb..9dc0d761815 100644 > --- a/hw/pci-host/Kconfig > +++ b/hw/pci-host/Kconfig > @@ -76,3 +76,4 @@ config SH_PCI > config MV64361 > bool > select PCI > + select I8259 >
On Sun, May 16, 2021 at 1:52 AM Philippe Mathieu-Daudé <philmd@redhat.com> wrote: > > From: Philippe Mathieu-Daudé <f4bug@amsat.org> > > Looking at the MV64340 model source, there is a dependency on the > 8259 interrupt controller: > > 523 case MV64340_PCI_1_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG: > 524 /* FIXME: Should this be sent via the PCI bus somehow? */ > 525 if (s->gpp_int_level && (s->gpp_value & BIT(31))) { > 526 ret = pic_read_irq(isa_pic); > 527 } > 528 break; > > Add it to Kconfig to avoid the following build failure: > > /usr/bin/ld: libcommon.fa.p/hw_pci-host_mv64361.c.o: in function `mv64361_read': > hw/pci-host/mv64361.c:526: undefined reference to `isa_pic' > /usr/bin/ld: hw/pci-host/mv64361.c:526: undefined reference to `pic_read_irq' > > Fixes: dcdf98a9015 ("hw/pci-host: Add emulation of Marvell MV64361 PPC system controller") > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > hw/pci-host/Kconfig | 1 + > 1 file changed, 1 insertion(+) > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> There are some more codes that contain isa_pic. Maybe worth an additional check. ./hw/i386/x86.c:573: intno = pic_read_irq(isa_pic); ./hw/intc/i8259.c:58:DeviceState *isa_pic; ./hw/intc/i8259.c:429: isa_pic = dev; ./hw/intc/apic.c:387: } else if (!apic_accept_pic_intr(dev) || !pic_get_output(isa_pic)) { ./hw/intc/apic.c:562: if (!apic_accept_pic_intr(dev) || !pic_get_output(isa_pic)) { ./hw/intc/apic.c:615: return isa_pic != NULL; ./hw/intc/ioapic.c:78: info->vector = pic_read_irq(isa_pic); ./hw/hppa/pci.c:67: return pic_read_irq(isa_pic); ./hw/mips/gt64xxx_pci.c:777: val = pic_read_irq(isa_pic); ./hw/alpha/pci.c:70: return pic_read_irq(isa_pic); ./hw/pci-host/mv64361.c:526: ret = pic_read_irq(isa_pic); ./hw/pci-host/prep.c:121: return pic_read_irq(isa_pic); ./include/hw/intc/i8259.h:6:extern DeviceState *isa_pic; Regards, Bin
On Sat, May 15, 2021 at 07:37:13PM +0200, Philippe Mathieu-Daudé wrote: > From: Philippe Mathieu-Daudé <f4bug@amsat.org> > > Looking at the MV64340 model source, there is a dependency on the > 8259 interrupt controller: > > 523 case MV64340_PCI_1_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG: > 524 /* FIXME: Should this be sent via the PCI bus somehow? */ > 525 if (s->gpp_int_level && (s->gpp_value & BIT(31))) { > 526 ret = pic_read_irq(isa_pic); > 527 } > 528 break; > > Add it to Kconfig to avoid the following build failure: > > /usr/bin/ld: libcommon.fa.p/hw_pci-host_mv64361.c.o: in function `mv64361_read': > hw/pci-host/mv64361.c:526: undefined reference to `isa_pic' > /usr/bin/ld: hw/pci-host/mv64361.c:526: undefined reference to `pic_read_irq' > > Fixes: dcdf98a9015 ("hw/pci-host: Add emulation of Marvell MV64361 PPC system controller") > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Acked-by: David Gibson <david@gibson.dropbear.id.au> > --- > hw/pci-host/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig > index 79c20bf28bb..9dc0d761815 100644 > --- a/hw/pci-host/Kconfig > +++ b/hw/pci-host/Kconfig > @@ -76,3 +76,4 @@ config SH_PCI > config MV64361 > bool > select PCI > + select I8259
On 5/17/21 4:49 AM, Bin Meng wrote: > On Sun, May 16, 2021 at 1:52 AM Philippe Mathieu-Daudé > <philmd@redhat.com> wrote: >> >> From: Philippe Mathieu-Daudé <f4bug@amsat.org> >> >> Looking at the MV64340 model source, there is a dependency on the >> 8259 interrupt controller: >> >> 523 case MV64340_PCI_1_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG: >> 524 /* FIXME: Should this be sent via the PCI bus somehow? */ >> 525 if (s->gpp_int_level && (s->gpp_value & BIT(31))) { >> 526 ret = pic_read_irq(isa_pic); >> 527 } >> 528 break; >> >> Add it to Kconfig to avoid the following build failure: >> >> /usr/bin/ld: libcommon.fa.p/hw_pci-host_mv64361.c.o: in function `mv64361_read': >> hw/pci-host/mv64361.c:526: undefined reference to `isa_pic' >> /usr/bin/ld: hw/pci-host/mv64361.c:526: undefined reference to `pic_read_irq' >> >> Fixes: dcdf98a9015 ("hw/pci-host: Add emulation of Marvell MV64361 PPC system controller") >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> --- >> hw/pci-host/Kconfig | 1 + >> 1 file changed, 1 insertion(+) >> > > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Thank you :) > There are some more codes that contain isa_pic. Maybe worth an additional check. > > ./hw/i386/x86.c:573: intno = pic_read_irq(isa_pic); > ./hw/intc/i8259.c:58:DeviceState *isa_pic; > ./hw/intc/i8259.c:429: isa_pic = dev; > ./hw/intc/apic.c:387: } else if (!apic_accept_pic_intr(dev) || > !pic_get_output(isa_pic)) { > ./hw/intc/apic.c:562: if (!apic_accept_pic_intr(dev) || > !pic_get_output(isa_pic)) { > ./hw/intc/apic.c:615: return isa_pic != NULL; > ./hw/intc/ioapic.c:78: info->vector = pic_read_irq(isa_pic); > ./hw/hppa/pci.c:67: return pic_read_irq(isa_pic); > ./hw/mips/gt64xxx_pci.c:777: val = pic_read_irq(isa_pic); > ./hw/alpha/pci.c:70: return pic_read_irq(isa_pic); > ./hw/pci-host/mv64361.c:526: ret = pic_read_irq(isa_pic); > ./hw/pci-host/prep.c:121: return pic_read_irq(isa_pic); > ./include/hw/intc/i8259.h:6:extern DeviceState *isa_pic; I'll have a look, by my secret plan is to remove the global isa_pic :)
diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig index 79c20bf28bb..9dc0d761815 100644 --- a/hw/pci-host/Kconfig +++ b/hw/pci-host/Kconfig @@ -76,3 +76,4 @@ config SH_PCI config MV64361 bool select PCI + select I8259