[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 2/9] hw/arm/exynos: Check for CPU types in machine_run_board_i
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v3 2/9] hw/arm/exynos: Check for CPU types in machine_run_board_init() |
Date: |
Mon, 29 Jan 2024 16:18:21 +0100 |
Restrict MachineClass::valid_cpu_types[] to the single
valid CPU type.
Instead of ignoring invalid CPU type requested by the user:
$ qemu-system-arm -M nuri -cpu cortex-a7 -S -monitor stdio
QEMU 8.2.50 monitor - type 'help' for more information
(qemu) info qom-tree
/machine (nuri-machine)
/soc (exynos4210)
/cpu[0] (cortex-a9-arm-cpu)
...
We now display an error:
$ qemu-system-arm -M nuri -cpu cortex-a7
qemu-system-arm: Invalid CPU model: cortex-a7
The only valid type is: cortex-a9
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Gavin Shan <gshan@redhat.com>
---
hw/arm/exynos4_boards.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hw/arm/exynos4_boards.c b/hw/arm/exynos4_boards.c
index b0e13eb4f0..01c7618a67 100644
--- a/hw/arm/exynos4_boards.c
+++ b/hw/arm/exynos4_boards.c
@@ -34,6 +34,7 @@
#include "hw/qdev-properties.h"
#include "hw/boards.h"
#include "hw/irq.h"
+#include "target/arm/cpu-qom.h"
#define SMDK_LAN9118_BASE_ADDR 0x05000000
@@ -150,12 +151,18 @@ static void smdkc210_init(MachineState *machine)
arm_load_kernel(s->soc.cpu[0], machine, &exynos4_board_binfo);
}
+static const char * const valid_cpu_types[] = {
+ ARM_CPU_TYPE_NAME("cortex-a9"),
+ NULL
+};
+
static void nuri_class_init(ObjectClass *oc, void *data)
{
MachineClass *mc = MACHINE_CLASS(oc);
mc->desc = "Samsung NURI board (Exynos4210)";
mc->init = nuri_init;
+ mc->valid_cpu_types = valid_cpu_types;
mc->max_cpus = EXYNOS4210_NCPUS;
mc->min_cpus = EXYNOS4210_NCPUS;
mc->default_cpus = EXYNOS4210_NCPUS;
@@ -174,6 +181,7 @@ static void smdkc210_class_init(ObjectClass *oc, void *data)
mc->desc = "Samsung SMDKC210 board (Exynos4210)";
mc->init = smdkc210_init;
+ mc->valid_cpu_types = valid_cpu_types;
mc->max_cpus = EXYNOS4210_NCPUS;
mc->min_cpus = EXYNOS4210_NCPUS;
mc->default_cpus = EXYNOS4210_NCPUS;
--
2.41.0
- [PATCH v3 0/9] hw/arm: Check for CPU types in machine_run_board_init(), Philippe Mathieu-Daudé, 2024/01/29
- [PATCH v3 1/9] hw/arm/exynos: Add missing QOM parent for CPU cores, Philippe Mathieu-Daudé, 2024/01/29
- [PATCH v3 2/9] hw/arm/exynos: Check for CPU types in machine_run_board_init(),
Philippe Mathieu-Daudé <=
- [PATCH v3 3/9] hw/arm/highbank: Add missing QOM parent for CPU cores, Philippe Mathieu-Daudé, 2024/01/29
- [PATCH v3 4/9] hw/arm/highbank: Check for CPU types in machine_run_board_init(), Philippe Mathieu-Daudé, 2024/01/29
- [PATCH v3 5/9] hw/arm/msf2: Simplify setting MachineClass::valid_cpu_types[], Philippe Mathieu-Daudé, 2024/01/29
- [PATCH v3 6/9] hw/arm/musca: Simplify setting MachineClass::valid_cpu_types[], Philippe Mathieu-Daudé, 2024/01/29
- [PATCH v3 7/9] hw/arm/npcm7xx_boards: Simplify setting MachineClass::valid_cpu_types[], Philippe Mathieu-Daudé, 2024/01/29
- [PATCH v3 8/9] hw/arm/vexpress: Check for CPU types in machine_run_board_init(), Philippe Mathieu-Daudé, 2024/01/29
- [PATCH v3 9/9] hw/arm/zynq: Check for CPU types in machine_run_board_init(), Philippe Mathieu-Daudé, 2024/01/29