qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Improvements for switches in hw/cpu/Kconfig
@ 2024-04-15  6:56 Thomas Huth
  2024-04-15  6:56 ` [PATCH v2 1/2] hw: Fix problem with the A*MPCORE switches in the Kconfig files Thomas Huth
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Thomas Huth @ 2024-04-15  6:56 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Peter Maydell
  Cc: qemu-arm, qemu-riscv, Daniel Henrique Barboza, Liu Zhiwei,
	Alistair Francis, Bin Meng, Weiwei Li, Palmer Dabbelt

First patch fixes the problem that the file hw/cpu/Kconfig is
currently ignored and the switches there are duplicated in hw/arm/.

The second patch introduces a proper config switch for the cpu-cluster
device.

v2:
- Don't make core.c depend on the CPU_CLUSTER switch
- Added Philippe's Reviewed-bys

Thomas Huth (2):
  hw: Fix problem with the A*MPCORE switches in the Kconfig files
  hw: Add a Kconfig switch for the TYPE_CPU_CLUSTER device

 hw/Kconfig         |  1 +
 hw/arm/Kconfig     | 18 +++---------------
 hw/cpu/Kconfig     | 15 ++++++++++++---
 hw/cpu/meson.build |  3 ++-
 hw/riscv/Kconfig   |  2 ++
 5 files changed, 20 insertions(+), 19 deletions(-)

-- 
2.44.0



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

* [PATCH v2 1/2] hw: Fix problem with the A*MPCORE switches in the Kconfig files
  2024-04-15  6:56 [PATCH v2 0/2] Improvements for switches in hw/cpu/Kconfig Thomas Huth
@ 2024-04-15  6:56 ` Thomas Huth
  2024-04-15  6:56 ` [PATCH v2 2/2] hw: Add a Kconfig switch for the TYPE_CPU_CLUSTER device Thomas Huth
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Thomas Huth @ 2024-04-15  6:56 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Peter Maydell
  Cc: qemu-arm, qemu-riscv, Daniel Henrique Barboza, Liu Zhiwei,
	Alistair Francis, Bin Meng, Weiwei Li, Palmer Dabbelt

A9MPCORE, ARM11MPCORE and A15MPCORE are defined twice, once in
hw/cpu/Kconfig and once in hw/arm/Kconfig. This is only possible
by accident, since hw/cpu/Kconfig is never included from hw/Kconfig.
Fix it by declaring the switches only in hw/cpu/Kconfig (since the
related files reside in the hw/cpu/ folder) and by making sure that
the file hw/cpu/Kconfig is now properly included from hw/Kconfig.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/Kconfig     |  1 +
 hw/arm/Kconfig | 15 ---------------
 hw/cpu/Kconfig | 12 +++++++++---
 3 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/hw/Kconfig b/hw/Kconfig
index 2c00936c28..9567cc475d 100644
--- a/hw/Kconfig
+++ b/hw/Kconfig
@@ -48,6 +48,7 @@ source watchdog/Kconfig
 
 # arch Kconfig
 source arm/Kconfig
+source cpu/Kconfig
 source alpha/Kconfig
 source avr/Kconfig
 source cris/Kconfig
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index 893a7bff66..d97015c45c 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -678,21 +678,6 @@ config ZAURUS
     select NAND
     select ECC
 
-config A9MPCORE
-    bool
-    select A9_GTIMER
-    select A9SCU       # snoop control unit
-    select ARM_GIC
-    select ARM_MPTIMER
-
-config A15MPCORE
-    bool
-    select ARM_GIC
-
-config ARM11MPCORE
-    bool
-    select ARM11SCU
-
 config ARMSSE
     bool
     select ARM_V7M
diff --git a/hw/cpu/Kconfig b/hw/cpu/Kconfig
index 1767d028ac..f776e884cd 100644
--- a/hw/cpu/Kconfig
+++ b/hw/cpu/Kconfig
@@ -1,8 +1,14 @@
-config ARM11MPCORE
-    bool
-
 config A9MPCORE
     bool
+    select A9_GTIMER
+    select A9SCU       # snoop control unit
+    select ARM_GIC
+    select ARM_MPTIMER
 
 config A15MPCORE
     bool
+    select ARM_GIC
+
+config ARM11MPCORE
+    bool
+    select ARM11SCU
-- 
2.44.0



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

* [PATCH v2 2/2] hw: Add a Kconfig switch for the TYPE_CPU_CLUSTER device
  2024-04-15  6:56 [PATCH v2 0/2] Improvements for switches in hw/cpu/Kconfig Thomas Huth
  2024-04-15  6:56 ` [PATCH v2 1/2] hw: Fix problem with the A*MPCORE switches in the Kconfig files Thomas Huth
@ 2024-04-15  6:56 ` Thomas Huth
  2024-04-15 16:48 ` [PATCH v2 0/2] Improvements for switches in hw/cpu/Kconfig Richard Henderson
  2024-04-16  7:34 ` Philippe Mathieu-Daudé
  3 siblings, 0 replies; 5+ messages in thread
From: Thomas Huth @ 2024-04-15  6:56 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Peter Maydell
  Cc: qemu-arm, qemu-riscv, Daniel Henrique Barboza, Liu Zhiwei,
	Alistair Francis, Bin Meng, Weiwei Li, Palmer Dabbelt

The cpu-cluster device is only needed for some few arm and riscv
machines. Let's avoid compiling and linking it if it is not really
necessary.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/arm/Kconfig     | 3 +++
 hw/cpu/Kconfig     | 3 +++
 hw/cpu/meson.build | 3 ++-
 hw/riscv/Kconfig   | 2 ++
 4 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index d97015c45c..5d4015b75a 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -485,6 +485,7 @@ config XLNX_ZYNQMP_ARM
     select AHCI
     select ARM_GIC
     select CADENCE
+    select CPU_CLUSTER
     select DDC
     select DPCD
     select SDHCI
@@ -503,6 +504,7 @@ config XLNX_VERSAL
     default y
     depends on TCG && AARCH64
     select ARM_GIC
+    select CPU_CLUSTER
     select PL011
     select CADENCE
     select VIRTIO_MMIO
@@ -688,6 +690,7 @@ config ARMSSE
     select CMSDK_APB_DUALTIMER
     select CMSDK_APB_UART
     select CMSDK_APB_WATCHDOG
+    select CPU_CLUSTER
     select IOTKIT_SECCTL
     select IOTKIT_SYSCTL
     select IOTKIT_SYSINFO
diff --git a/hw/cpu/Kconfig b/hw/cpu/Kconfig
index f776e884cd..baff478e1b 100644
--- a/hw/cpu/Kconfig
+++ b/hw/cpu/Kconfig
@@ -12,3 +12,6 @@ config A15MPCORE
 config ARM11MPCORE
     bool
     select ARM11SCU
+
+config CPU_CLUSTER
+    bool
diff --git a/hw/cpu/meson.build b/hw/cpu/meson.build
index 38cdcfbe57..9d36bf8ae2 100644
--- a/hw/cpu/meson.build
+++ b/hw/cpu/meson.build
@@ -1,4 +1,5 @@
-system_ss.add(files('core.c', 'cluster.c'))
+system_ss.add(files('core.c'))
+system_ss.add(when: 'CONFIG_CPU_CLUSTER', if_true: files('cluster.c'))
 
 system_ss.add(when: 'CONFIG_ARM11MPCORE', if_true: files('arm11mpcore.c'))
 system_ss.add(when: 'CONFIG_REALVIEW', if_true: files('realview_mpcore.c'))
diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig
index 5d644eb7b1..fc72ef0379 100644
--- a/hw/riscv/Kconfig
+++ b/hw/riscv/Kconfig
@@ -9,6 +9,7 @@ config IBEX
 config MICROCHIP_PFSOC
     bool
     select CADENCE_SDHCI
+    select CPU_CLUSTER
     select MCHP_PFSOC_DMC
     select MCHP_PFSOC_IOSCB
     select MCHP_PFSOC_MMUART
@@ -68,6 +69,7 @@ config SIFIVE_E
 config SIFIVE_U
     bool
     select CADENCE
+    select CPU_CLUSTER
     select RISCV_ACLINT
     select SIFIVE_GPIO
     select SIFIVE_PDMA
-- 
2.44.0



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

* Re: [PATCH v2 0/2] Improvements for switches in hw/cpu/Kconfig
  2024-04-15  6:56 [PATCH v2 0/2] Improvements for switches in hw/cpu/Kconfig Thomas Huth
  2024-04-15  6:56 ` [PATCH v2 1/2] hw: Fix problem with the A*MPCORE switches in the Kconfig files Thomas Huth
  2024-04-15  6:56 ` [PATCH v2 2/2] hw: Add a Kconfig switch for the TYPE_CPU_CLUSTER device Thomas Huth
@ 2024-04-15 16:48 ` Richard Henderson
  2024-04-16  7:34 ` Philippe Mathieu-Daudé
  3 siblings, 0 replies; 5+ messages in thread
From: Richard Henderson @ 2024-04-15 16:48 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel, Paolo Bonzini, Peter Maydell
  Cc: qemu-arm, qemu-riscv, Daniel Henrique Barboza, Liu Zhiwei,
	Alistair Francis, Bin Meng, Weiwei Li, Palmer Dabbelt

On 4/14/24 23:56, Thomas Huth wrote:
> Thomas Huth (2):
>    hw: Fix problem with the A*MPCORE switches in the Kconfig files
>    hw: Add a Kconfig switch for the TYPE_CPU_CLUSTER device

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~


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

* Re: [PATCH v2 0/2] Improvements for switches in hw/cpu/Kconfig
  2024-04-15  6:56 [PATCH v2 0/2] Improvements for switches in hw/cpu/Kconfig Thomas Huth
                   ` (2 preceding siblings ...)
  2024-04-15 16:48 ` [PATCH v2 0/2] Improvements for switches in hw/cpu/Kconfig Richard Henderson
@ 2024-04-16  7:34 ` Philippe Mathieu-Daudé
  3 siblings, 0 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-04-16  7:34 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel, Paolo Bonzini, Peter Maydell
  Cc: qemu-arm, qemu-riscv, Daniel Henrique Barboza, Liu Zhiwei,
	Alistair Francis, Bin Meng, Weiwei Li, Palmer Dabbelt

On 15/4/24 08:56, Thomas Huth wrote:
> First patch fixes the problem that the file hw/cpu/Kconfig is
> currently ignored and the switches there are duplicated in hw/arm/.
> 
> The second patch introduces a proper config switch for the cpu-cluster
> device.
> 
> v2:
> - Don't make core.c depend on the CPU_CLUSTER switch
> - Added Philippe's Reviewed-bys
> 
> Thomas Huth (2):
>    hw: Fix problem with the A*MPCORE switches in the Kconfig files
>    hw: Add a Kconfig switch for the TYPE_CPU_CLUSTER device

Thanks, series queued.


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

end of thread, other threads:[~2024-04-16  7:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-15  6:56 [PATCH v2 0/2] Improvements for switches in hw/cpu/Kconfig Thomas Huth
2024-04-15  6:56 ` [PATCH v2 1/2] hw: Fix problem with the A*MPCORE switches in the Kconfig files Thomas Huth
2024-04-15  6:56 ` [PATCH v2 2/2] hw: Add a Kconfig switch for the TYPE_CPU_CLUSTER device Thomas Huth
2024-04-15 16:48 ` [PATCH v2 0/2] Improvements for switches in hw/cpu/Kconfig Richard Henderson
2024-04-16  7:34 ` Philippe Mathieu-Daudé

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