qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Greg Bellows <greg.bellows@linaro.org>
To: qemu-devel@nongnu.org, serge.fdrv@gmail.com,
	edgar.iglesias@gmail.com, aggelerf@ethz.ch,
	peter.maydell@linaro.org
Cc: Greg Bellows <greg.bellows@linaro.org>
Subject: [Qemu-devel] [PATCH 01/13] target-arm: Add vexpress class and machine types
Date: Wed,  3 Dec 2014 14:05:55 -0600	[thread overview]
Message-ID: <1417637167-20640-2-git-send-email-greg.bellows@linaro.org> (raw)
In-Reply-To: <1417637167-20640-1-git-send-email-greg.bellows@linaro.org>

Adds base Vexpress class and machine objects and infrastructure.  This is in
preparation for switching to the full QEMU object model.  The base vexpress
infrastructure is intended to handle common vexpress details.

Signed-off-by: Greg Bellows <greg.bellows@linaro.org>
---
 hw/arm/vexpress.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
index 7cbd13f..8bec04a 100644
--- a/hw/arm/vexpress.c
+++ b/hw/arm/vexpress.c
@@ -157,6 +157,23 @@ static hwaddr motherboard_aseries_map[] = {
 
 typedef struct VEDBoardInfo VEDBoardInfo;
 
+typedef struct {
+    MachineClass parent;
+    VEDBoardInfo *daughterboard;
+} VexpressMachineClass;
+
+typedef struct {
+    MachineState parent;
+} VexpressMachineState;
+
+#define TYPE_VEXPRESS_MACHINE   "vexpress"
+#define VEXPRESS_MACHINE(obj) \
+    OBJECT_CHECK(VexpressMachineState, (obj), TYPE_VEXPRESS_MACHINE)
+#define VEXPRESS_MACHINE_GET_CLASS(obj) \
+    OBJECT_GET_CLASS(VexpressMachineClass, obj, TYPE_VEXPRESS_MACHINE)
+#define VEXPRESS_MACHINE_CLASS(klass) \
+    OBJECT_CLASS_CHECK(VexpressMachineClass, klass, TYPE_VEXPRESS_MACHINE)
+
 typedef void DBoardInitFn(const VEDBoardInfo *daughterboard,
                           ram_addr_t ram_size,
                           const char *cpu_model,
@@ -681,6 +698,13 @@ static void vexpress_common_init(VEDBoardInfo *daughterboard,
     arm_load_kernel(ARM_CPU(first_cpu), &daughterboard->bootinfo);
 }
 
+static void vexpress_init(MachineState *machine)
+{
+    VexpressMachineClass *vmc = VEXPRESS_MACHINE_GET_CLASS(machine);
+
+    vexpress_common_init(vmc->daughterboard, machine);
+}
+
 static void vexpress_a9_init(MachineState *machine)
 {
     vexpress_common_init(&a9_daughterboard, machine);
@@ -691,6 +715,25 @@ static void vexpress_a15_init(MachineState *machine)
     vexpress_common_init(&a15_daughterboard, machine);
 }
 
+static void vexpress_class_init(ObjectClass *oc, void *data)
+{
+    MachineClass *mc = MACHINE_CLASS(oc);
+
+    mc->name = TYPE_VEXPRESS_MACHINE;
+    mc->desc = "ARM Versatile Express";
+    mc->init = vexpress_init;
+    mc->block_default_type = IF_SCSI;
+    mc->max_cpus = 4;
+}
+
+static const TypeInfo vexpress_info = {
+    .name = TYPE_VEXPRESS_MACHINE,
+    .parent = TYPE_MACHINE,
+    .instance_size = sizeof(VexpressMachineState),
+    .class_size = sizeof(VexpressMachineClass),
+    .class_init = vexpress_class_init,
+};
+
 static QEMUMachine vexpress_a9_machine = {
     .name = "vexpress-a9",
     .desc = "ARM Versatile Express for Cortex-A9",
@@ -709,6 +752,7 @@ static QEMUMachine vexpress_a15_machine = {
 
 static void vexpress_machine_init(void)
 {
+    type_register_static(&vexpress_info);
     qemu_register_machine(&vexpress_a9_machine);
     qemu_register_machine(&vexpress_a15_machine);
 }
-- 
1.8.3.2

  reply	other threads:[~2014-12-03 20:06 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-03 20:05 [Qemu-devel] [PATCH 00/13] target-arm: Add CPU security extension enablement Greg Bellows
2014-12-03 20:05 ` Greg Bellows [this message]
2014-12-05 15:16   ` [Qemu-devel] [PATCH 01/13] target-arm: Add vexpress class and machine types Peter Maydell
2014-12-05 19:02     ` Marcel Apfelbaum
2014-12-05 20:04       ` Greg Bellows
2014-12-03 20:05 ` [Qemu-devel] [PATCH 02/13] target-arm: Add vexpress a9 & a15 machine objects Greg Bellows
2014-12-03 20:05 ` [Qemu-devel] [PATCH 03/13] target-arm: Switch to common vexpress machine init Greg Bellows
2014-12-03 20:05 ` [Qemu-devel] [PATCH 04/13] target-arm: Add secure qemu machine option Greg Bellows
2014-12-05 15:18   ` Peter Maydell
2014-12-05 15:33     ` Greg Bellows
2014-12-05 15:39       ` Peter Maydell
2014-12-05 19:40         ` Marcel Apfelbaum
2014-12-05 20:40           ` Greg Bellows
2014-12-05 22:44             ` Marcel Apfelbaum
2014-12-05 22:53               ` Greg Bellows
2014-12-03 20:05 ` [Qemu-devel] [PATCH 05/13] target-arm: Add vexpress machine secure property Greg Bellows
2014-12-05 15:20   ` Peter Maydell
2014-12-03 20:06 ` [Qemu-devel] [PATCH 06/13] target-arm: Change vexpress daughterboard init arg Greg Bellows
2014-12-03 20:06 ` [Qemu-devel] [PATCH 07/13] target-arm: Add virt class and machine types Greg Bellows
2014-12-03 20:06 ` [Qemu-devel] [PATCH 08/13] target-arm: Add virt machine secure property Greg Bellows
2014-12-03 20:06 ` [Qemu-devel] [PATCH 09/13] target-arm: Add feature unset function Greg Bellows
2014-12-05 15:22   ` Peter Maydell
2014-12-03 20:06 ` [Qemu-devel] [PATCH 10/13] target-arm: Add ARMCPU secure property Greg Bellows
2014-12-05 15:26   ` Peter Maydell
2014-12-05 19:41     ` Greg Bellows
2014-12-03 20:06 ` [Qemu-devel] [PATCH 11/13] target-arm: Set CPU secure prop during VE init Greg Bellows
2014-12-03 20:06 ` [Qemu-devel] [PATCH 12/13] target-arm: Set CPU secure prop during virt init Greg Bellows
2014-12-03 20:06 ` [Qemu-devel] [PATCH 13/13] target-arm: add cpu feature EL3 to CPUs with Security Extensions Greg Bellows

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=1417637167-20640-2-git-send-email-greg.bellows@linaro.org \
    --to=greg.bellows@linaro.org \
    --cc=aggelerf@ethz.ch \
    --cc=edgar.iglesias@gmail.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=serge.fdrv@gmail.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).