qemu/hw/pci-bridge
Alex Williamson c2a490e344 pcie: Allow generic PCIe root port to specify link speed and width
Allow users to experimentally specify speed and width values for the
generic PCIe root port.  Defaults remain at 2.5GT/s & x1 for
compatiblity with the intent to only support changing defaults via
machine types for now.

Note for libvirt testing that pcie-root-port controllers are given
default names like "pci.7" which don't play well with using the
"-set device.$name.$prop=$value" options accessible to us via
<qemu:commandline> options.  The solution is to add an <alias> to the
pcie-root-port <controller>, for example:

    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0x15'/>
      <alias name='ua-gfx0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
    </controller>

The "ua-" here is a mandatory prefix.  We can then use:

  <qemu:commandline>
    <qemu:arg value='-set'/>
    <qemu:arg value='device.ua-gfx0.x-speed=8'/>
    <qemu:arg value='-set'/>
    <qemu:arg value='device.ua-gfx0.x-width=16'/>
  </qemu:commandline>

or, without an alias, set globals such as:

  <qemu:commandline>
    <qemu:arg value='-global'/>
    <qemu:arg value='pcie-root-port.x-speed=8'/>
    <qemu:arg value='-global'/>
    <qemu:arg value='pcie-root-port.x-width=16'/>
  </qemu:commandline>

Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Tested-by: Geoffrey McRae <geoff@hostfission.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2018-12-19 16:48:16 -05:00
..
dec.c pci-bridge/dec: Convert sysbus init function to realize function 2018-12-13 13:48:00 +00:00
dec.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
gen_pcie_root_port.c pcie: Allow generic PCIe root port to specify link speed and width 2018-12-19 16:48:16 -05:00
i82801b11.c virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
ioh3420.c hw/pci-bridge/ioh3420: Remove unuseful header 2018-11-05 13:24:02 -05:00
Makefile.objs apb: split simba PCI bridge into hw/pci-bridge/simba.c 2018-01-24 19:19:50 +00:00
pci_bridge_dev.c hw/pci: add PCI resource reserve capability to legacy PCI bridge 2018-09-07 17:05:18 -04:00
pci_expander_bridge.c Merge remote-tracking branch 'origin/master' into HEAD 2018-01-11 22:03:50 +02:00
pcie_pci_bridge.c pci: removed the is_express field since a uniform interface was inserted 2018-02-08 21:06:41 +02:00
pcie_root_port.c pcie: Add link speed and width fields to PCIESlot 2018-12-19 16:48:16 -05:00
simba.c simba: rename PBMPCIBridge and QOM types to reflect simba naming 2018-01-24 19:19:50 +00:00
xio3130_downstream.c hw/pci-bridge/xio3130: Remove unused functions 2018-11-05 13:24:02 -05:00
xio3130_upstream.c hw/pci-bridge/xio3130: Remove unused functions 2018-11-05 13:24:02 -05:00