| PCI devices on s390x |
| ==================== |
| |
| PCI devices on s390x work differently than on other architectures and need to |
| be configured in a slightly different way. |
| |
| Every PCI device is linked with an additional ``zpci`` device. |
| While the ``zpci`` device will be autogenerated if not specified, it is |
| recommended to specify it explicitly so that you can pass s390-specific |
| PCI configuration. |
| |
| For example, in order to pass a PCI device ``0000:00:00.0`` through to the |
| guest, you would specify:: |
| |
| qemu-system-s390x ... \ |
| -device zpci,uid=1,fid=0,target=hostdev0,id=zpci1 \ |
| -device vfio-pci,host=0000:00:00.0,id=hostdev0 |
| |
| Here, the zpci device is joined with the PCI device via the ``target`` property. |
| |
| Note that we don't set bus, slot or function here for the guest as is common in |
| other PCI implementations. Topology information is not available on s390x, and |
| the guest will not see any of the bus, slot or function information specified |
| on the command line. |
| |
| Instead, ``uid`` and ``fid`` determine how the device is presented to the guest |
| operating system. |
| |
| In case of Linux, ``uid`` will be used in the ``domain`` part of the PCI |
| identifier, and ``fid`` identifies the physical slot, i.e.:: |
| |
| qemu-system-s390x ... \ |
| -device zpci,uid=7,fid=8,target=hostdev0,id=zpci1 \ |
| ... |
| |
| will be presented in the guest as:: |
| |
| # lspci -v |
| 0007:00:00.0 ... |
| Physical Slot: 00000008 |
| ... |