On 06/02/2020 00.20, Laurent Vivier wrote: > When PHB4 bridge has been added, the dependencies to PCIE_PORT has been > added to XIVE_SPAPR and indirectly to PSERIES. > The build of the PowerNV machine is fine while we also build the PSERIES > machine. > If we disable the PSERIES machine, the PowerNV build fails because the > PCI Express files are not built: > > /usr/bin/ld: hw/ppc/pnv.o: in function `pnv_chip_power8_pic_print_info': > .../hw/ppc/pnv.c:623: undefined reference to `pnv_phb3_msi_pic_print_info' > /usr/bin/ld: hw/ppc/pnv.o: in function `pnv_chip_power9_pic_print_info': > .../hw/ppc/pnv.c:639: undefined reference to `pnv_phb4_pic_print_info' > /usr/bin/ld: ../hw/usb/hcd-ehci-pci.o: in function > `usb_ehci_pci_write_config': > .../hw/usb/hcd-ehci-pci.c:129: undefined reference to > `pci_default_write_config' > /usr/bin/ld: ../hw/usb/hcd-ehci-pci.o: in function `usb_ehci_pci_realize': > .../hw/usb/hcd-ehci-pci.c:68: undefined reference to `pci_allocate_irq' > /usr/bin/ld: .../hw/usb/hcd-ehci-pci.c:72: undefined reference to > `pci_register_bar' > /usr/bin/ld: ../hw/usb/hcd-ehci-pci.o:(.data.rel+0x50): undefined reference > to `vmstate_pci_device' > > This patch fixes the problem by adding needed dependencies to POWERNV. > > Fixes: 4f9924c4d4cf ("ppc/pnv: Add models for POWER9 PHB4 PCIe Host bridge") > Signed-off-by: Laurent Vivier <lviv...@redhat.com> > --- > > Notes: > v2: remove PCI already selected by PCI_EXPRESS > remove PCIE_PORT, set by default to yes with PCI_DEVICES > > hw/ppc/Kconfig | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig > index 354828bf132f..dd86e664d215 100644 > --- a/hw/ppc/Kconfig > +++ b/hw/ppc/Kconfig > @@ -29,6 +29,8 @@ config POWERNV > select XICS > select XIVE > select FDT_PPC > + select PCI_EXPRESS > + select MSI_NONBROKEN
When only using CONFIG_POWERNV=y in the default-config and using "configure --without-default-devices --target-list=ppc64-softmmu" I still get a linking error: LINK ppc64-softmmu/qemu-system-ppc64 hw/ppc/pnv.o: In function `pnv_init': hw/ppc/pnv.c:846: undefined reference to `serial_hds_isa_init' collect2: error: ld returned 1 exit status make[1]: *** [Makefile:206: qemu-system-ppc64] Error 1 Looks like there is still a "select SERIAL" or something similar missing here? Thomas