qemu-irix/hw/ppc
Michael Roth 6d62d0e3dd spapr_pci: fix device tree props for MSI/MSI-X
PAPR requires ibm,req#msi and ibm,req#msi-x to be present in the
device node to define the number of msi/msi-x interrupts the device
supports, respectively.

Currently we have ibm,req#msi-x hardcoded to a non-sensical constant
that happens to be 2, and are missing ibm,req#msi entirely. The result
of that is that msi-x capable devices get limited to 2 msi-x
interrupts (which can impact performance), and msi-only devices likely
wouldn't work at all. Additionally, if devices expect a minimum that
exceeds 2, the guest driver may fail to load entirely.

SLOF still owns the generation of these properties at boot-time
(although other device properties have since been offloaded to QEMU),
but for hotplugged devices we rely on the values generated by QEMU
and thus hit the limitations above.

Fix this by generating these properties in QEMU as expected by guests.

In the future it may make sense to modify SLOF to pass through these
values directly as we do with other props since we're duplicating SLOF
code.

Cc: qemu-ppc@nongnu.org
Cc: qemu-stable@nongnu.org
Cc: David Gibson <david@gibson.dropbear.id.au>
Cc: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
(cherry picked from commit a8ad731a00)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-20 22:53:50 -05:00
..
Makefile.objs spapr_drc: initial implementation of sPAPRDRConnector device 2015-06-03 23:56:52 +02:00
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c hw/ppc/e500.c: Fix memory leak 2015-06-03 14:21:24 +03:00
e500.h PPC: e500 pci host: Add support for ATMUs 2015-01-07 16:16:24 +01:00
e500plat.c PPC: e500 pci host: Add support for ATMUs 2015-01-07 16:16:24 +01:00
mac.h block: Rename BlockDriverAIOCB* to BlockAIOCB* 2014-10-20 13:41:27 +02:00
mac_newworld.c ppc: Update cpu_model in MachineState 2015-07-07 17:44:52 +02:00
mac_oldworld.c ppc: Update cpu_model in MachineState 2015-07-07 17:44:52 +02:00
mpc8544_guts.c cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
mpc8544ds.c PPC: e500 pci host: Add support for ATMUs 2015-01-07 16:16:24 +01:00
ppc.c timer: rename NSEC_PER_SEC due to Mac OS X header clash 2015-07-20 17:01:00 +01:00
ppc4xx_devs.c SCSI changes that enable sending vendor-specific commands via virtio-scsi. 2014-08-19 13:00:57 +01:00
ppc4xx_pci.c hw/pci/ppc4xx_pci.c: Remove unused pci4xx_cfgaddr_read/write/ops 2014-11-04 23:26:12 +01:00
ppc405.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
ppc405_boards.c m48t59: introduce new base-year qdev property 2015-03-10 09:18:56 +00:00
ppc405_uc.c memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
ppc440_bamboo.c ppc: Update cpu_model in MachineState 2015-07-07 17:44:52 +02:00
ppc_booke.c hw/ppc: Avoid shifting left into sign bit 2014-03-27 19:22:49 +04:00
ppce500_spin.c Convert (ffs(val) - 1) to ctz32(val) 2015-04-28 15:36:08 +02:00
prep.c ppc: Update cpu_model in MachineState 2015-07-07 17:44:52 +02:00
spapr.c Patch queue for ppc - 2015-07-07 2015-07-07 21:16:06 +01:00
spapr_drc.c ppc/spapr_drc: fix memory leak 2015-07-16 20:00:20 +02:00
spapr_events.c spapr: Merge sPAPREnvironment into sPAPRMachineState 2015-07-07 17:44:50 +02:00
spapr_hcall.c spapr: Remove obsolete ram_limit field from sPAPRMachineState 2015-07-07 17:44:50 +02:00
spapr_iommu.c spapr_iommu: translate sPAPRTCEAccess to IOMMUAccessFlags 2015-07-07 17:44:51 +02:00
spapr_pci.c spapr_pci: fix device tree props for MSI/MSI-X 2015-10-20 22:53:50 -05:00
spapr_pci_vfio.c sPAPR: Clear stale MSIx table during EEH reset 2015-07-07 17:44:54 +02:00
spapr_rtas.c spapr: Support ibm, lrdr-capacity device tree property 2015-07-07 17:44:51 +02:00
spapr_rtc.c timer: rename NSEC_PER_SEC due to Mac OS X header clash 2015-07-20 17:01:00 +01:00
spapr_vio.c spapr: Merge sPAPREnvironment into sPAPRMachineState 2015-07-07 17:44:50 +02:00
virtex_ml507.c ppc: Update cpu_model in MachineState 2015-07-07 17:44:52 +02:00