
On Thu, Mar 14, 2013 at 12:49:43PM +0800, Olivia Yin wrote:
The "dtb" option sets the filename for the device tree. If without this option support, "-dtb file" will be converted into <qemu:commandline> in domain XML file. For example, '-dtb /media/ram/test.dtb' will be converted into <qemu:commandline> <qemu:arg value='-dtb'/> <qemu:arg value='/media/ram/test.dtb'/> </qemu:commandline>
This is not very friendly. This patchset add special <dtb> tag like <kernel> and <initrd> which is easier for user to write domain XML file. <os> <type arch='ppc' machine='ppce500v2'>hvm</type> <kernel>/media/ram/uImage</kernel> <initrd>/media/ram/ramdisk</initrd> <dtb>/media/ram/test.dtb</dtb> <cmdline>root=/dev/ram rw console=ttyS0,115200</cmdline> </os> --- src/qemu/qemu_capabilities.c | 8 ++++- src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 6 ++++ tests/qemuhelptest.c | 30 +++++++++++++------ tests/qemuxml2argvdata/qemuxml2argv-ppc-dtb.args | 1 + tests/qemuxml2argvdata/qemuxml2argv-ppc-dtb.xml | 28 ++++++++++++++++++ tests/qemuxml2argvtest.c | 2 + tests/testutilsqemu.c | 33 ++++++++++++++++++++++ 8 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-ppc-dtb.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-ppc-dtb.xml
ACK
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 79cfdb3..636608a 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -210,7 +210,8 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
"rng-random", /* 130 */ "rng-egd", - "virtio-ccw" + "virtio-ccw", + "dtb", );
struct _virQEMUCaps { @@ -1173,8 +1174,10 @@ virQEMUCapsComputeCmdFlags(const char *help, if (version >= 12000) virQEMUCapsSet(qemuCaps, QEMU_CAPS_PCI_ROMBAR);
- if (version >= 11000) + if (version >= 11000) { virQEMUCapsSet(qemuCaps, QEMU_CAPS_CPU_HOST); + virQEMUCapsSet(qemuCaps, QEMU_CAPS_DTB); + }
Doesn't '-dtb' show up in the -help output ? If it does, then it is preferrable to check for that, instead of using a version number based check
@@ -2299,6 +2302,7 @@ virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps) virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV_BRIDGE); virQEMUCapsSet(qemuCaps, QEMU_CAPS_SECCOMP_SANDBOX); virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_KVM_PIT); + virQEMUCapsSet(qemuCaps, QEMU_CAPS_DTB);
This bit is fine for QMP. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|