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(+)
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
--
2.26.3
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 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 :)
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
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
© 2016 - 2026 Red Hat, Inc.