Message ID | 20230125171530.49542-1-smitterl@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | docs/s390x/pcidevices: document pci devices on s390x | expand |
On 1/25/23 18:15, Sebastian Mitterle wrote: > 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> > --- > docs/system/s390x/pcidevices.rst | 34 ++++++++++++++++++++++++++++++++ > docs/system/target-s390x.rst | 1 + > 2 files changed, 35 insertions(+) > create mode 100644 docs/system/s390x/pcidevices.rst > > diff --git a/docs/system/s390x/pcidevices.rst b/docs/system/s390x/pcidevices.rst > new file mode 100644 > index 0000000000..2086c1ca29 > --- /dev/null > +++ b/docs/system/s390x/pcidevices.rst > @@ -0,0 +1,34 @@ > +PCI devices on s390x > +==================== > + > +PCI devices on s390x work differently than on other architectures. > + > +To start with, using a PCI device requires the additional ``zpci`` device. For example, > +in order to pass a PCI device ``0000:00:00.0`` through you'd 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. 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 > + ... > + > +Finally, note that you might have to enable the ``zpci`` feature in the cpu model in oder to use > +it. > diff --git a/docs/system/target-s390x.rst b/docs/system/target-s390x.rst > index c636f64113..fe8251bdef 100644 > --- a/docs/system/target-s390x.rst > +++ b/docs/system/target-s390x.rst > @@ -33,3 +33,4 @@ Architectural features > .. toctree:: > s390x/bootdevices > s390x/protvirt > + s390x/pcidevices Why not under the "Device support" section ? C.
diff --git a/docs/system/s390x/pcidevices.rst b/docs/system/s390x/pcidevices.rst new file mode 100644 index 0000000000..2086c1ca29 --- /dev/null +++ b/docs/system/s390x/pcidevices.rst @@ -0,0 +1,34 @@ +PCI devices on s390x +==================== + +PCI devices on s390x work differently than on other architectures. + +To start with, using a PCI device requires the additional ``zpci`` device. For example, +in order to pass a PCI device ``0000:00:00.0`` through you'd 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. 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 + ... + +Finally, note that you might have to enable the ``zpci`` feature in the cpu model in oder to use +it. diff --git a/docs/system/target-s390x.rst b/docs/system/target-s390x.rst index c636f64113..fe8251bdef 100644 --- a/docs/system/target-s390x.rst +++ b/docs/system/target-s390x.rst @@ -33,3 +33,4 @@ Architectural features .. toctree:: s390x/bootdevices s390x/protvirt + s390x/pcidevices
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> --- docs/system/s390x/pcidevices.rst | 34 ++++++++++++++++++++++++++++++++ docs/system/target-s390x.rst | 1 + 2 files changed, 35 insertions(+) create mode 100644 docs/system/s390x/pcidevices.rst