qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	qemu-arm@nongnu.org, "Igor Mitsyanko" <i.mitsyanko@gmail.com>,
	"Rob Herring" <robh@kernel.org>, "Joel Stanley" <joel@jms.id.au>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Cédric Le Goater" <clg@kaod.org>,
	"Andrew Jeffery" <andrew@codeconstruct.com.au>,
	"Gavin Shan" <gshan@redhat.com>,
	"Alistair Francis" <alistair@alistair23.me>,
	"Igor Mammedov" <imammedo@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH v2 4/6] hw/arm/highbank: Check for CPU types in machine_run_board_init()
Date: Tue, 23 Jan 2024 23:25:06 +0100	[thread overview]
Message-ID: <20240123222508.13826-5-philmd@linaro.org> (raw)
In-Reply-To: <20240123222508.13826-1-philmd@linaro.org>

Restrict MachineClass::valid_cpu_types[] to the single
valid CPU types.

Instead of ignoring invalid CPU type requested by the user:

  $ qemu-system-arm -M midway -cpu cortex-a7 -S -monitor stdio
  QEMU 8.2.50 monitor - type 'help' for more information
  (qemu) info qom-tree
  /machine (midway-machine)
    /cpu[0] (cortex-a15-arm-cpu)
    ...

we now display an error:

  $ qemu-system-arm -M midway -cpu cortex-a7
  qemu-system-arm: Invalid CPU model: cortex-a7
  The only valid type is: cortex-a15

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 hw/arm/highbank.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c
index b8d702c82c..0367050697 100644
--- a/hw/arm/highbank.c
+++ b/hw/arm/highbank.c
@@ -345,10 +345,15 @@ static void midway_init(MachineState *machine)
 
 static void highbank_class_init(ObjectClass *oc, void *data)
 {
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-a9"),
+        NULL
+    };
     MachineClass *mc = MACHINE_CLASS(oc);
 
     mc->desc = "Calxeda Highbank (ECX-1000)";
     mc->init = highbank_init;
+    mc->valid_cpu_types = valid_cpu_types;
     mc->block_default_type = IF_IDE;
     mc->units_per_default_bus = 1;
     mc->max_cpus = 4;
@@ -364,10 +369,15 @@ static const TypeInfo highbank_type = {
 
 static void midway_class_init(ObjectClass *oc, void *data)
 {
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-a15"),
+        NULL
+    };
     MachineClass *mc = MACHINE_CLASS(oc);
 
     mc->desc = "Calxeda Midway (ECX-2000)";
     mc->init = midway_init;
+    mc->valid_cpu_types = valid_cpu_types;
     mc->block_default_type = IF_IDE;
     mc->units_per_default_bus = 1;
     mc->max_cpus = 4;
-- 
2.41.0



  parent reply	other threads:[~2024-01-23 22:25 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-23 22:25 [PATCH v2 0/6] hw/arm/cortex-a: Check for CPU types in machine_run_board_init() Philippe Mathieu-Daudé
2024-01-23 22:25 ` [PATCH v2 1/6] hw/arm/exynos: Add missing QOM parent for CPU cores Philippe Mathieu-Daudé
2024-01-24 23:11   ` Richard Henderson
2024-01-25  2:09   ` Gavin Shan
2024-01-23 22:25 ` [PATCH v2 2/6] hw/arm/exynos: Check for CPU types in machine_run_board_init() Philippe Mathieu-Daudé
2024-01-24 23:06   ` Richard Henderson
2024-01-25  2:11   ` Gavin Shan
2024-01-23 22:25 ` [PATCH v2 3/6] hw/arm/highbank: Add missing QOM parent for CPU cores Philippe Mathieu-Daudé
2024-01-24 23:11   ` Richard Henderson
2024-01-25  2:13   ` Gavin Shan
2024-01-23 22:25 ` Philippe Mathieu-Daudé [this message]
2024-01-24 23:06   ` [PATCH v2 4/6] hw/arm/highbank: Check for CPU types in machine_run_board_init() Richard Henderson
2024-01-25  2:15   ` Gavin Shan
2024-01-23 22:25 ` [PATCH v2 5/6] hw/arm/vexpress: " Philippe Mathieu-Daudé
2024-01-24 23:09   ` Richard Henderson
2024-01-25  4:49     ` Philippe Mathieu-Daudé
2024-01-25  2:16   ` Gavin Shan
2024-01-23 22:25 ` [PATCH v2 6/6] hw/arm/zynq: " Philippe Mathieu-Daudé
2024-01-24 23:10   ` Richard Henderson
2024-01-25  2:17   ` Gavin Shan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240123222508.13826-5-philmd@linaro.org \
    --to=philmd@linaro.org \
    --cc=alistair@alistair23.me \
    --cc=andrew@codeconstruct.com.au \
    --cc=clg@kaod.org \
    --cc=edgar.iglesias@gmail.com \
    --cc=gshan@redhat.com \
    --cc=i.mitsyanko@gmail.com \
    --cc=imammedo@redhat.com \
    --cc=joel@jms.id.au \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).