qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).