qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] hw/ppc: Fix --without-default-devices build
@ 2025-05-26 11:23 Philippe Mathieu-Daudé
  2025-05-26 11:23 ` [PATCH 1/3] hw/acpi: Build IPMI stubs when ACPI is disabled Philippe Mathieu-Daudé
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-05-26 11:23 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Cédric Le Goater, Ani Sinha, Philippe Mathieu-Daudé

Fix build issue reported by Thomas:
https://lore.kernel.org/qemu-devel/2d6dead5-f56c-43cf-b7d1-9567fef99616@redhat.com/

Philippe Mathieu-Daudé (3):
  hw/acpi: Build IPMI stubs when ACPI is disabled
  hw/ppc: PowerNV machines expose a I2C bus
  hw/ppc: Add stub for pnv_chip_find_core()

 hw/ppc/pnv_stub.c   | 15 +++++++++++++++
 hw/acpi/meson.build | 10 ++++++++--
 hw/ppc/Kconfig      |  1 +
 hw/ppc/meson.build  |  3 ++-
 4 files changed, 26 insertions(+), 3 deletions(-)
 create mode 100644 hw/ppc/pnv_stub.c

-- 
2.47.1



^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/3] hw/acpi: Build IPMI stubs when ACPI is disabled
  2025-05-26 11:23 [PATCH 0/3] hw/ppc: Fix --without-default-devices build Philippe Mathieu-Daudé
@ 2025-05-26 11:23 ` Philippe Mathieu-Daudé
  2025-05-26 11:55   ` Thomas Huth
  2025-05-26 11:23 ` [PATCH 2/3] hw/ppc: PowerNV machines expose a I2C bus Philippe Mathieu-Daudé
  2025-05-26 11:23 ` [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core() Philippe Mathieu-Daudé
  2 siblings, 1 reply; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-05-26 11:23 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Cédric Le Goater, Ani Sinha, Philippe Mathieu-Daudé

When ACPI is disabled, no ACPI code depends on IPMI,
so we don't need the stubs.

We need them when IPMI is enabled and ACPI disabled,
otherwise when using '--without-default-devices' we
get:

  Undefined symbols for architecture arm64:
    "_build_ipmi_dev_aml", referenced from:
        _isa_ipmi_bt_class_init in hw_ipmi_isa_ipmi_bt.c.o
  ld: symbol(s) not found for architecture arm64

Split the source set list to avoid a too long line.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 hw/acpi/meson.build | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/hw/acpi/meson.build b/hw/acpi/meson.build
index 73f02b96912..76948cdd00d 100644
--- a/hw/acpi/meson.build
+++ b/hw/acpi/meson.build
@@ -26,12 +26,18 @@ acpi_ss.add(when: 'CONFIG_ACPI_PCIHP', if_false: files('acpi-pci-hotplug-stub.c'
 acpi_ss.add(when: 'CONFIG_ACPI_VIOT', if_true: files('viot.c'))
 acpi_ss.add(when: 'CONFIG_ACPI_ICH9', if_true: files('ich9.c', 'ich9_tco.c', 'ich9_timer.c'))
 acpi_ss.add(when: 'CONFIG_ACPI_ERST', if_true: files('erst.c'))
-acpi_ss.add(when: 'CONFIG_IPMI', if_true: files('ipmi.c'), if_false: files('ipmi-stub.c'))
+acpi_ss.add(when: 'CONFIG_IPMI', if_true: files('ipmi.c'))
 acpi_ss.add(when: 'CONFIG_PC', if_false: files('acpi-x86-stub.c'))
 if have_tpm
   acpi_ss.add(files('tpm.c'))
 endif
-system_ss.add(when: 'CONFIG_ACPI', if_false: files('acpi-stub.c', 'aml-build-stub.c', 'ghes-stub.c', 'acpi_interface.c'))
+system_ss.add(when: 'CONFIG_ACPI', if_false: files(
+  'acpi-stub.c',
+  'acpi_interface.c',
+  'aml-build-stub.c',
+  'ghes-stub.c',
+  'ipmi-stub.c',
+))
 system_ss.add(when: 'CONFIG_ACPI_PCI_BRIDGE', if_false: files('pci-bridge-stub.c'))
 system_ss.add_all(when: 'CONFIG_ACPI', if_true: acpi_ss)
 system_ss.add(files('acpi-qmp-cmds.c'))
-- 
2.47.1



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/3] hw/ppc: PowerNV machines expose a I2C bus
  2025-05-26 11:23 [PATCH 0/3] hw/ppc: Fix --without-default-devices build Philippe Mathieu-Daudé
  2025-05-26 11:23 ` [PATCH 1/3] hw/acpi: Build IPMI stubs when ACPI is disabled Philippe Mathieu-Daudé
@ 2025-05-26 11:23 ` Philippe Mathieu-Daudé
  2025-05-26 11:34   ` Thomas Huth
  2025-05-26 11:48   ` Cédric Le Goater
  2025-05-26 11:23 ` [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core() Philippe Mathieu-Daudé
  2 siblings, 2 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-05-26 11:23 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Cédric Le Goater, Ani Sinha, Philippe Mathieu-Daudé

Since commit 263b81ee15a, PowerNV machines instanciate
a I2C controller, so expose a I2C bus. Express that in
Kconfig, otherwise we get a configure error when trying
to use '--without-default-devices':

  The following clauses were found for PCA9552
      config PCA9552 depends on I2C
      select PCA9552 if POWERNV

Fixes: 263b81ee15a ("ppc/pnv: Add an I2C controller model")
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 hw/ppc/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index ced6bbc7404..0d017df83ee 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -29,6 +29,7 @@ config POWERNV
     depends on PPC64 && FDT
     imply PCI_DEVICES
     imply TEST_DEVICES
+    select I2C
     select ISA_IPMI_BT
     select IPMI_LOCAL
     select ISA_BUS
-- 
2.47.1



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core()
  2025-05-26 11:23 [PATCH 0/3] hw/ppc: Fix --without-default-devices build Philippe Mathieu-Daudé
  2025-05-26 11:23 ` [PATCH 1/3] hw/acpi: Build IPMI stubs when ACPI is disabled Philippe Mathieu-Daudé
  2025-05-26 11:23 ` [PATCH 2/3] hw/ppc: PowerNV machines expose a I2C bus Philippe Mathieu-Daudé
@ 2025-05-26 11:23 ` Philippe Mathieu-Daudé
  2025-05-26 11:48   ` Cédric Le Goater
  2 siblings, 1 reply; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-05-26 11:23 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Cédric Le Goater, Ani Sinha, Philippe Mathieu-Daudé,
	Thomas Huth

Since commit 9808ce6d5cb, building QEMU configured with
'--without-default-devices' fails:

  Undefined symbols for architecture arm64:
    "_pnv_chip_find_core", referenced from:
        _helper_load_sprd in target_ppc_misc_helper.c.o
        _helper_store_sprd in target_ppc_misc_helper.c.o
  ld: symbol(s) not found for architecture arm64
  clang: error: linker command failed with exit code 1

Fix by adding a stub when CONFIG_POWERNV is not available.

Reported-by: Thomas Huth <thuth@redhat.com>
Fixes: 9808ce6d5cb ("target/ppc: Big-core scratch register fix")
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 hw/ppc/pnv_stub.c  | 15 +++++++++++++++
 hw/ppc/meson.build |  3 ++-
 2 files changed, 17 insertions(+), 1 deletion(-)
 create mode 100644 hw/ppc/pnv_stub.c

diff --git a/hw/ppc/pnv_stub.c b/hw/ppc/pnv_stub.c
new file mode 100644
index 00000000000..8d11c8b65bb
--- /dev/null
+++ b/hw/ppc/pnv_stub.c
@@ -0,0 +1,15 @@
+/*
+ * QEMU PowerPC PowerNV stubs
+ *
+ *  Copyright (c) Linaro
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "qemu/osdep.h"
+#include "hw/ppc/pnv.h"
+
+PnvCore *pnv_chip_find_core(PnvChip *chip, uint32_t core_id)
+{
+    g_assert_not_reached();
+}
diff --git a/hw/ppc/meson.build b/hw/ppc/meson.build
index 9893f8adebb..02f248f5f46 100644
--- a/hw/ppc/meson.build
+++ b/hw/ppc/meson.build
@@ -55,7 +55,8 @@ ppc_ss.add(when: 'CONFIG_POWERNV', if_true: files(
   'pnv_pnor.c',
   'pnv_nest_pervasive.c',
   'pnv_n1_chiplet.c',
-))
+), if_false: files('pnv_stub.c'))
+
 # PowerPC 4xx boards
 ppc_ss.add(when: 'CONFIG_PPC440', if_true: files(
   'ppc440_bamboo.c',
-- 
2.47.1



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 2/3] hw/ppc: PowerNV machines expose a I2C bus
  2025-05-26 11:23 ` [PATCH 2/3] hw/ppc: PowerNV machines expose a I2C bus Philippe Mathieu-Daudé
@ 2025-05-26 11:34   ` Thomas Huth
  2025-05-26 11:48   ` Cédric Le Goater
  1 sibling, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-05-26 11:34 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Cédric Le Goater, Ani Sinha

On 26/05/2025 13.23, Philippe Mathieu-Daudé wrote:
> Since commit 263b81ee15a, PowerNV machines instanciate
> a I2C controller, so expose a I2C bus. Express that in
> Kconfig, otherwise we get a configure error when trying
> to use '--without-default-devices':
> 
>    The following clauses were found for PCA9552
>        config PCA9552 depends on I2C
>        select PCA9552 if POWERNV
> 
> Fixes: 263b81ee15a ("ppc/pnv: Add an I2C controller model")
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   hw/ppc/Kconfig | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
> index ced6bbc7404..0d017df83ee 100644
> --- a/hw/ppc/Kconfig
> +++ b/hw/ppc/Kconfig
> @@ -29,6 +29,7 @@ config POWERNV
>       depends on PPC64 && FDT
>       imply PCI_DEVICES
>       imply TEST_DEVICES
> +    select I2C
>       select ISA_IPMI_BT
>       select IPMI_LOCAL
>       select ISA_BUS

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core()
  2025-05-26 11:23 ` [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core() Philippe Mathieu-Daudé
@ 2025-05-26 11:48   ` Cédric Le Goater
  2025-05-26 11:51     ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 16+ messages in thread
From: Cédric Le Goater @ 2025-05-26 11:48 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Ani Sinha, Thomas Huth

On 5/26/25 13:23, Philippe Mathieu-Daudé wrote:
> Since commit 9808ce6d5cb, building QEMU configured with
> '--without-default-devices' fails:
> 
>    Undefined symbols for architecture arm64:
>      "_pnv_chip_find_core", referenced from:
>          _helper_load_sprd in target_ppc_misc_helper.c.o
>          _helper_store_sprd in target_ppc_misc_helper.c.o
>    ld: symbol(s) not found for architecture arm64
>    clang: error: linker command failed with exit code 1
> > Fix by adding a stub when CONFIG_POWERNV is not available.

The fix would be to add an abstract handler to implement SPRD accesses
on the PowerNV machine.

Thanks,

C.



> 
> Reported-by: Thomas Huth <thuth@redhat.com>
> Fixes: 9808ce6d5cb ("target/ppc: Big-core scratch register fix")
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   hw/ppc/pnv_stub.c  | 15 +++++++++++++++
>   hw/ppc/meson.build |  3 ++-
>   2 files changed, 17 insertions(+), 1 deletion(-)
>   create mode 100644 hw/ppc/pnv_stub.c
> 
> diff --git a/hw/ppc/pnv_stub.c b/hw/ppc/pnv_stub.c
> new file mode 100644
> index 00000000000..8d11c8b65bb
> --- /dev/null
> +++ b/hw/ppc/pnv_stub.c
> @@ -0,0 +1,15 @@
> +/*
> + * QEMU PowerPC PowerNV stubs
> + *
> + *  Copyright (c) Linaro
> + *
> + * SPDX-License-Identifier: GPL-2.0-or-later
> + */
> +
> +#include "qemu/osdep.h"
> +#include "hw/ppc/pnv.h"
> +
> +PnvCore *pnv_chip_find_core(PnvChip *chip, uint32_t core_id)
> +{
> +    g_assert_not_reached();
> +}
> diff --git a/hw/ppc/meson.build b/hw/ppc/meson.build
> index 9893f8adebb..02f248f5f46 100644
> --- a/hw/ppc/meson.build
> +++ b/hw/ppc/meson.build
> @@ -55,7 +55,8 @@ ppc_ss.add(when: 'CONFIG_POWERNV', if_true: files(
>     'pnv_pnor.c',
>     'pnv_nest_pervasive.c',
>     'pnv_n1_chiplet.c',
> -))
> +), if_false: files('pnv_stub.c'))
> +
>   # PowerPC 4xx boards
>   ppc_ss.add(when: 'CONFIG_PPC440', if_true: files(
>     'ppc440_bamboo.c',



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 2/3] hw/ppc: PowerNV machines expose a I2C bus
  2025-05-26 11:23 ` [PATCH 2/3] hw/ppc: PowerNV machines expose a I2C bus Philippe Mathieu-Daudé
  2025-05-26 11:34   ` Thomas Huth
@ 2025-05-26 11:48   ` Cédric Le Goater
  1 sibling, 0 replies; 16+ messages in thread
From: Cédric Le Goater @ 2025-05-26 11:48 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Ani Sinha

On 5/26/25 13:23, Philippe Mathieu-Daudé wrote:
> Since commit 263b81ee15a, PowerNV machines instanciate
> a I2C controller, so expose a I2C bus. Express that in
> Kconfig, otherwise we get a configure error when trying
> to use '--without-default-devices':
> 
>    The following clauses were found for PCA9552
>        config PCA9552 depends on I2C
>        select PCA9552 if POWERNV
> 
> Fixes: 263b81ee15a ("ppc/pnv: Add an I2C controller model")
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   hw/ppc/Kconfig | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
> index ced6bbc7404..0d017df83ee 100644
> --- a/hw/ppc/Kconfig
> +++ b/hw/ppc/Kconfig
> @@ -29,6 +29,7 @@ config POWERNV
>       depends on PPC64 && FDT
>       imply PCI_DEVICES
>       imply TEST_DEVICES
> +    select I2C
>       select ISA_IPMI_BT
>       select IPMI_LOCAL
>       select ISA_BUS



Reviewed-by: Cédric Le Goater <clg@redhat.com>

Thanks,

C.




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core()
  2025-05-26 11:48   ` Cédric Le Goater
@ 2025-05-26 11:51     ` Philippe Mathieu-Daudé
  2025-07-13 11:18       ` Michael Tokarev
  2025-07-22 18:04       ` Aditya Gupta
  0 siblings, 2 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-05-26 11:51 UTC (permalink / raw)
  To: Cédric Le Goater, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Ani Sinha, Thomas Huth, qemu-stable

On 26/5/25 13:48, Cédric Le Goater wrote:
> On 5/26/25 13:23, Philippe Mathieu-Daudé wrote:
>> Since commit 9808ce6d5cb, building QEMU configured with
>> '--without-default-devices' fails:
>>
>>    Undefined symbols for architecture arm64:
>>      "_pnv_chip_find_core", referenced from:
>>          _helper_load_sprd in target_ppc_misc_helper.c.o
>>          _helper_store_sprd in target_ppc_misc_helper.c.o
>>    ld: symbol(s) not found for architecture arm64
>>    clang: error: linker command failed with exit code 1
>> > Fix by adding a stub when CONFIG_POWERNV is not available.
> 
> The fix would be to add an abstract handler to implement SPRD accesses
> on the PowerNV machine.

I don't know what "SPRD" is so I'll let someone more familiar with
this area do the proper cleanup.

Regards,

Phil.

> 
> Thanks,
> 
> C.



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/3] hw/acpi: Build IPMI stubs when ACPI is disabled
  2025-05-26 11:23 ` [PATCH 1/3] hw/acpi: Build IPMI stubs when ACPI is disabled Philippe Mathieu-Daudé
@ 2025-05-26 11:55   ` Thomas Huth
  2025-05-26 11:57     ` Thomas Huth
  0 siblings, 1 reply; 16+ messages in thread
From: Thomas Huth @ 2025-05-26 11:55 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Cédric Le Goater, Ani Sinha

On 26/05/2025 13.23, Philippe Mathieu-Daudé wrote:
> When ACPI is disabled, no ACPI code depends on IPMI,
> so we don't need the stubs.
> 
> We need them when IPMI is enabled and ACPI disabled,
> otherwise when using '--without-default-devices' we
> get:
> 
>    Undefined symbols for architecture arm64:
>      "_build_ipmi_dev_aml", referenced from:
>          _isa_ipmi_bt_class_init in hw_ipmi_isa_ipmi_bt.c.o
>    ld: symbol(s) not found for architecture arm64
> 
> Split the source set list to avoid a too long line.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   hw/acpi/meson.build | 10 ++++++++--
>   1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/acpi/meson.build b/hw/acpi/meson.build
> index 73f02b96912..76948cdd00d 100644
> --- a/hw/acpi/meson.build
> +++ b/hw/acpi/meson.build
> @@ -26,12 +26,18 @@ acpi_ss.add(when: 'CONFIG_ACPI_PCIHP', if_false: files('acpi-pci-hotplug-stub.c'
>   acpi_ss.add(when: 'CONFIG_ACPI_VIOT', if_true: files('viot.c'))
>   acpi_ss.add(when: 'CONFIG_ACPI_ICH9', if_true: files('ich9.c', 'ich9_tco.c', 'ich9_timer.c'))
>   acpi_ss.add(when: 'CONFIG_ACPI_ERST', if_true: files('erst.c'))
> -acpi_ss.add(when: 'CONFIG_IPMI', if_true: files('ipmi.c'), if_false: files('ipmi-stub.c'))
> +acpi_ss.add(when: 'CONFIG_IPMI', if_true: files('ipmi.c'))
>   acpi_ss.add(when: 'CONFIG_PC', if_false: files('acpi-x86-stub.c'))
>   if have_tpm
>     acpi_ss.add(files('tpm.c'))
>   endif
> -system_ss.add(when: 'CONFIG_ACPI', if_false: files('acpi-stub.c', 'aml-build-stub.c', 'ghes-stub.c', 'acpi_interface.c'))
> +system_ss.add(when: 'CONFIG_ACPI', if_false: files(
> +  'acpi-stub.c',
> +  'acpi_interface.c',

While you're at it, I think acpi_interface.c is always needed (it's also 
added earlier in this file already when CONFIG_ACPI is enabled), so I think 
this should rather go to a separate "system_ss.add(...)" line?

  Thomas


> +  'aml-build-stub.c',
> +  'ghes-stub.c',
> +  'ipmi-stub.c',
> +))
>   system_ss.add(when: 'CONFIG_ACPI_PCI_BRIDGE', if_false: files('pci-bridge-stub.c'))
>   system_ss.add_all(when: 'CONFIG_ACPI', if_true: acpi_ss)
>   system_ss.add(files('acpi-qmp-cmds.c'))



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/3] hw/acpi: Build IPMI stubs when ACPI is disabled
  2025-05-26 11:55   ` Thomas Huth
@ 2025-05-26 11:57     ` Thomas Huth
  0 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-05-26 11:57 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Cédric Le Goater, Ani Sinha

On 26/05/2025 13.55, Thomas Huth wrote:
> On 26/05/2025 13.23, Philippe Mathieu-Daudé wrote:
>> When ACPI is disabled, no ACPI code depends on IPMI,
>> so we don't need the stubs.
>>
>> We need them when IPMI is enabled and ACPI disabled,
>> otherwise when using '--without-default-devices' we
>> get:
>>
>>    Undefined symbols for architecture arm64:
>>      "_build_ipmi_dev_aml", referenced from:
>>          _isa_ipmi_bt_class_init in hw_ipmi_isa_ipmi_bt.c.o
>>    ld: symbol(s) not found for architecture arm64
>>
>> Split the source set list to avoid a too long line.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> ---
>>   hw/acpi/meson.build | 10 ++++++++--
>>   1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/acpi/meson.build b/hw/acpi/meson.build
>> index 73f02b96912..76948cdd00d 100644
>> --- a/hw/acpi/meson.build
>> +++ b/hw/acpi/meson.build
>> @@ -26,12 +26,18 @@ acpi_ss.add(when: 'CONFIG_ACPI_PCIHP', if_false: 
>> files('acpi-pci-hotplug-stub.c'
>>   acpi_ss.add(when: 'CONFIG_ACPI_VIOT', if_true: files('viot.c'))
>>   acpi_ss.add(when: 'CONFIG_ACPI_ICH9', if_true: files('ich9.c', 
>> 'ich9_tco.c', 'ich9_timer.c'))
>>   acpi_ss.add(when: 'CONFIG_ACPI_ERST', if_true: files('erst.c'))
>> -acpi_ss.add(when: 'CONFIG_IPMI', if_true: files('ipmi.c'), if_false: 
>> files('ipmi-stub.c'))
>> +acpi_ss.add(when: 'CONFIG_IPMI', if_true: files('ipmi.c'))
>>   acpi_ss.add(when: 'CONFIG_PC', if_false: files('acpi-x86-stub.c'))
>>   if have_tpm
>>     acpi_ss.add(files('tpm.c'))
>>   endif
>> -system_ss.add(when: 'CONFIG_ACPI', if_false: files('acpi-stub.c', 'aml- 
>> build-stub.c', 'ghes-stub.c', 'acpi_interface.c'))
>> +system_ss.add(when: 'CONFIG_ACPI', if_false: files(
>> +  'acpi-stub.c',
>> +  'acpi_interface.c',
> 
> While you're at it, I think acpi_interface.c is always needed (it's also 
> added earlier in this file already when CONFIG_ACPI is enabled), so I think 
> this should rather go to a separate "system_ss.add(...)" line?

Or maybe it could rather get removed from the list here? ... it does not 
look like it's really needed for the build at a quick glance...

  Thomas



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core()
  2025-05-26 11:51     ` Philippe Mathieu-Daudé
@ 2025-07-13 11:18       ` Michael Tokarev
  2025-08-10  8:00         ` Michael Tokarev
  2025-07-22 18:04       ` Aditya Gupta
  1 sibling, 1 reply; 16+ messages in thread
From: Michael Tokarev @ 2025-07-13 11:18 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, Cédric Le Goater, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Ani Sinha, Thomas Huth, qemu-stable

Hi!

Has this change been forgotten?

Thanks,

/mjt

On 26.05.2025 14:51, Philippe Mathieu-Daudé wrote:
> On 26/5/25 13:48, Cédric Le Goater wrote:
>> On 5/26/25 13:23, Philippe Mathieu-Daudé wrote:
>>> Since commit 9808ce6d5cb, building QEMU configured with
>>> '--without-default-devices' fails:
>>>
>>>    Undefined symbols for architecture arm64:
>>>      "_pnv_chip_find_core", referenced from:
>>>          _helper_load_sprd in target_ppc_misc_helper.c.o
>>>          _helper_store_sprd in target_ppc_misc_helper.c.o
>>>    ld: symbol(s) not found for architecture arm64
>>>    clang: error: linker command failed with exit code 1
>>> > Fix by adding a stub when CONFIG_POWERNV is not available.
>>
>> The fix would be to add an abstract handler to implement SPRD accesses
>> on the PowerNV machine.
> 
> I don't know what "SPRD" is so I'll let someone more familiar with
> this area do the proper cleanup.



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core()
  2025-05-26 11:51     ` Philippe Mathieu-Daudé
  2025-07-13 11:18       ` Michael Tokarev
@ 2025-07-22 18:04       ` Aditya Gupta
  2025-08-11  8:40         ` Philippe Mathieu-Daudé
  1 sibling, 1 reply; 16+ messages in thread
From: Aditya Gupta @ 2025-07-22 18:04 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, Cédric Le Goater, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Ani Sinha, Thomas Huth, qemu-stable, Harsh Prateek Bora

Hi Cédric and Philippe,


On 26/05/25 17:21, Philippe Mathieu-Daudé wrote:
> On 26/5/25 13:48, Cédric Le Goater wrote:
>> On 5/26/25 13:23, Philippe Mathieu-Daudé wrote:
>>> Since commit 9808ce6d5cb, building QEMU configured with
>>> '--without-default-devices' fails:
>>>
>>>    Undefined symbols for architecture arm64:
>>>      "_pnv_chip_find_core", referenced from:
>>>          _helper_load_sprd in target_ppc_misc_helper.c.o
>>>          _helper_store_sprd in target_ppc_misc_helper.c.o
>>>    ld: symbol(s) not found for architecture arm64
>>>    clang: error: linker command failed with exit code 1
>>> > Fix by adding a stub when CONFIG_POWERNV is not available.
>>
>> The fix would be to add an abstract handler to implement SPRD accesses
>> on the PowerNV machine.


Is this what you meant by an abstract handler ?
https://github.com/adi-g15-ibm/qemu/commit/0abac37032a5ef66d64a649ce04f24876bf9007d


The thing done, is just to introduce a function pointer in 
'PowerPCCPUClass',
namely 'handle_sprd_store' and 'handle_sprd_load'


These will be set in the PNV chip realize path, so now the SPRD code in
target/ppc, will only call this for PowerNV.

Separated the powernv specific code, so target/ppc code doesn't depend
on pnv calls now.


Not well tested, will try somethings.


Thanks,

Aditya Gupta


>
> I don't know what "SPRD" is so I'll let someone more familiar with
> this area do the proper cleanup.
>
> Regards,
>
> Phil.
>
>>
>> Thanks,
>>
>> C.
>
>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core()
  2025-07-13 11:18       ` Michael Tokarev
@ 2025-08-10  8:00         ` Michael Tokarev
  2025-08-20  6:52           ` Aditya Gupta
  0 siblings, 1 reply; 16+ messages in thread
From: Michael Tokarev @ 2025-08-10  8:00 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, Cédric Le Goater, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Ani Sinha, Thomas Huth, qemu-stable

On 13.07.2025 14:18, Michael Tokarev wrote:
> Hi!
> 
> Has this change been forgotten?

Another ping?

Or can we assume this change isn't needed anymore? :)

Thanks,

/mjt

> On 26.05.2025 14:51, Philippe Mathieu-Daudé wrote:
>> On 26/5/25 13:48, Cédric Le Goater wrote:
>>> On 5/26/25 13:23, Philippe Mathieu-Daudé wrote:
>>>> Since commit 9808ce6d5cb, building QEMU configured with
>>>> '--without-default-devices' fails:
>>>>
>>>>    Undefined symbols for architecture arm64:
>>>>      "_pnv_chip_find_core", referenced from:
>>>>          _helper_load_sprd in target_ppc_misc_helper.c.o
>>>>          _helper_store_sprd in target_ppc_misc_helper.c.o
>>>>    ld: symbol(s) not found for architecture arm64
>>>>    clang: error: linker command failed with exit code 1
>>>> > Fix by adding a stub when CONFIG_POWERNV is not available.
>>>
>>> The fix would be to add an abstract handler to implement SPRD accesses
>>> on the PowerNV machine.
>>
>> I don't know what "SPRD" is so I'll let someone more familiar with
>> this area do the proper cleanup.
> 
> 



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core()
  2025-07-22 18:04       ` Aditya Gupta
@ 2025-08-11  8:40         ` Philippe Mathieu-Daudé
  2025-08-20 12:30           ` Aditya Gupta
  0 siblings, 1 reply; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-08-11  8:40 UTC (permalink / raw)
  To: Aditya Gupta, Cédric Le Goater, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Ani Sinha, Thomas Huth, qemu-stable, Harsh Prateek Bora

On 22/7/25 20:04, Aditya Gupta wrote:
> Hi Cédric and Philippe,
> 
> 
> On 26/05/25 17:21, Philippe Mathieu-Daudé wrote:
>> On 26/5/25 13:48, Cédric Le Goater wrote:
>>> On 5/26/25 13:23, Philippe Mathieu-Daudé wrote:
>>>> Since commit 9808ce6d5cb, building QEMU configured with
>>>> '--without-default-devices' fails:
>>>>
>>>>    Undefined symbols for architecture arm64:
>>>>      "_pnv_chip_find_core", referenced from:
>>>>          _helper_load_sprd in target_ppc_misc_helper.c.o
>>>>          _helper_store_sprd in target_ppc_misc_helper.c.o
>>>>    ld: symbol(s) not found for architecture arm64
>>>>    clang: error: linker command failed with exit code 1
>>>> > Fix by adding a stub when CONFIG_POWERNV is not available.
>>>
>>> The fix would be to add an abstract handler to implement SPRD accesses
>>> on the PowerNV machine.
> 
> 
> Is this what you meant by an abstract handler ?
> https://github.com/adi-g15-ibm/qemu/ 
> commit/0abac37032a5ef66d64a649ce04f24876bf9007d

I think so.

Avoid using target_ulong if possible (I suppose SPRD only exists on
64-bit CPUs so can be uint64_t).

> 
> 
> The thing done, is just to introduce a function pointer in 
> 'PowerPCCPUClass',
> namely 'handle_sprd_store' and 'handle_sprd_load'
> 
> 
> These will be set in the PNV chip realize path, so now the SPRD code in
> target/ppc, will only call this for PowerNV.
> 
> Separated the powernv specific code, so target/ppc code doesn't depend
> on pnv calls now.
> 
> 
> Not well tested, will try somethings.
> 
> 
> Thanks,
> 
> Aditya Gupta
> 
> 
>>
>> I don't know what "SPRD" is so I'll let someone more familiar with
>> this area do the proper cleanup.
>>
>> Regards,
>>
>> Phil.
>>
>>>
>>> Thanks,
>>>
>>> C.
>>
>>




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core()
  2025-08-10  8:00         ` Michael Tokarev
@ 2025-08-20  6:52           ` Aditya Gupta
  0 siblings, 0 replies; 16+ messages in thread
From: Aditya Gupta @ 2025-08-20  6:52 UTC (permalink / raw)
  To: Michael Tokarev, Philippe Mathieu-Daudé,
	Cédric Le Goater, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Ani Sinha, Thomas Huth, qemu-stable


On 10/08/25 13:30, Michael Tokarev wrote:
> On 13.07.2025 14:18, Michael Tokarev wrote:
>> Hi!
>>
>> Has this change been forgotten?
>
> Another ping?
>
> Or can we assume this change isn't needed anymore? :)


Thanks for the pings Michael.

About the change, we will post a patch-set soon with the suggested 
change by Cedric.

I was on vacation past week, so couldn't see the mails.


Thanks,

- Aditya G



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core()
  2025-08-11  8:40         ` Philippe Mathieu-Daudé
@ 2025-08-20 12:30           ` Aditya Gupta
  0 siblings, 0 replies; 16+ messages in thread
From: Aditya Gupta @ 2025-08-20 12:30 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, Cédric Le Goater, qemu-devel
  Cc: Paolo Bonzini, Frédéric Barrat, Michael S. Tsirkin,
	Nicholas Piggin, Igor Mammedov, Daniel Henrique Barboza, qemu-ppc,
	Ani Sinha, Thomas Huth, qemu-stable, Harsh Prateek Bora,
	Michael Tokarev

+Michael

On 11/08/25 14:10, Philippe Mathieu-Daudé wrote:
> On 22/7/25 20:04, Aditya Gupta wrote:
>> Hi Cédric and Philippe,
>>
>>
>> On 26/05/25 17:21, Philippe Mathieu-Daudé wrote:
>>> On 26/5/25 13:48, Cédric Le Goater wrote:
>>>> On 5/26/25 13:23, Philippe Mathieu-Daudé wrote:
>>>>> Since commit 9808ce6d5cb, building QEMU configured with
>>>>> '--without-default-devices' fails:
>>>>>
>>>>>    Undefined symbols for architecture arm64:
>>>>>      "_pnv_chip_find_core", referenced from:
>>>>>          _helper_load_sprd in target_ppc_misc_helper.c.o
>>>>>          _helper_store_sprd in target_ppc_misc_helper.c.o
>>>>>    ld: symbol(s) not found for architecture arm64
>>>>>    clang: error: linker command failed with exit code 1
>>>>> > Fix by adding a stub when CONFIG_POWERNV is not available.
>>>>
>>>> The fix would be to add an abstract handler to implement SPRD accesses
>>>> on the PowerNV machine.
>>
>>
>> Is this what you meant by an abstract handler ?
>> https://github.com/adi-g15-ibm/qemu/ 
>> commit/0abac37032a5ef66d64a649ce04f24876bf9007d
>
> I think so.
>
> Avoid using target_ulong if possible (I suppose SPRD only exists on
> 64-bit CPUs so can be uint64_t).


Thanks Phil. Posted along with your suggested change:

https://lore.kernel.org/qemu-devel/20250820122516.949766-2-adityag@linux.ibm.com/


Thanks,

- Aditya G




^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2025-08-20 12:32 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-26 11:23 [PATCH 0/3] hw/ppc: Fix --without-default-devices build Philippe Mathieu-Daudé
2025-05-26 11:23 ` [PATCH 1/3] hw/acpi: Build IPMI stubs when ACPI is disabled Philippe Mathieu-Daudé
2025-05-26 11:55   ` Thomas Huth
2025-05-26 11:57     ` Thomas Huth
2025-05-26 11:23 ` [PATCH 2/3] hw/ppc: PowerNV machines expose a I2C bus Philippe Mathieu-Daudé
2025-05-26 11:34   ` Thomas Huth
2025-05-26 11:48   ` Cédric Le Goater
2025-05-26 11:23 ` [PATCH 3/3] hw/ppc: Add stub for pnv_chip_find_core() Philippe Mathieu-Daudé
2025-05-26 11:48   ` Cédric Le Goater
2025-05-26 11:51     ` Philippe Mathieu-Daudé
2025-07-13 11:18       ` Michael Tokarev
2025-08-10  8:00         ` Michael Tokarev
2025-08-20  6:52           ` Aditya Gupta
2025-07-22 18:04       ` Aditya Gupta
2025-08-11  8:40         ` Philippe Mathieu-Daudé
2025-08-20 12:30           ` Aditya Gupta

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).