* [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