[libvirt] [PATCH v4 2/2] conf: Add support for dtb option in QEMU

Olivia Yin hong-hua.yin at freescale.com
Wed Mar 13 04:35:55 UTC 2013


Signed-off-by: Olivia Yin <hong-hua.yin at freescale.com>

This patch adds support to set the device trees file.
---
 docs/formatdomain.html.in     |    5 +++++
 docs/schemas/domaincommon.rng |    5 +++++
 src/conf/domain_conf.c        |    4 ++++
 src/conf/domain_conf.h        |    1 +
 4 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 4cafc92..e589df5 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -232,6 +232,7 @@
     <kernel>/root/f8-i386-vmlinuz</kernel>
     <initrd>/root/f8-i386-initrd</initrd>
     <cmdline>console=ttyS0 ks=http://example.com/f8-i386/os/</cmdline>
+    <dtb>/root/ppc.dtb</dtb>
   </os>
   ...</pre>
 
@@ -253,6 +254,10 @@
         the kernel (or installer) at boottime. This is often used to
         specify an alternate primary console (eg serial port), or the
         installation media source / kickstart file</dd>
+      <dt><code>dtb</code></dt>
+      <dd>The contents of this element specify the fully-qualified path
+        to the (optional) device tree binary (dtb) image in the host OS.
+        Since 1.0.4</dd>
     </dl>
 
     <h4><a name="eleemntsOSContainer">Container boot</a></h4>
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 372aab7..88e89dd 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -832,6 +832,11 @@
           <text/>
         </element>
       </optional>
+      <optional>
+        <element name="dtb">
+          <ref name="absFilePath"/>
+        </element>
+      </optional>
     </interleave>
   </define>
   <define name="osbootdev">
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 717fc20..18e4906 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1785,6 +1785,7 @@ void virDomainDefFree(virDomainDefPtr def)
     VIR_FREE(def->os.kernel);
     VIR_FREE(def->os.initrd);
     VIR_FREE(def->os.cmdline);
+    VIR_FREE(def->os.dtb);
     VIR_FREE(def->os.root);
     VIR_FREE(def->os.loader);
     VIR_FREE(def->os.bootloader);
@@ -10063,6 +10064,7 @@ virDomainDefParseXML(virCapsPtr caps,
         def->os.kernel = virXPathString("string(./os/kernel[1])", ctxt);
         def->os.initrd = virXPathString("string(./os/initrd[1])", ctxt);
         def->os.cmdline = virXPathString("string(./os/cmdline[1])", ctxt);
+        def->os.dtb = virXPathString("string(./os/dtb[1])", ctxt);
         def->os.root = virXPathString("string(./os/root[1])", ctxt);
         def->os.loader = virXPathString("string(./os/loader[1])", ctxt);
     }
@@ -14675,6 +14677,8 @@ virDomainDefFormatInternal(virDomainDefPtr def,
                           def->os.initrd);
     virBufferEscapeString(buf, "    <cmdline>%s</cmdline>\n",
                           def->os.cmdline);
+    virBufferEscapeString(buf, "    <dtb>%s</dtb>\n",
+                          def->os.dtb);
     virBufferEscapeString(buf, "    <root>%s</root>\n",
                           def->os.root);
 
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 2509193..03a5c33 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1535,6 +1535,7 @@ struct _virDomainOSDef {
     char *kernel;
     char *initrd;
     char *cmdline;
+    char *dtb;
     char *root;
     char *loader;
     char *bootloader;
-- 
1.6.4





More information about the libvir-list mailing list