qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: qemu-devel qemu-devel <qemu-devel@nongnu.org>
Cc: Caraman Mihai Claudiu-B02008 <B02008@freescale.com>,
	qemu-ppc Mailing List <qemu-ppc@nongnu.org>
Subject: [Qemu-devel] [PATCH v2 02/11] PPC: e500: allow users to set the /compatible property via -machine
Date: Thu, 21 Jun 2012 15:33:51 +0200	[thread overview]
Message-ID: <1340285640-28669-3-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1340285640-28669-1-git-send-email-agraf@suse.de>

Device trees usually have a node /compatible, which indicate which machine
type we're looking at. For quick prototyping, it can be very useful to change
the contents of that node via the command line.

Thus, introduce a new option to -machine called dt_compatible, which when
set changes the /compatible contents to its value.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppce500_mpc8544ds.c |   12 +++++++++---
 qemu-config.c          |    4 ++++
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/hw/ppce500_mpc8544ds.c b/hw/ppce500_mpc8544ds.c
index f6da25b..d38ad99 100644
--- a/hw/ppce500_mpc8544ds.c
+++ b/hw/ppce500_mpc8544ds.c
@@ -119,7 +119,8 @@ static int mpc8544_load_device_tree(CPUPPCState *env,
     uint32_t clock_freq = 400000000;
     uint32_t tb_freq = 400000000;
     int i;
-    char compatible[] = "MPC8544DS\0MPC85xxDS";
+    const char *compatible = "MPC8544DS\0MPC85xxDS";
+    int compatible_len = sizeof("MPC8544DS\0MPC85xxDS");
     char compatible_sb[] = "fsl,mpc8544-immr\0simple-bus";
     char model[] = "MPC8544DS";
     char soc[128];
@@ -144,8 +145,14 @@ static int mpc8544_load_device_tree(CPUPPCState *env,
 
     machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
     if (machine_opts) {
+        const char *tmp;
         dumpdtb = qemu_opt_get(machine_opts, "dumpdtb");
         dtb_file = qemu_opt_get(machine_opts, "dtb");
+        tmp = qemu_opt_get(machine_opts, "dt_compatible");
+        if (tmp) {
+            compatible = tmp;
+            compatible_len = strlen(compatible) + 1;
+        }
     }
 
     if (dtb_file) {
@@ -169,8 +176,7 @@ static int mpc8544_load_device_tree(CPUPPCState *env,
 
     /* Manipulate device tree in memory. */
     qemu_devtree_setprop_string(fdt, "/", "model", model);
-    qemu_devtree_setprop(fdt, "/", "compatible", compatible,
-                         sizeof(compatible));
+    qemu_devtree_setprop(fdt, "/", "compatible", compatible, compatible_len);
     qemu_devtree_setprop_cell(fdt, "/", "#address-cells", 2);
     qemu_devtree_setprop_cell(fdt, "/", "#size-cells", 2);
 
diff --git a/qemu-config.c b/qemu-config.c
index 2cd2726..5c3296b 100644
--- a/qemu-config.c
+++ b/qemu-config.c
@@ -591,6 +591,10 @@ static QemuOptsList qemu_machine_opts = {
             .name = "phandle_start",
             .type = QEMU_OPT_STRING,
             .help = "The first phandle ID we may generate dynamically",
+        }, {
+            .name = "dt_compatible",
+            .type = QEMU_OPT_STRING,
+            .help = "Overrides the \"compatible\" property of the dt root node",
         },
         { /* End of list */ }
     },
-- 
1.6.0.2

  parent reply	other threads:[~2012-06-21 13:34 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-21 13:33 [Qemu-devel] [PATCH v2 00/11] PPC: e5500 emulation Alexander Graf
2012-06-21 13:33 ` [Qemu-devel] [PATCH v2 01/11] dt: make setprop argument static Alexander Graf
2012-06-23  0:47   ` Peter Crosthwaite
2012-06-21 13:33 ` Alexander Graf [this message]
2012-06-21 13:33 ` [Qemu-devel] [PATCH v2 03/11] uImage: increase the gzip load size Alexander Graf
2012-06-21 13:33 ` [Qemu-devel] [PATCH v2 04/11] PPC: Add some booke SPR defines Alexander Graf
2012-06-21 13:33 ` [Qemu-devel] [PATCH v2 05/11] PPC: Add support for MSR_CM Alexander Graf
2012-06-21 13:33 ` [Qemu-devel] [PATCH v2 06/11] PPC: BookE: Implement EPR SPR Alexander Graf
2012-06-21 13:33 ` [Qemu-devel] [PATCH v2 07/11] PPC: BookE: Make ivpr selectable by CPU type Alexander Graf
2012-06-21 13:33 ` [Qemu-devel] [PATCH v2 08/11] PPC: Add e5500 CPU target Alexander Graf
2012-06-21 13:33 ` [Qemu-devel] [PATCH v2 09/11] PPC: Extract SPR dump generation into its own function Alexander Graf
2012-06-21 13:33 ` [Qemu-devel] [PATCH v2 10/11] PPC: BookE: Support 32 and 64 bit wide MAS2 Alexander Graf
2012-06-21 16:04   ` Scott Wood
2012-06-21 16:32     ` Alexander Graf
2012-06-21 13:34 ` [Qemu-devel] [PATCH v2 11/11] PPC: BookE206: Bump MAS2 to 64bit Alexander Graf

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=1340285640-28669-3-git-send-email-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=B02008@freescale.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.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).