qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: qemu-ppc@nongnu.org, qemu-arm@nongnu.org, qemu-riscv@nongnu.org,
	"Gavin Shan" <gshan@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Beniamino Galvani" <b.galvani@gmail.com>,
	"Strahinja Jankovic" <strahinja.p.jankovic@gmail.com>,
	"Subbaraya Sundeep" <sundeep.lkml@gmail.com>,
	"Tyrone Ting" <kfting@nuvoton.com>,
	"Hao Wu" <wuhaotsh@google.com>,
	"Niek Linnenbank" <nieklinnenbank@gmail.com>
Subject: [PULL 31/71] hw/arm: Check CPU type in machine_run_board_init()
Date: Fri,  5 Jan 2024 16:42:24 +0100	[thread overview]
Message-ID: <20240105154307.21385-32-philmd@linaro.org> (raw)
In-Reply-To: <20240105154307.21385-1-philmd@linaro.org>

From: Gavin Shan <gshan@redhat.com>

Set mc->valid_cpu_types so that the user specified CPU type can
be validated in machine_run_board_init(). We needn't to do it by
ourselves.

Signed-off-by: Gavin Shan <gshan@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20231204004726.483558-9-gshan@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 hw/arm/bananapi_m2u.c   | 12 ++++++------
 hw/arm/cubieboard.c     | 12 ++++++------
 hw/arm/mps2-tz.c        | 26 ++++++++++++++++++++------
 hw/arm/mps2.c           | 26 ++++++++++++++++++++------
 hw/arm/msf2-som.c       | 12 ++++++------
 hw/arm/musca.c          | 12 +++++-------
 hw/arm/npcm7xx_boards.c | 12 +++++-------
 hw/arm/orangepi.c       | 12 ++++++------
 8 files changed, 74 insertions(+), 50 deletions(-)

diff --git a/hw/arm/bananapi_m2u.c b/hw/arm/bananapi_m2u.c
index 8f24b18d8c..0a4b6f29b1 100644
--- a/hw/arm/bananapi_m2u.c
+++ b/hw/arm/bananapi_m2u.c
@@ -71,12 +71,6 @@ static void bpim2u_init(MachineState *machine)
         exit(1);
     }
 
-    /* Only allow Cortex-A7 for this board */
-    if (strcmp(machine->cpu_type, ARM_CPU_TYPE_NAME("cortex-a7")) != 0) {
-        error_report("This board can only be used with cortex-a7 CPU");
-        exit(1);
-    }
-
     r40 = AW_R40(object_new(TYPE_AW_R40));
     object_property_add_child(OBJECT(machine), "soc", OBJECT(r40));
     object_unref(OBJECT(r40));
@@ -133,12 +127,18 @@ static void bpim2u_init(MachineState *machine)
 
 static void bpim2u_machine_init(MachineClass *mc)
 {
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-a7"),
+        NULL
+    };
+
     mc->desc = "Bananapi M2U (Cortex-A7)";
     mc->init = bpim2u_init;
     mc->min_cpus = AW_R40_NUM_CPUS;
     mc->max_cpus = AW_R40_NUM_CPUS;
     mc->default_cpus = AW_R40_NUM_CPUS;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-a7");
+    mc->valid_cpu_types = valid_cpu_types;
     mc->default_ram_size = 1 * GiB;
     mc->default_ram_id = "bpim2u.ram";
 }
diff --git a/hw/arm/cubieboard.c b/hw/arm/cubieboard.c
index 29146f5018..b976727eef 100644
--- a/hw/arm/cubieboard.c
+++ b/hw/arm/cubieboard.c
@@ -52,12 +52,6 @@ static void cubieboard_init(MachineState *machine)
         exit(1);
     }
 
-    /* Only allow Cortex-A8 for this board */
-    if (strcmp(machine->cpu_type, ARM_CPU_TYPE_NAME("cortex-a8")) != 0) {
-        error_report("This board can only be used with cortex-a8 CPU");
-        exit(1);
-    }
-
     a10 = AW_A10(object_new(TYPE_AW_A10));
     object_property_add_child(OBJECT(machine), "soc", OBJECT(a10));
     object_unref(OBJECT(a10));
@@ -114,8 +108,14 @@ static void cubieboard_init(MachineState *machine)
 
 static void cubieboard_machine_init(MachineClass *mc)
 {
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-a8"),
+        NULL
+    };
+
     mc->desc = "cubietech cubieboard (Cortex-A8)";
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-a8");
+    mc->valid_cpu_types = valid_cpu_types;
     mc->default_ram_size = 1 * GiB;
     mc->init = cubieboard_init;
     mc->block_default_type = IF_IDE;
diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c
index 668db5ed61..5d8cdc1a4c 100644
--- a/hw/arm/mps2-tz.c
+++ b/hw/arm/mps2-tz.c
@@ -813,12 +813,6 @@ static void mps2tz_common_init(MachineState *machine)
     int num_ppcs;
     int i;
 
-    if (strcmp(machine->cpu_type, mc->default_cpu_type) != 0) {
-        error_report("This board can only be used with CPU %s",
-                     mc->default_cpu_type);
-        exit(1);
-    }
-
     if (machine->ram_size != mc->default_ram_size) {
         char *sz = size_to_str(mc->default_ram_size);
         error_report("Invalid RAM size, should be %s", sz);
@@ -1318,6 +1312,10 @@ static void mps2tz_an505_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
     MPS2TZMachineClass *mmc = MPS2TZ_MACHINE_CLASS(oc);
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-m33"),
+        NULL
+    };
 
     mc->desc = "ARM MPS2 with AN505 FPGA image for Cortex-M33";
     mc->default_cpus = 1;
@@ -1325,6 +1323,7 @@ static void mps2tz_an505_class_init(ObjectClass *oc, void *data)
     mc->max_cpus = mc->default_cpus;
     mmc->fpga_type = FPGA_AN505;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m33");
+    mc->valid_cpu_types = valid_cpu_types;
     mmc->scc_id = 0x41045050;
     mmc->sysclk_frq = 20 * 1000 * 1000; /* 20MHz */
     mmc->apb_periph_frq = mmc->sysclk_frq;
@@ -1347,6 +1346,10 @@ static void mps2tz_an521_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
     MPS2TZMachineClass *mmc = MPS2TZ_MACHINE_CLASS(oc);
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-m33"),
+        NULL
+    };
 
     mc->desc = "ARM MPS2 with AN521 FPGA image for dual Cortex-M33";
     mc->default_cpus = 2;
@@ -1354,6 +1357,7 @@ static void mps2tz_an521_class_init(ObjectClass *oc, void *data)
     mc->max_cpus = mc->default_cpus;
     mmc->fpga_type = FPGA_AN521;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m33");
+    mc->valid_cpu_types = valid_cpu_types;
     mmc->scc_id = 0x41045210;
     mmc->sysclk_frq = 20 * 1000 * 1000; /* 20MHz */
     mmc->apb_periph_frq = mmc->sysclk_frq;
@@ -1376,6 +1380,10 @@ static void mps3tz_an524_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
     MPS2TZMachineClass *mmc = MPS2TZ_MACHINE_CLASS(oc);
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-m33"),
+        NULL
+    };
 
     mc->desc = "ARM MPS3 with AN524 FPGA image for dual Cortex-M33";
     mc->default_cpus = 2;
@@ -1383,6 +1391,7 @@ static void mps3tz_an524_class_init(ObjectClass *oc, void *data)
     mc->max_cpus = mc->default_cpus;
     mmc->fpga_type = FPGA_AN524;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m33");
+    mc->valid_cpu_types = valid_cpu_types;
     mmc->scc_id = 0x41045240;
     mmc->sysclk_frq = 32 * 1000 * 1000; /* 32MHz */
     mmc->apb_periph_frq = mmc->sysclk_frq;
@@ -1410,6 +1419,10 @@ static void mps3tz_an547_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
     MPS2TZMachineClass *mmc = MPS2TZ_MACHINE_CLASS(oc);
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-m55"),
+        NULL
+    };
 
     mc->desc = "ARM MPS3 with AN547 FPGA image for Cortex-M55";
     mc->default_cpus = 1;
@@ -1417,6 +1430,7 @@ static void mps3tz_an547_class_init(ObjectClass *oc, void *data)
     mc->max_cpus = mc->default_cpus;
     mmc->fpga_type = FPGA_AN547;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m55");
+    mc->valid_cpu_types = valid_cpu_types;
     mmc->scc_id = 0x41055470;
     mmc->sysclk_frq = 32 * 1000 * 1000; /* 32MHz */
     mmc->apb_periph_frq = 25 * 1000 * 1000; /* 25MHz */
diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c
index 292a180ad2..bd873cc5de 100644
--- a/hw/arm/mps2.c
+++ b/hw/arm/mps2.c
@@ -142,12 +142,6 @@ static void mps2_common_init(MachineState *machine)
     QList *oscclk;
     int i;
 
-    if (strcmp(machine->cpu_type, mc->default_cpu_type) != 0) {
-        error_report("This board can only be used with CPU %s",
-                     mc->default_cpu_type);
-        exit(1);
-    }
-
     if (machine->ram_size != mc->default_ram_size) {
         char *sz = size_to_str(mc->default_ram_size);
         error_report("Invalid RAM size, should be %s", sz);
@@ -484,10 +478,15 @@ static void mps2_an385_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
     MPS2MachineClass *mmc = MPS2_MACHINE_CLASS(oc);
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-m3"),
+        NULL
+    };
 
     mc->desc = "ARM MPS2 with AN385 FPGA image for Cortex-M3";
     mmc->fpga_type = FPGA_AN385;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m3");
+    mc->valid_cpu_types = valid_cpu_types;
     mmc->scc_id = 0x41043850;
     mmc->psram_base = 0x21000000;
     mmc->ethernet_base = 0x40200000;
@@ -498,10 +497,15 @@ static void mps2_an386_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
     MPS2MachineClass *mmc = MPS2_MACHINE_CLASS(oc);
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-m4"),
+        NULL
+    };
 
     mc->desc = "ARM MPS2 with AN386 FPGA image for Cortex-M4";
     mmc->fpga_type = FPGA_AN386;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m4");
+    mc->valid_cpu_types = valid_cpu_types;
     mmc->scc_id = 0x41043860;
     mmc->psram_base = 0x21000000;
     mmc->ethernet_base = 0x40200000;
@@ -512,10 +516,15 @@ static void mps2_an500_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
     MPS2MachineClass *mmc = MPS2_MACHINE_CLASS(oc);
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-m7"),
+        NULL
+    };
 
     mc->desc = "ARM MPS2 with AN500 FPGA image for Cortex-M7";
     mmc->fpga_type = FPGA_AN500;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m7");
+    mc->valid_cpu_types = valid_cpu_types;
     mmc->scc_id = 0x41045000;
     mmc->psram_base = 0x60000000;
     mmc->ethernet_base = 0xa0000000;
@@ -526,10 +535,15 @@ static void mps2_an511_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
     MPS2MachineClass *mmc = MPS2_MACHINE_CLASS(oc);
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-m3"),
+        NULL
+    };
 
     mc->desc = "ARM MPS2 with AN511 DesignStart FPGA image for Cortex-M3";
     mmc->fpga_type = FPGA_AN511;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m3");
+    mc->valid_cpu_types = valid_cpu_types;
     mmc->scc_id = 0x41045110;
     mmc->psram_base = 0x21000000;
     mmc->ethernet_base = 0x40200000;
diff --git a/hw/arm/msf2-som.c b/hw/arm/msf2-som.c
index 7b3106c790..eb74b23797 100644
--- a/hw/arm/msf2-som.c
+++ b/hw/arm/msf2-som.c
@@ -55,12 +55,6 @@ static void emcraft_sf2_s2s010_init(MachineState *machine)
     MemoryRegion *ddr = g_new(MemoryRegion, 1);
     Clock *m3clk;
 
-    if (strcmp(machine->cpu_type, mc->default_cpu_type) != 0) {
-        error_report("This board can only be used with CPU %s",
-                     mc->default_cpu_type);
-        exit(1);
-    }
-
     memory_region_init_ram(ddr, NULL, "ddr-ram", DDR_SIZE,
                            &error_fatal);
     memory_region_add_subregion(sysmem, DDR_BASE_ADDRESS, ddr);
@@ -106,9 +100,15 @@ static void emcraft_sf2_s2s010_init(MachineState *machine)
 
 static void emcraft_sf2_machine_init(MachineClass *mc)
 {
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-m3"),
+        NULL
+    };
+
     mc->desc = "SmartFusion2 SOM kit from Emcraft (M2S010)";
     mc->init = emcraft_sf2_s2s010_init;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m3");
+    mc->valid_cpu_types = valid_cpu_types;
 }
 
 DEFINE_MACHINE("emcraft-sf2", emcraft_sf2_machine_init)
diff --git a/hw/arm/musca.c b/hw/arm/musca.c
index 6eeee57c9d..770ec1a15c 100644
--- a/hw/arm/musca.c
+++ b/hw/arm/musca.c
@@ -355,7 +355,6 @@ static void musca_init(MachineState *machine)
 {
     MuscaMachineState *mms = MUSCA_MACHINE(machine);
     MuscaMachineClass *mmc = MUSCA_MACHINE_GET_CLASS(mms);
-    MachineClass *mc = MACHINE_GET_CLASS(machine);
     MemoryRegion *system_memory = get_system_memory();
     DeviceState *ssedev;
     DeviceState *dev_splitter;
@@ -366,12 +365,6 @@ static void musca_init(MachineState *machine)
     assert(mmc->num_irqs <= MUSCA_NUMIRQ_MAX);
     assert(mmc->num_mpcs <= MUSCA_MPC_MAX);
 
-    if (strcmp(machine->cpu_type, mc->default_cpu_type) != 0) {
-        error_report("This board can only be used with CPU %s",
-                     mc->default_cpu_type);
-        exit(1);
-    }
-
     mms->sysclk = clock_new(OBJECT(machine), "SYSCLK");
     clock_set_hz(mms->sysclk, SYSCLK_FRQ);
     mms->s32kclk = clock_new(OBJECT(machine), "S32KCLK");
@@ -604,11 +597,16 @@ static void musca_init(MachineState *machine)
 static void musca_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-m33"),
+        NULL
+    };
 
     mc->default_cpus = 2;
     mc->min_cpus = mc->default_cpus;
     mc->max_cpus = mc->default_cpus;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-m33");
+    mc->valid_cpu_types = valid_cpu_types;
     mc->init = musca_init;
 }
 
diff --git a/hw/arm/npcm7xx_boards.c b/hw/arm/npcm7xx_boards.c
index 2aef579aac..2999b8b96d 100644
--- a/hw/arm/npcm7xx_boards.c
+++ b/hw/arm/npcm7xx_boards.c
@@ -121,15 +121,8 @@ static NPCM7xxState *npcm7xx_create_soc(MachineState *machine,
                                         uint32_t hw_straps)
 {
     NPCM7xxMachineClass *nmc = NPCM7XX_MACHINE_GET_CLASS(machine);
-    MachineClass *mc = MACHINE_CLASS(nmc);
     Object *obj;
 
-    if (strcmp(machine->cpu_type, mc->default_cpu_type) != 0) {
-        error_report("This board can only be used with %s",
-                     mc->default_cpu_type);
-        exit(1);
-    }
-
     obj = object_new_with_props(nmc->soc_type, OBJECT(machine), "soc",
                                 &error_abort, NULL);
     object_property_set_uint(obj, "power-on-straps", hw_straps, &error_abort);
@@ -463,12 +456,17 @@ static void npcm7xx_set_soc_type(NPCM7xxMachineClass *nmc, const char *type)
 static void npcm7xx_machine_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-a9"),
+        NULL
+    };
 
     mc->no_floppy = 1;
     mc->no_cdrom = 1;
     mc->no_parallel = 1;
     mc->default_ram_id = "ram";
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-a9");
+    mc->valid_cpu_types = valid_cpu_types;
 }
 
 /*
diff --git a/hw/arm/orangepi.c b/hw/arm/orangepi.c
index f3784d45ca..77e328191d 100644
--- a/hw/arm/orangepi.c
+++ b/hw/arm/orangepi.c
@@ -49,12 +49,6 @@ static void orangepi_init(MachineState *machine)
         exit(1);
     }
 
-    /* Only allow Cortex-A7 for this board */
-    if (strcmp(machine->cpu_type, ARM_CPU_TYPE_NAME("cortex-a7")) != 0) {
-        error_report("This board can only be used with cortex-a7 CPU");
-        exit(1);
-    }
-
     h3 = AW_H3(object_new(TYPE_AW_H3));
     object_property_add_child(OBJECT(machine), "soc", OBJECT(h3));
     object_unref(OBJECT(h3));
@@ -111,6 +105,11 @@ static void orangepi_init(MachineState *machine)
 
 static void orangepi_machine_init(MachineClass *mc)
 {
+    static const char * const valid_cpu_types[] = {
+        ARM_CPU_TYPE_NAME("cortex-a7"),
+        NULL
+    };
+
     mc->desc = "Orange Pi PC (Cortex-A7)";
     mc->init = orangepi_init;
     mc->block_default_type = IF_SD;
@@ -119,6 +118,7 @@ static void orangepi_machine_init(MachineClass *mc)
     mc->max_cpus = AW_H3_NUM_CPUS;
     mc->default_cpus = AW_H3_NUM_CPUS;
     mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-a7");
+    mc->valid_cpu_types = valid_cpu_types;
     mc->default_ram_size = 1 * GiB;
     mc->default_ram_id = "orangepi.ram";
 }
-- 
2.41.0



  parent reply	other threads:[~2024-01-05 15:50 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-05 15:41 [PULL 00/71] HW core patches for 2024-01-05 Philippe Mathieu-Daudé
2024-01-05 15:41 ` [PULL 01/71] meson: Allow building binary with no target-specific files in hw/ Philippe Mathieu-Daudé
2024-01-05 15:41 ` [PULL 02/71] target/alpha: Remove fallback to ev67 cpu class Philippe Mathieu-Daudé
2024-01-05 15:41 ` [PULL 03/71] target/hppa: Remove object_class_is_abstract() Philippe Mathieu-Daudé
2024-01-05 15:41 ` [PULL 04/71] cpu: Call object_class_dynamic_cast() once in cpu_class_by_name() Philippe Mathieu-Daudé
2024-01-05 15:41 ` [PULL 05/71] cpu: Add helper cpu_model_from_type() Philippe Mathieu-Daudé
2024-01-05 15:41 ` [PULL 06/71] cpu: Add generic cpu_list() Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 07/71] target/alpha: Use " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 08/71] target/arm: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 09/71] target/avr: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 10/71] target/cris: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 11/71] target/hexagon: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 12/71] target/hppa: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 13/71] target/loongarch: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 14/71] target/m68k: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 15/71] target/mips: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 16/71] target/openrisc: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 17/71] target/riscv: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 18/71] target/rx: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 19/71] target/sh4: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 20/71] target/tricore: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 21/71] target/xtensa: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 22/71] target: Use generic cpu_model_from_type() Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 23/71] hw/core: Add machine_class_default_cpu_type() Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 24/71] machine: Use error handling when CPU type is checked Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 25/71] machine: Introduce helper is_cpu_type_supported() Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 26/71] machine: Improve is_cpu_type_supported() Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 27/71] machine: Print CPU model name instead of CPU type Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 28/71] hw/arm/virt: Hide host CPU model for tcg Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 29/71] hw/arm/virt: Check CPU type in machine_run_board_init() Philippe Mathieu-Daudé
2024-01-09 14:33   ` Peter Maydell
2024-01-11  6:02     ` Gavin Shan
2024-01-05 15:42 ` [PULL 30/71] hw/arm/sbsa-ref: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` Philippe Mathieu-Daudé [this message]
2024-01-05 15:42 ` [PULL 32/71] hw/riscv/shakti_c: " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 33/71] hw/core/cpu: Remove final vestiges of dynamic state tracing Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 34/71] hw/core/cpu: Update description of CPUState::node Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 35/71] hw/cpu/core: Cleanup unused included header in core.c Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 36/71] hw/cpu/cluster: Cleanup unused included header in cluster.c Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 37/71] hw/audio/sb16: Do not migrate qdev properties Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 38/71] hw/arm/bcm2836: Simplify use of 'reset-cbar' property Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 39/71] hw/arm/bcm2836: Use ARM_CPU 'mp-affinity' property Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 40/71] hw/ppc/spapr_cpu_core: Access QDev properties with proper API Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 41/71] hw: Simplify accesses to the CPUState::'start-powered-off' property Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 42/71] hw/ppc/xive2_regs: Remove unnecessary 'cpu.h' inclusion Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 43/71] hw/mips: Inline 'bios.h' definitions Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 44/71] memory: Have memory_region_init_ram_flags_nomigrate() return a boolean Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 45/71] memory: Have memory_region_init_ram_nomigrate() handler " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 46/71] memory: Have memory_region_init_rom_nomigrate() " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 47/71] memory: Simplify memory_region_init_rom_nomigrate() calls Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 48/71] memory: Simplify memory_region_init_ram_from_fd() calls Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 49/71] memory: Have memory_region_init_ram() handler return a boolean Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 50/71] memory: Have memory_region_init_rom() " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 51/71] memory: Have memory_region_init_rom_device_nomigrate() " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 52/71] memory: Simplify memory_region_init_rom_device_nomigrate() calls Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 53/71] memory: Have memory_region_init_rom_device() handler return a boolean Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 54/71] memory: Have memory_region_init_resizeable_ram() " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 55/71] memory: Have memory_region_init_ram_from_file() handler " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 56/71] memory: Have memory_region_init_ram_from_fd() " Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 57/71] backends: Use g_autofree in HostMemoryBackendClass::alloc() handlers Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 58/71] backends: Simplify host_memory_backend_memory_complete() Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 59/71] backends: Have HostMemoryBackendClass::alloc() handler return a boolean Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 60/71] backends: Reduce variable scope in host_memory_backend_memory_complete Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 61/71] util/oslib: Have qemu_prealloc_mem() handler return a boolean Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 62/71] misc: Simplify qemu_prealloc_mem() calls Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 63/71] hw: Simplify memory_region_init_ram() calls Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 64/71] hw/arm: Simplify memory_region_init_rom() calls Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 65/71] hw/sparc: Simplify memory_region_init_ram_nomigrate() calls Philippe Mathieu-Daudé
2024-01-05 15:42 ` [PULL 66/71] hw/misc: Simplify memory_region_init_ram_from_fd() calls Philippe Mathieu-Daudé
2024-01-05 15:43 ` [PULL 67/71] hw/nvram: Simplify memory_region_init_rom_device() calls Philippe Mathieu-Daudé
2024-01-05 15:43 ` [PULL 68/71] hw/pci-host/raven: Propagate error in raven_realize() Philippe Mathieu-Daudé
2024-01-05 15:43 ` [PULL 69/71] hw/m68k/mcf5206: Embed m5206_timer_state in m5206_mbar_state Philippe Mathieu-Daudé
2024-01-05 15:43 ` [PULL 70/71] hw/net/can/sja1000: fix bug for single acceptance filter and standard frame Philippe Mathieu-Daudé
2024-01-05 15:43 ` [PULL 71/71] target/sparc: Simplify qemu_irq_ack Philippe Mathieu-Daudé
2024-01-05 17:05 ` [PULL 00/71] HW core patches for 2024-01-05 Philippe Mathieu-Daudé
2024-01-05 18:43   ` Peter Maydell

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=20240105154307.21385-32-philmd@linaro.org \
    --to=philmd@linaro.org \
    --cc=b.galvani@gmail.com \
    --cc=gshan@redhat.com \
    --cc=kfting@nuvoton.com \
    --cc=nieklinnenbank@gmail.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=qemu-riscv@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=strahinja.p.jankovic@gmail.com \
    --cc=sundeep.lkml@gmail.com \
    --cc=wuhaotsh@google.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).