--- /dev/null
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-ppc64 \
+-name guest \
+-S \
+-M pseries \
+-m 512 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-nographic \
+-nodefconfig \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-boot c \
+-device vfio-pci,host=0005:90:01.0,id=hostdev0,bus=pci.0,addr=0x1 \
+-device vfio-pci,host=0001:01:00.0,id=hostdev1,bus=pci.0,addr=0x2 \
+-device vfio-pci,host=0001:01:00.1,id=hostdev2,bus=pci.0,addr=0x3
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <!-- This hostdev will cause a new PHB to be created because its
+ isolation group is 1 (IOMMU group 0) -->
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
+ </source>
+ </hostdev>
+ <!-- This hostdev can't share the PHB that was just created, because
+ its isolation group is 2 (IOMMU group 1) -->
+ <interface type='hostdev' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address type='pci' domain='0x0005' bus='0x90' slot='0x01' function='0x0'/>
+ </source>
+ <mac address='52:54:00:6d:90:02'/>
+ </interface>
+ <!-- This hostdev will be placed on the first PHB, since its isolation
+ group is 1 (IOMMU group 0) just like the first hostdev -->
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0001' bus='0x01' slot='0x00' function='0x1'/>
+ </source>
+ </hostdev>
+ <controller type='usb' model='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
--- /dev/null
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-ppc64 \
+-name guest \
+-S \
+-M pseries \
+-m 512 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-nographic \
+-nodefconfig \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-boot c \
+-device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1 \
+-device virtio-scsi-pci,id=scsi0,bus=pci.1,addr=0x1 \
+-device vfio-pci,host=0001:01:00.0,id=hostdev0,bus=pci.1,addr=0x2 \
+-device vfio-pci,host=0005:90:01.0,id=hostdev1,bus=pci.0,addr=0x2
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <!-- This device will cause a new PHB to be created because of its
+ address -->
+ <controller type='scsi' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
+ </controller>
+ <!-- This hostdev will share the same PHB as the SCSI controller
+ despite being in the separate isolation group 1 (IOMMU group 0),
+ because the address has been requested explicitly by the user -->
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x02' function='0x0'/>
+ </hostdev>
+ <!-- This hostdev can use neither the PHB that was just created, nor the
+ default one, because it's in isolation group 2 (IOMMU group 1) -->
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0005' bus='0x90' slot='0x01' function='0x0'/>
+ </source>
+ </hostdev>
+ <controller type='usb' model='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
--- /dev/null
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-ppc64 \
+-name guest \
+-S \
+-M pseries \
+-m 512 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-nographic \
+-nodefconfig \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-boot c \
+-device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1 \
+-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.0,addr=0x2 \
+-device vfio-pci,host=0001:01:00.0,id=hostdev0,bus=pci.2,addr=0x1 \
+-device vfio-pci,host=0001:01:00.1,id=hostdev1,bus=pci.0,addr=0x3
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <!-- This hostdev will cause a new PHB to be created because its isolation
+ group is 1 (IOMMU group 0). It will be PHB 2 due to the address -->
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
+ </hostdev>
+ <!-- This hostdev will be placed on the same PHB, since its isolation
+ group is also 1 (IOMMU group 0) -->
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0001' bus='0x01' slot='0x00' function='0x1'/>
+ </source>
+ </hostdev>
+ <controller type='usb' model='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
--- /dev/null
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-ppc64 \
+-name guest \
+-S \
+-M pseries \
+-m 512 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-nographic \
+-nodefconfig \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-boot c \
+-device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1 \
+-device virtio-scsi-pci,id=scsi0,bus=pci.1,addr=0x1
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <!-- The SCSI controller is plugged into PCI bus 1, but since said bus
+ is not present in the configuration libvirt will have to add it -->
+ <controller type='scsi' model='virtio-scsi'>
+ <address type='pci' bus='1' slot='1'/>
+ </controller>
+ <controller type='usb' model='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
--- /dev/null
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-ppc64 \
+-name guest \
+-S \
+-M pseries \
+-m 512 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-nographic \
+-nodefconfig \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-boot c \
+-device spapr-pci-host-bridge,index=1,id=pci.2 \
+-device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <!-- PCI buses 0 and 2 are present in the configuration, libvirt will
+ have to fill in the blanks and add bus 1 -->
+ <controller type='pci' index='0' model='pci-root'/>
+ <controller type='pci' index='2' model='pci-root'/>
+ <controller type='usb' model='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
--- /dev/null
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-ppc64 \
+-name guest \
+-S \
+-M pseries \
+-m 512 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-nographic \
+-nodefconfig \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-boot c \
+-device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1 \
+-device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x2 \
+-device virtio-scsi-pci,id=scsi1,bus=pci.0,addr=0x3 \
+-device virtio-scsi-pci,id=scsi2,bus=pci.0,addr=0x4 \
+-device virtio-scsi-pci,id=scsi3,bus=pci.0,addr=0x5 \
+-device virtio-scsi-pci,id=scsi4,bus=pci.0,addr=0x6 \
+-device virtio-scsi-pci,id=scsi5,bus=pci.0,addr=0x7 \
+-device virtio-scsi-pci,id=scsi6,bus=pci.0,addr=0x8 \
+-device virtio-scsi-pci,id=scsi7,bus=pci.0,addr=0x9 \
+-device virtio-scsi-pci,id=scsi8,bus=pci.0,addr=0xa \
+-device virtio-scsi-pci,id=scsi9,bus=pci.0,addr=0xb \
+-device virtio-scsi-pci,id=scsi10,bus=pci.0,addr=0xc \
+-device virtio-scsi-pci,id=scsi11,bus=pci.0,addr=0xd \
+-device virtio-scsi-pci,id=scsi12,bus=pci.0,addr=0xe \
+-device virtio-scsi-pci,id=scsi13,bus=pci.0,addr=0xf \
+-device virtio-scsi-pci,id=scsi14,bus=pci.0,addr=0x10 \
+-device virtio-scsi-pci,id=scsi15,bus=pci.0,addr=0x11 \
+-device virtio-scsi-pci,id=scsi16,bus=pci.0,addr=0x12 \
+-device virtio-scsi-pci,id=scsi17,bus=pci.0,addr=0x13 \
+-device virtio-scsi-pci,id=scsi18,bus=pci.0,addr=0x14 \
+-device virtio-scsi-pci,id=scsi19,bus=pci.0,addr=0x15 \
+-device virtio-scsi-pci,id=scsi20,bus=pci.0,addr=0x16 \
+-device virtio-scsi-pci,id=scsi21,bus=pci.0,addr=0x17 \
+-device virtio-scsi-pci,id=scsi22,bus=pci.0,addr=0x18 \
+-device virtio-scsi-pci,id=scsi23,bus=pci.0,addr=0x19 \
+-device virtio-scsi-pci,id=scsi24,bus=pci.0,addr=0x1a \
+-device virtio-scsi-pci,id=scsi25,bus=pci.0,addr=0x1b \
+-device virtio-scsi-pci,id=scsi26,bus=pci.0,addr=0x1c \
+-device virtio-scsi-pci,id=scsi27,bus=pci.0,addr=0x1d \
+-device virtio-scsi-pci,id=scsi28,bus=pci.0,addr=0x1e \
+-device virtio-scsi-pci,id=scsi29,bus=pci.0,addr=0x1f \
+-device virtio-scsi-pci,id=scsi30,bus=pci.1,addr=0x1 \
+-device virtio-scsi-pci,id=scsi31,bus=pci.1,addr=0x2
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <!-- pci-root has 31 slots and there are 32 SCSI controllers here, so
+ libvirt will automatically add at least one more PCI controller -->
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='scsi' model='virtio-scsi'/>
+ <controller type='usb' model='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
DO_TEST_PARSE_ERROR("pseries-phb-wrong-target-index", NONE);
+ DO_TEST("pseries-many-devices",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_VIRTIO_SCSI);
+ DO_TEST("pseries-many-buses-1",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_VIRTIO_SCSI);
+ DO_TEST("pseries-many-buses-2",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_VIRTIO_SCSI);
+ DO_TEST("pseries-hostdevs-1",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
+ QEMU_CAPS_VIRTIO_SCSI,
+ QEMU_CAPS_DEVICE_VFIO_PCI);
+ DO_TEST("pseries-hostdevs-2",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_VIRTIO_SCSI,
+ QEMU_CAPS_DEVICE_VFIO_PCI);
+ DO_TEST("pseries-hostdevs-3",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_VIRTIO_SCSI,
+ QEMU_CAPS_DEVICE_VFIO_PCI);
+
DO_TEST("disk-ide-drive-split",
QEMU_CAPS_NODEFCONFIG,
QEMU_CAPS_IDE_CD);
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <currentMemory unit='KiB'>524288</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <controller type='usb' index='0' model='none'/>
+ <controller type='pci' index='0' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target index='0'/>
+ </controller>
+ <interface type='hostdev' managed='yes'>
+ <mac address='52:54:00:6d:90:02'/>
+ <driver name='vfio'/>
+ <source>
+ <address type='pci' domain='0x0005' bus='0x90' slot='0x01' function='0x0'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
+ </interface>
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </hostdev>
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0001' bus='0x01' slot='0x00' function='0x1'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </hostdev>
+ <memballoon model='none'/>
+ <panic model='pseries'/>
+ </devices>
+</domain>
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <currentMemory unit='KiB'>524288</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <controller type='scsi' index='0' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
+ </controller>
+ <controller type='usb' index='0' model='none'/>
+ <controller type='pci' index='0' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target index='0'/>
+ </controller>
+ <controller type='pci' index='1' model='pci-bridge'>
+ <model name='pci-bridge'/>
+ <target chassisNr='1'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
+ </controller>
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x02' function='0x0'/>
+ </hostdev>
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0005' bus='0x90' slot='0x01' function='0x0'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </hostdev>
+ <memballoon model='none'/>
+ <panic model='pseries'/>
+ </devices>
+</domain>
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <currentMemory unit='KiB'>524288</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <controller type='usb' index='0' model='none'/>
+ <controller type='pci' index='0' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target index='0'/>
+ </controller>
+ <controller type='pci' index='1' model='pci-bridge'>
+ <model name='pci-bridge'/>
+ <target chassisNr='1'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
+ </controller>
+ <controller type='pci' index='2' model='pci-bridge'>
+ <model name='pci-bridge'/>
+ <target chassisNr='2'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </controller>
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
+ </hostdev>
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <driver name='vfio'/>
+ <source>
+ <address domain='0x0001' bus='0x01' slot='0x00' function='0x1'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </hostdev>
+ <memballoon model='none'/>
+ <panic model='pseries'/>
+ </devices>
+</domain>
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <currentMemory unit='KiB'>524288</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <controller type='scsi' index='0' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
+ </controller>
+ <controller type='usb' index='0' model='none'/>
+ <controller type='pci' index='0' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target index='0'/>
+ </controller>
+ <controller type='pci' index='1' model='pci-bridge'>
+ <model name='pci-bridge'/>
+ <target chassisNr='1'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
+ </controller>
+ <memballoon model='none'/>
+ <panic model='pseries'/>
+ </devices>
+</domain>
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <currentMemory unit='KiB'>524288</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <controller type='pci' index='0' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target index='0'/>
+ </controller>
+ <controller type='pci' index='2' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target index='1'/>
+ </controller>
+ <controller type='usb' index='0' model='none'/>
+ <controller type='pci' index='1' model='pci-bridge'>
+ <model name='pci-bridge'/>
+ <target chassisNr='1'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
+ </controller>
+ <memballoon model='none'/>
+ <panic model='pseries'/>
+ </devices>
+</domain>
--- /dev/null
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>524288</memory>
+ <currentMemory unit='KiB'>524288</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <controller type='scsi' index='0' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='1' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='2' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='3' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='4' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='5' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='6' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='7' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='8' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='9' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='10' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='11' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x0d' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='12' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x0e' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='13' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x0f' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='14' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='15' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x11' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='16' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x12' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='17' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x13' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='18' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x14' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='19' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x15' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='20' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x16' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='21' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x17' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='22' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x18' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='23' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x19' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='24' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x1a' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='25' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='26' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x1c' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='27' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='28' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='29' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='30' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
+ </controller>
+ <controller type='scsi' index='31' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x02' function='0x0'/>
+ </controller>
+ <controller type='usb' index='0' model='none'/>
+ <controller type='pci' index='0' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target index='0'/>
+ </controller>
+ <controller type='pci' index='1' model='pci-bridge'>
+ <model name='pci-bridge'/>
+ <target chassisNr='1'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
+ </controller>
+ <memballoon model='none'/>
+ <panic model='pseries'/>
+ </devices>
+</domain>
QEMU_CAPS_NODEFCONFIG,
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
+ DO_TEST("pseries-many-devices",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_VIRTIO_SCSI);
+ DO_TEST("pseries-many-buses-1",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_VIRTIO_SCSI);
+ DO_TEST("pseries-many-buses-2",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_VIRTIO_SCSI);
+ DO_TEST("pseries-hostdevs-1",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
+ QEMU_CAPS_VIRTIO_SCSI,
+ QEMU_CAPS_DEVICE_VFIO_PCI);
+ DO_TEST("pseries-hostdevs-2",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_VIRTIO_SCSI,
+ QEMU_CAPS_DEVICE_VFIO_PCI);
+ DO_TEST("pseries-hostdevs-3",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_VIRTIO_SCSI,
+ QEMU_CAPS_DEVICE_VFIO_PCI);
+
DO_TEST("balloon-device-auto", NONE);
DO_TEST("balloon-device-period", NONE);
DO_TEST("channel-virtio-auto", NONE);