diff options
author | Sebastian Mitterle <smitterl@redhat.com> | 2023-01-27 13:33:49 +0100 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2023-01-30 13:43:53 +0100 |
commit | e59a59a457bf135e2acd38df2ca7aca9c93e53d1 (patch) | |
tree | 96ccc3e2b86b88dcaa24621f35ffcb18632eb9b1 /docs | |
parent | a4267f00925301e908484050fab559c93bee5a1a (diff) | |
download | qemu-e59a59a457bf135e2acd38df2ca7aca9c93e53d1.zip qemu-e59a59a457bf135e2acd38df2ca7aca9c93e53d1.tar.gz qemu-e59a59a457bf135e2acd38df2ca7aca9c93e53d1.tar.bz2 |
docs/s390x/pcidevices: document pci devices on s390x
Add some documentation about the zpci device and how
to use it with pci devices on s390x.
Used source: Cornelia Huck's blog post
https://people.redhat.com/~cohuck/2018/02/19/notes-on-pci-on-s390x.html
Signed-off-by: Sebastian Mitterle <smitterl@redhat.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Message-Id: <20230127123349.55294-1-smitterl@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/system/s390x/pcidevices.rst | 41 | ||||
-rw-r--r-- | docs/system/target-s390x.rst | 1 |
2 files changed, 42 insertions, 0 deletions
diff --git a/docs/system/s390x/pcidevices.rst b/docs/system/s390x/pcidevices.rst new file mode 100644 index 0000000..628effa --- /dev/null +++ b/docs/system/s390x/pcidevices.rst @@ -0,0 +1,41 @@ +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 + ... diff --git a/docs/system/target-s390x.rst b/docs/system/target-s390x.rst index c636f64..f6f1143 100644 --- a/docs/system/target-s390x.rst +++ b/docs/system/target-s390x.rst @@ -26,6 +26,7 @@ or vfio-ap is also available. s390x/css s390x/3270 s390x/vfio-ccw + s390x/pcidevices Architectural features ====================== |