* [PATCH v2 0/2] ppc/pnv: fix build dependencies
@ 2020-02-05 23:20 Laurent Vivier
2020-02-05 23:20 ` [PATCH v2 1/2] qtest: Fix rtas dependencies Laurent Vivier
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Laurent Vivier @ 2020-02-05 23:20 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Thomas Huth, Greg Kurz, qemu-ppc,
Cédric Le Goater, Paolo Bonzini, David Gibson
Building only POWERNV machine without PSERIES machine
fails because of a couple of reasons:
- qtest uses rtas function only provided by PSERIES,
- the dependency to PCI Express has been added to XIVE_SPAPR
rather than to POWERNV
v2: remove PCI already selected by PCI_EXPRESS
remove PCIE_PORT, set by default to yes with PCI_DEVICES
Laurent Vivier (2):
qtest: Fix rtas dependencies
ppc/pnv: Fix PCI_EXPRESS dependency
hw/ppc/Kconfig | 4 ++--
qtest.c | 5 +++--
2 files changed, 5 insertions(+), 4 deletions(-)
--
2.24.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/2] qtest: Fix rtas dependencies
2020-02-05 23:20 [PATCH v2 0/2] ppc/pnv: fix build dependencies Laurent Vivier
@ 2020-02-05 23:20 ` Laurent Vivier
2020-02-06 3:45 ` David Gibson
2020-02-05 23:20 ` [PATCH v2 2/2] ppc/pnv: Fix PCI_EXPRESS dependency Laurent Vivier
2020-02-06 3:45 ` [PATCH v2 0/2] ppc/pnv: fix build dependencies David Gibson
2 siblings, 1 reply; 6+ messages in thread
From: Laurent Vivier @ 2020-02-05 23:20 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Thomas Huth, Greg Kurz, qemu-ppc,
Cédric Le Goater, Paolo Bonzini, David Gibson
qtest "rtas" command is only available with pseries not all ppc64 targets,
so if I try to compile only powernv machine, the build fails with:
/usr/bin/ld: qtest.o: in function `qtest_process_command':
.../qtest.c:645: undefined reference to `qtest_rtas_call'
We fix this by enabling rtas command only with pseries machine.
Fixes: eeddd59f5962 ("tests: add RTAS command in the protocol")
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
---
qtest.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/qtest.c b/qtest.c
index 12432f99cf44..587dcbb4b515 100644
--- a/qtest.c
+++ b/qtest.c
@@ -27,7 +27,8 @@
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "qemu/cutils.h"
-#ifdef TARGET_PPC64
+#include "config-devices.h"
+#ifdef CONFIG_PSERIES
#include "hw/ppc/spapr_rtas.h"
#endif
@@ -628,7 +629,7 @@ static void qtest_process_command(CharBackend *chr, gchar **words)
#else
qtest_sendf(chr, "OK little\n");
#endif
-#ifdef TARGET_PPC64
+#ifdef CONFIG_PSERIES
} else if (strcmp(words[0], "rtas") == 0) {
uint64_t res, args, ret;
unsigned long nargs, nret;
--
2.24.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] ppc/pnv: Fix PCI_EXPRESS dependency
2020-02-05 23:20 [PATCH v2 0/2] ppc/pnv: fix build dependencies Laurent Vivier
2020-02-05 23:20 ` [PATCH v2 1/2] qtest: Fix rtas dependencies Laurent Vivier
@ 2020-02-05 23:20 ` Laurent Vivier
2020-02-06 8:17 ` Thomas Huth
2020-02-06 3:45 ` [PATCH v2 0/2] ppc/pnv: fix build dependencies David Gibson
2 siblings, 1 reply; 6+ messages in thread
From: Laurent Vivier @ 2020-02-05 23:20 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Thomas Huth, Greg Kurz, qemu-ppc,
Cédric Le Goater, Paolo Bonzini, David Gibson
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 <lvivier@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
config PPC405
bool
@@ -135,8 +137,6 @@ config XIVE_SPAPR
default y
depends on PSERIES
select XIVE
- select PCI
- select PCIE_PORT
config XIVE_KVM
bool
--
2.24.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] qtest: Fix rtas dependencies
2020-02-05 23:20 ` [PATCH v2 1/2] qtest: Fix rtas dependencies Laurent Vivier
@ 2020-02-06 3:45 ` David Gibson
0 siblings, 0 replies; 6+ messages in thread
From: David Gibson @ 2020-02-06 3:45 UTC (permalink / raw)
To: Laurent Vivier
Cc: Thomas Huth, Greg Kurz, qemu-devel, qemu-ppc,
Cédric Le Goater, Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 1574 bytes --]
On Thu, Feb 06, 2020 at 12:20:15AM +0100, Laurent Vivier wrote:
> qtest "rtas" command is only available with pseries not all ppc64 targets,
> so if I try to compile only powernv machine, the build fails with:
>
> /usr/bin/ld: qtest.o: in function `qtest_process_command':
> .../qtest.c:645: undefined reference to `qtest_rtas_call'
>
> We fix this by enabling rtas command only with pseries machine.
>
> Fixes: eeddd59f5962 ("tests: add RTAS command in the protocol")
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> qtest.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/qtest.c b/qtest.c
> index 12432f99cf44..587dcbb4b515 100644
> --- a/qtest.c
> +++ b/qtest.c
> @@ -27,7 +27,8 @@
> #include "qemu/error-report.h"
> #include "qemu/module.h"
> #include "qemu/cutils.h"
> -#ifdef TARGET_PPC64
> +#include "config-devices.h"
> +#ifdef CONFIG_PSERIES
> #include "hw/ppc/spapr_rtas.h"
> #endif
>
> @@ -628,7 +629,7 @@ static void qtest_process_command(CharBackend *chr, gchar **words)
> #else
> qtest_sendf(chr, "OK little\n");
> #endif
> -#ifdef TARGET_PPC64
> +#ifdef CONFIG_PSERIES
> } else if (strcmp(words[0], "rtas") == 0) {
> uint64_t res, args, ret;
> unsigned long nargs, nret;
--
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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 0/2] ppc/pnv: fix build dependencies
2020-02-05 23:20 [PATCH v2 0/2] ppc/pnv: fix build dependencies Laurent Vivier
2020-02-05 23:20 ` [PATCH v2 1/2] qtest: Fix rtas dependencies Laurent Vivier
2020-02-05 23:20 ` [PATCH v2 2/2] ppc/pnv: Fix PCI_EXPRESS dependency Laurent Vivier
@ 2020-02-06 3:45 ` David Gibson
2 siblings, 0 replies; 6+ messages in thread
From: David Gibson @ 2020-02-06 3:45 UTC (permalink / raw)
To: Laurent Vivier
Cc: Thomas Huth, Greg Kurz, qemu-devel, qemu-ppc,
Cédric Le Goater, Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 886 bytes --]
On Thu, Feb 06, 2020 at 12:20:14AM +0100, Laurent Vivier wrote:
> Building only POWERNV machine without PSERIES machine
> fails because of a couple of reasons:
>
> - qtest uses rtas function only provided by PSERIES,
> - the dependency to PCI Express has been added to XIVE_SPAPR
> rather than to POWERNV
Applied to ppc-for-5.0, thanks.
>
> v2: remove PCI already selected by PCI_EXPRESS
> remove PCIE_PORT, set by default to yes with PCI_DEVICES
>
> Laurent Vivier (2):
> qtest: Fix rtas dependencies
> ppc/pnv: Fix PCI_EXPRESS dependency
>
> hw/ppc/Kconfig | 4 ++--
> qtest.c | 5 +++--
> 2 files changed, 5 insertions(+), 4 deletions(-)
>
--
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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] ppc/pnv: Fix PCI_EXPRESS dependency
2020-02-05 23:20 ` [PATCH v2 2/2] ppc/pnv: Fix PCI_EXPRESS dependency Laurent Vivier
@ 2020-02-06 8:17 ` Thomas Huth
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Huth @ 2020-02-06 8:17 UTC (permalink / raw)
To: Laurent Vivier, qemu-devel
Cc: Paolo Bonzini, David Gibson, qemu-ppc, Greg Kurz, Cédric Le Goater
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 <lvivier@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
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-02-06 8:18 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-05 23:20 [PATCH v2 0/2] ppc/pnv: fix build dependencies Laurent Vivier
2020-02-05 23:20 ` [PATCH v2 1/2] qtest: Fix rtas dependencies Laurent Vivier
2020-02-06 3:45 ` David Gibson
2020-02-05 23:20 ` [PATCH v2 2/2] ppc/pnv: Fix PCI_EXPRESS dependency Laurent Vivier
2020-02-06 8:17 ` Thomas Huth
2020-02-06 3:45 ` [PATCH v2 0/2] ppc/pnv: fix build dependencies David Gibson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.