qemu-irix/hw/ppc
Greg Kurz 0824ca6bd1 spapr_pci: map the MSI window in each PHB
On sPAPR, virtio devices are connected to the PCI bus and use MSI-X.
Commit cc943c36fa has modified MSI-X
so that writes are made using the bus master address space and follow
the IOMMU path.

Unfortunately, the IOMMU address space address space does not have an
MSI window: the notification is silently dropped in unassigned_mem_write
instead of reaching the guest... The most visible effect is that all
virtio devices are non-functional on sPAPR since then. :(

This patch does the following:
1) map the MSI window into the IOMMU address space for each PHB
   - since each PHB instantiates its own IOMMU address space, we
     can safely map the window at a fixed address (SPAPR_PCI_MSI_WINDOW)
   - no real need to keep the MSI window setup in a separate function,
     the spapr_pci_msi_init() code moves to spapr_phb_realize().

2) kill the global MSI window as it is not needed in the end

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
(cherry picked from commit 8c46f7ec85)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2014-09-10 09:30:28 -05:00
..
Makefile.objs spapr_pci_vfio: Add spapr-pci-vfio-host-bridge to support vfio 2014-06-27 13:48:23 +02:00
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c ppc: memory: Replace memory_region_init_ram with memory_region_allocate_system_memory 2014-07-15 16:11:58 +02:00
e500.h machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
e500plat.c machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
mac.h hw/ppc/mac.h: remove unused BIOS_FILENAME definition 2013-12-02 21:18:18 +04:00
mac_newworld.c ppc: fix -mem-path failure 2014-07-22 17:37:25 +02:00
mac_oldworld.c ppc: fix -mem-path failure 2014-07-22 17:37:25 +02:00
mpc8544_guts.c cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
mpc8544ds.c machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
ppc.c spapr: Add support for time base offset migration 2014-06-16 13:24:35 +02:00
ppc4xx_devs.c ppc: fix -mem-path failure 2014-07-22 17:37:25 +02:00
ppc4xx_pci.c savevm: Remove all the unneeded version_minimum_id_old (ppc) 2014-06-16 04:55:26 +02:00
ppc405.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
ppc405_boards.c ppc: fix -mem-path failure 2014-07-22 17:37:25 +02:00
ppc405_uc.c ppc: fix -mem-path failure 2014-07-22 17:37:25 +02:00
ppc440_bamboo.c machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
ppc_booke.c hw/ppc: Avoid shifting left into sign bit 2014-03-27 19:22:49 +04:00
ppce500_spin.c ppce500_spin: Initialize struct properly 2014-04-08 11:20:05 +02:00
prep.c ppc: memory: Replace memory_region_init_ram with memory_region_allocate_system_memory 2014-07-15 16:11:58 +02:00
spapr.c spapr_pci: map the MSI window in each PHB 2014-09-10 09:30:28 -05:00
spapr_events.c spapr: Move interrupt allocator to xics 2014-06-27 13:48:26 +02:00
spapr_hcall.c hw/ppc/spapr_hcall.c: Add ULL suffix to 64 bit constant 2014-07-08 16:03:19 +01:00
spapr_iommu.c sPAPR/IOMMU: Fix TCE entry permission 2014-07-15 16:11:59 +02:00
spapr_pci.c spapr_pci: map the MSI window in each PHB 2014-09-10 09:30:28 -05:00
spapr_pci_vfio.c spapr_pci_vfio: Add spapr-pci-vfio-host-bridge to support vfio 2014-06-27 13:48:23 +02:00
spapr_rtas.c spapr: Add RTAS sysparm SPLPAR Characteristics 2014-06-27 13:48:26 +02:00
spapr_vio.c spapr: Move interrupt allocator to xics 2014-06-27 13:48:26 +02:00
virtex_ml507.c ppc: memory: Replace memory_region_init_ram with memory_region_allocate_system_memory 2014-07-15 16:11:58 +02:00