[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 02/15] target-arm: Add vexpress a9 & a15 machine
From: |
Greg Bellows |
Subject: |
[Qemu-devel] [PATCH v4 02/15] target-arm: Add vexpress a9 & a15 machine objects |
Date: |
Mon, 15 Dec 2014 17:09:39 -0600 |
Add Vexpress machine objects for the the Cortex A9 & A15 variants. The older
style QEMUMachine types were replaced with dedicated TypeInfo objects. The new
objects include dedicated class init functions that currently ustilze dedicated
machine init methods. The previous qemu_register_machine calls were replaced
with the newer type_register_status calls.
Signed-off-by: Greg Bellows <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
---
hw/arm/vexpress.c | 50 ++++++++++++++++++++++++++++++++++++--------------
1 file changed, 36 insertions(+), 14 deletions(-)
diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
index 01046c2..8f22696 100644
--- a/hw/arm/vexpress.c
+++ b/hw/arm/vexpress.c
@@ -167,6 +167,8 @@ typedef struct {
} VexpressMachineState;
#define TYPE_VEXPRESS_MACHINE "vexpress"
+#define TYPE_VEXPRESS_A9_MACHINE "vexpress-a9"
+#define TYPE_VEXPRESS_A15_MACHINE "vexpress-a15"
#define VEXPRESS_MACHINE(obj) \
OBJECT_CHECK(VexpressMachineState, (obj), TYPE_VEXPRESS_MACHINE)
#define VEXPRESS_MACHINE_GET_CLASS(obj) \
@@ -726,6 +728,30 @@ static void vexpress_class_init(ObjectClass *oc, void
*data)
mc->max_cpus = 4;
}
+static void vexpress_a9_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+ VexpressMachineClass *vmc = VEXPRESS_MACHINE_CLASS(oc);
+
+ mc->name = TYPE_VEXPRESS_A9_MACHINE;
+ mc->desc = "ARM Versatile Express for Cortex-A9";
+ mc->init = vexpress_a9_init;
+
+ vmc->daughterboard = &a9_daughterboard;;
+}
+
+static void vexpress_a15_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+ VexpressMachineClass *vmc = VEXPRESS_MACHINE_CLASS(oc);
+
+ mc->name = TYPE_VEXPRESS_A15_MACHINE;
+ mc->desc = "ARM Versatile Express for Cortex-A15";
+ mc->init = vexpress_a15_init;
+
+ vmc->daughterboard = &a15_daughterboard;
+}
+
static const TypeInfo vexpress_info = {
.name = TYPE_VEXPRESS_MACHINE,
.parent = TYPE_MACHINE,
@@ -735,27 +761,23 @@ static const TypeInfo vexpress_info = {
.class_init = vexpress_class_init,
};
-static QEMUMachine vexpress_a9_machine = {
- .name = "vexpress-a9",
- .desc = "ARM Versatile Express for Cortex-A9",
- .init = vexpress_a9_init,
- .block_default_type = IF_SCSI,
- .max_cpus = 4,
+static const TypeInfo vexpress_a9_info = {
+ .name = TYPE_VEXPRESS_A9_MACHINE,
+ .parent = TYPE_VEXPRESS_MACHINE,
+ .class_init = vexpress_a9_class_init,
};
-static QEMUMachine vexpress_a15_machine = {
- .name = "vexpress-a15",
- .desc = "ARM Versatile Express for Cortex-A15",
- .init = vexpress_a15_init,
- .block_default_type = IF_SCSI,
- .max_cpus = 4,
+static const TypeInfo vexpress_a15_info = {
+ .name = TYPE_VEXPRESS_A15_MACHINE,
+ .parent = TYPE_VEXPRESS_MACHINE,
+ .class_init = vexpress_a15_class_init,
};
static void vexpress_machine_init(void)
{
type_register_static(&vexpress_info);
- qemu_register_machine(&vexpress_a9_machine);
- qemu_register_machine(&vexpress_a15_machine);
+ type_register_static(&vexpress_a9_info);
+ type_register_static(&vexpress_a15_info);
}
machine_init(vexpress_machine_init);
--
1.8.3.2
- [Qemu-devel] [PATCH v4 00/15] target-arm: Add CPU security extension enablement, Greg Bellows, 2014/12/15
- [Qemu-devel] [PATCH v4 01/15] target-arm: Add vexpress class and machine types, Greg Bellows, 2014/12/15
- [Qemu-devel] [PATCH v4 02/15] target-arm: Add vexpress a9 & a15 machine objects,
Greg Bellows <=
- [Qemu-devel] [PATCH v4 03/15] target-arm: Switch to common vexpress machine init, Greg Bellows, 2014/12/15
- [Qemu-devel] [PATCH v4 05/15] target-arm: Change vexpress daughterboard init arg, Greg Bellows, 2014/12/15
- [Qemu-devel] [PATCH v4 04/15] target-arm: Add vexpress machine secure property, Greg Bellows, 2014/12/15
- [Qemu-devel] [PATCH v4 06/15] target-arm: Add virt class and machine types, Greg Bellows, 2014/12/15
- [Qemu-devel] [PATCH v4 07/15] target-arm: Add virt machine secure property, Greg Bellows, 2014/12/15
- [Qemu-devel] [PATCH v4 08/15] target-arm: Add feature unset function, Greg Bellows, 2014/12/15
- [Qemu-devel] [PATCH v4 09/15] target-arm: Add ARMCPU secure property, Greg Bellows, 2014/12/15
- [Qemu-devel] [PATCH v4 10/15] target-arm: Add arm_boot_info secure_boot control, Greg Bellows, 2014/12/15
- [Qemu-devel] [PATCH v4 11/15] target-arm: Enable CPU has_el3 prop during VE init, Greg Bellows, 2014/12/15
- [Qemu-devel] [PATCH v4 12/15] target-arm: Set CPU has_el3 prop during virt init, Greg Bellows, 2014/12/15