1*e59a59a4SSebastian MitterlePCI devices on s390x 2*e59a59a4SSebastian Mitterle==================== 3*e59a59a4SSebastian Mitterle 4*e59a59a4SSebastian MitterlePCI devices on s390x work differently than on other architectures and need to 5*e59a59a4SSebastian Mitterlebe configured in a slightly different way. 6*e59a59a4SSebastian Mitterle 7*e59a59a4SSebastian MitterleEvery PCI device is linked with an additional ``zpci`` device. 8*e59a59a4SSebastian MitterleWhile the ``zpci`` device will be autogenerated if not specified, it is 9*e59a59a4SSebastian Mitterlerecommended to specify it explicitly so that you can pass s390-specific 10*e59a59a4SSebastian MitterlePCI configuration. 11*e59a59a4SSebastian Mitterle 12*e59a59a4SSebastian MitterleFor example, in order to pass a PCI device ``0000:00:00.0`` through to the 13*e59a59a4SSebastian Mitterleguest, you would specify:: 14*e59a59a4SSebastian Mitterle 15*e59a59a4SSebastian Mitterle qemu-system-s390x ... \ 16*e59a59a4SSebastian Mitterle -device zpci,uid=1,fid=0,target=hostdev0,id=zpci1 \ 17*e59a59a4SSebastian Mitterle -device vfio-pci,host=0000:00:00.0,id=hostdev0 18*e59a59a4SSebastian Mitterle 19*e59a59a4SSebastian MitterleHere, the zpci device is joined with the PCI device via the ``target`` property. 20*e59a59a4SSebastian Mitterle 21*e59a59a4SSebastian MitterleNote that we don't set bus, slot or function here for the guest as is common in 22*e59a59a4SSebastian Mitterleother PCI implementations. Topology information is not available on s390x, and 23*e59a59a4SSebastian Mitterlethe guest will not see any of the bus, slot or function information specified 24*e59a59a4SSebastian Mitterleon the command line. 25*e59a59a4SSebastian Mitterle 26*e59a59a4SSebastian MitterleInstead, ``uid`` and ``fid`` determine how the device is presented to the guest 27*e59a59a4SSebastian Mitterleoperating system. 28*e59a59a4SSebastian Mitterle 29*e59a59a4SSebastian MitterleIn case of Linux, ``uid`` will be used in the ``domain`` part of the PCI 30*e59a59a4SSebastian Mitterleidentifier, and ``fid`` identifies the physical slot, i.e.:: 31*e59a59a4SSebastian Mitterle 32*e59a59a4SSebastian Mitterle qemu-system-s390x ... \ 33*e59a59a4SSebastian Mitterle -device zpci,uid=7,fid=8,target=hostdev0,id=zpci1 \ 34*e59a59a4SSebastian Mitterle ... 35*e59a59a4SSebastian Mitterle 36*e59a59a4SSebastian Mitterlewill be presented in the guest as:: 37*e59a59a4SSebastian Mitterle 38*e59a59a4SSebastian Mitterle # lspci -v 39*e59a59a4SSebastian Mitterle 0007:00:00.0 ... 40*e59a59a4SSebastian Mitterle Physical Slot: 00000008 41*e59a59a4SSebastian Mitterle ... 42