From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Andrey Smirnov" <andrew.smirnov@gmail.com>,
"Antony Pavlov" <antonynpavlov@gmail.com>,
"Zhao Liu" <zhao1.liu@intel.com>,
"Beniamino Galvani" <b.galvani@gmail.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Niek Linnenbank" <nieklinnenbank@gmail.com>,
qemu-arm@nongnu.org,
"Jean-Christophe Dubois" <jcd@tribudubois.net>,
"Felipe Balbi" <balbi@kernel.org>,
"Bernhard Beschow" <shentey@gmail.com>,
"Strahinja Jankovic" <strahinja.p.jankovic@gmail.com>,
"Jan Kiszka" <jan.kiszka@web.de>,
"Alistair Francis" <alistair@alistair23.me>,
"Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
"Subbaraya Sundeep" <sundeep.lkml@gmail.com>,
"Alexandre Iooss" <erdnaxe@crans.org>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Yanan Wang" <wangyanan55@huawei.com>
Subject: [PATCH 05/11] hw/arm/imx: Define machines as generic QOM types
Date: Fri, 18 Apr 2025 01:58:08 +0200 [thread overview]
Message-ID: <20250417235814.98677-6-philmd@linaro.org> (raw)
In-Reply-To: <20250417235814.98677-1-philmd@linaro.org>
While DEFINE_MACHINE() is a succinct macro, it doesn't
allow registering QOM interfaces to the defined machine.
Convert to the generic DEFINE_TYPES() in preparation to
register interfaces.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/imx25_pdk.c | 14 ++++++++++++--
hw/arm/imx8mp-evk.c | 15 +++++++++++++--
hw/arm/mcimx6ul-evk.c | 15 +++++++++++++--
hw/arm/mcimx7d-sabre.c | 15 +++++++++++++--
hw/arm/sabrelite.c | 14 ++++++++++++--
5 files changed, 63 insertions(+), 10 deletions(-)
diff --git a/hw/arm/imx25_pdk.c b/hw/arm/imx25_pdk.c
index e95ea5e4e18..a90def7f1a2 100644
--- a/hw/arm/imx25_pdk.c
+++ b/hw/arm/imx25_pdk.c
@@ -141,8 +141,10 @@ static void imx25_pdk_init(MachineState *machine)
}
}
-static void imx25_pdk_machine_init(MachineClass *mc)
+static void imx25_pdk_machine_class_init(ObjectClass *oc, void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
mc->desc = "ARM i.MX25 PDK board (ARM926)";
mc->init = imx25_pdk_init;
mc->ignore_memory_transaction_failures = true;
@@ -150,4 +152,12 @@ static void imx25_pdk_machine_init(MachineClass *mc)
mc->auto_create_sdcard = true;
}
-DEFINE_MACHINE("imx25-pdk", imx25_pdk_machine_init)
+static const TypeInfo imx25_machine_types[] = {
+ {
+ .name = MACHINE_TYPE_NAME("imx25-pdk"),
+ .parent = TYPE_MACHINE,
+ .class_init = imx25_pdk_machine_class_init,
+ },
+};
+
+DEFINE_TYPES(imx25_machine_types)
diff --git a/hw/arm/imx8mp-evk.c b/hw/arm/imx8mp-evk.c
index 967258e6484..c7d87d99230 100644
--- a/hw/arm/imx8mp-evk.c
+++ b/hw/arm/imx8mp-evk.c
@@ -64,11 +64,22 @@ static void imx8mp_evk_init(MachineState *machine)
}
}
-static void imx8mp_evk_machine_init(MachineClass *mc)
+static void imx8mp_evk_machine_class_init(ObjectClass *oc, void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
mc->desc = "NXP i.MX 8M Plus EVK Board";
mc->init = imx8mp_evk_init;
mc->max_cpus = FSL_IMX8MP_NUM_CPUS;
mc->default_ram_id = "imx8mp-evk.ram";
}
-DEFINE_MACHINE("imx8mp-evk", imx8mp_evk_machine_init)
+
+static const TypeInfo imx8_machine_types[] = {
+ {
+ .name = MACHINE_TYPE_NAME("imx8mp-evk"),
+ .parent = TYPE_MACHINE,
+ .class_init = imx8mp_evk_machine_class_init,
+ },
+};
+
+DEFINE_TYPES(imx8_machine_types)
diff --git a/hw/arm/mcimx6ul-evk.c b/hw/arm/mcimx6ul-evk.c
index 86982cb0772..d947836d2be 100644
--- a/hw/arm/mcimx6ul-evk.c
+++ b/hw/arm/mcimx6ul-evk.c
@@ -68,12 +68,23 @@ static void mcimx6ul_evk_init(MachineState *machine)
}
}
-static void mcimx6ul_evk_machine_init(MachineClass *mc)
+static void mcimx6ul_evk_machine_class_init(ObjectClass *oc, void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
mc->desc = "Freescale i.MX6UL Evaluation Kit (Cortex-A7)";
mc->init = mcimx6ul_evk_init;
mc->max_cpus = FSL_IMX6UL_NUM_CPUS;
mc->default_ram_id = "mcimx6ul-evk.ram";
mc->auto_create_sdcard = true;
}
-DEFINE_MACHINE("mcimx6ul-evk", mcimx6ul_evk_machine_init)
+
+static const TypeInfo imx6_machine_types[] = {
+ {
+ .name = MACHINE_TYPE_NAME("mcimx6ul-evk"),
+ .parent = TYPE_MACHINE,
+ .class_init = mcimx6ul_evk_machine_class_init,
+ },
+};
+
+DEFINE_TYPES(imx6_machine_types)
diff --git a/hw/arm/mcimx7d-sabre.c b/hw/arm/mcimx7d-sabre.c
index 33119610113..f5dc9c211dd 100644
--- a/hw/arm/mcimx7d-sabre.c
+++ b/hw/arm/mcimx7d-sabre.c
@@ -68,12 +68,23 @@ static void mcimx7d_sabre_init(MachineState *machine)
}
}
-static void mcimx7d_sabre_machine_init(MachineClass *mc)
+static void mcimx7d_sabre_machine_class_init(ObjectClass *oc, void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
mc->desc = "Freescale i.MX7 DUAL SABRE (Cortex-A7)";
mc->init = mcimx7d_sabre_init;
mc->max_cpus = FSL_IMX7_NUM_CPUS;
mc->default_ram_id = "mcimx7d-sabre.ram";
mc->auto_create_sdcard = true;
}
-DEFINE_MACHINE("mcimx7d-sabre", mcimx7d_sabre_machine_init)
+
+static const TypeInfo imx7_machine_types[] = {
+ {
+ .name = MACHINE_TYPE_NAME("mcimx7d-sabre"),
+ .parent = TYPE_MACHINE,
+ .class_init = mcimx7d_sabre_machine_class_init,
+ },
+};
+
+DEFINE_TYPES(imx7_machine_types)
diff --git a/hw/arm/sabrelite.c b/hw/arm/sabrelite.c
index df60d47c6fd..ea59ba301e7 100644
--- a/hw/arm/sabrelite.c
+++ b/hw/arm/sabrelite.c
@@ -103,8 +103,10 @@ static void sabrelite_init(MachineState *machine)
}
}
-static void sabrelite_machine_init(MachineClass *mc)
+static void sabrelite_machine_class_init(ObjectClass *oc, void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
mc->desc = "Freescale i.MX6 Quad SABRE Lite Board (Cortex-A9)";
mc->init = sabrelite_init;
mc->max_cpus = FSL_IMX6_NUM_CPUS;
@@ -113,4 +115,12 @@ static void sabrelite_machine_init(MachineClass *mc)
mc->auto_create_sdcard = true;
}
-DEFINE_MACHINE("sabrelite", sabrelite_machine_init)
+static const TypeInfo sabrelite_machine_types[] = {
+ {
+ .name = MACHINE_TYPE_NAME("sabrelite"),
+ .parent = TYPE_MACHINE,
+ .class_init = sabrelite_machine_class_init,
+ },
+};
+
+DEFINE_TYPES(sabrelite_machine_types)
--
2.47.1
next prev parent reply other threads:[~2025-04-18 0:01 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-17 23:58 [PATCH 00/11] hw/arm: Define machines as generic QOM types Philippe Mathieu-Daudé
2025-04-17 23:58 ` [PATCH 01/11] hw/core/null-machine: Define machine as generic QOM type Philippe Mathieu-Daudé
2025-04-17 23:58 ` [PATCH 02/11] hw/arm/bananapi: " Philippe Mathieu-Daudé
2025-04-17 23:58 ` [PATCH 03/11] hw/arm/cubieboard: " Philippe Mathieu-Daudé
2025-04-17 23:58 ` [PATCH 04/11] hw/arm/digic: " Philippe Mathieu-Daudé
2025-04-17 23:58 ` Philippe Mathieu-Daudé [this message]
2025-04-17 23:58 ` [PATCH 06/11] hw/arm/integratorcp: " Philippe Mathieu-Daudé
2025-04-17 23:58 ` [PATCH 07/11] hw/arm/kzm: " Philippe Mathieu-Daudé
2025-04-17 23:58 ` [PATCH 08/11] hw/arm/msf2: " Philippe Mathieu-Daudé
2025-04-17 23:58 ` [PATCH 09/11] hw/arm/musicpal: " Philippe Mathieu-Daudé
2025-04-17 23:58 ` [PATCH 10/11] hw/arm/orangepi: " Philippe Mathieu-Daudé
2025-04-17 23:58 ` [PATCH 11/11] hw/arm/stm32: Define machines as generic QOM types Philippe Mathieu-Daudé
2025-04-18 2:53 ` [PATCH 00/11] hw/arm: " Pierrick Bouvier
2025-04-18 8:53 ` BALATON Zoltan
2025-04-18 16:33 ` Pierrick Bouvier
2025-04-18 16:59 ` Philippe Mathieu-Daudé
2025-04-18 17:03 ` Pierrick Bouvier
2025-04-18 17:07 ` Philippe Mathieu-Daudé
2025-04-18 17:25 ` Pierrick Bouvier
2025-04-18 18:56 ` BALATON Zoltan
2025-04-18 18:48 ` BALATON Zoltan
2025-04-19 1:20 ` Pierrick Bouvier
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=20250417235814.98677-6-philmd@linaro.org \
--to=philmd@linaro.org \
--cc=alistair@alistair23.me \
--cc=andrew.smirnov@gmail.com \
--cc=antonynpavlov@gmail.com \
--cc=b.galvani@gmail.com \
--cc=balbi@kernel.org \
--cc=eduardo@habkost.net \
--cc=erdnaxe@crans.org \
--cc=jan.kiszka@web.de \
--cc=jcd@tribudubois.net \
--cc=marcel.apfelbaum@gmail.com \
--cc=nieklinnenbank@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=pierrick.bouvier@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shentey@gmail.com \
--cc=strahinja.p.jankovic@gmail.com \
--cc=sundeep.lkml@gmail.com \
--cc=wangyanan55@huawei.com \
--cc=zhao1.liu@intel.com \
/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).