linux/arch/powerpc/platforms
Benjamin Herrenschmidt 184cd4a3b9 powerpc/powernv: PCI support for p7IOC under OPAL v2
This adds support for p7IOC (and possibly other IODA v1 IO Hubs)
using OPAL v2 interfaces.

We completely take over resource assignment and assign them using an
algorithm that hands out device BARs in a way that makes them fit in
individual segments of the M32 window of the bridge, which enables us
to assign individual PEs to devices and functions.

The current implementation gives out a PE per functions on PCIe, and a
PE for the entire bridge for PCIe to PCI-X bridges.

This can be adjusted / fine tuned later.

We also setup DMA resources (32-bit only for now) and MSIs (both 32-bit
and 64-bit MSI are supported).

The DMA allocation tries to divide the available 256M segments of the
32-bit DMA address space "fairly" among PEs. This is done using a
"weight" heuristic which assigns less value to things like OHCI USB
controllers than, for example SCSI RAID controllers. This algorithm
will probably want some fine tuning for specific devices or device
types.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2011-11-25 14:53:15 +11:00
..
8xx powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
40x Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2011-11-06 18:54:53 -08:00
44x powerpc: include export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:30:38 -04:00
52xx Merge remote-tracking branch 'agust/next' into merge 2011-11-08 14:53:55 +11:00
82xx powerpc/82xx: updates for mgcoge 2011-10-11 16:18:41 -05:00
83xx Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
85xx powerpc/85xx: Mark cascade irq IRQF_NO_THREAD 2011-11-25 14:11:29 +11:00
86xx Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
512x Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
amigaone pcspkr: Cleanup Kconfig dependencies 2011-06-09 15:01:41 +02:00
cell powerpc/cell/iommu: Add missing of_node_put 2011-11-25 14:11:27 +11:00
chrp Merge branch 'next/cross-platform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc 2011-07-26 17:12:10 -07:00
embedded6xx Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
iseries powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
maple powerpc: add export.h to files making use of EXPORT_SYMBOL 2011-10-31 19:30:37 -04:00
pasemi powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
powermac powerpc: Mark IPI interrupts IRQF_NO_THREAD 2011-11-25 14:14:38 +11:00
powernv powerpc/powernv: PCI support for p7IOC under OPAL v2 2011-11-25 14:53:15 +11:00
prep powerpc: drop unused Kconfig symbols 2011-10-31 23:39:52 +01:00
ps3 powerpc/ps3: Fix SMP lockdep boot warning 2011-11-16 14:47:54 +11:00
pseries powerpc/powernv: Add TCE SW invalidation support 2011-11-25 14:32:57 +11:00
wsp powerpc/wsp: Mark opb cascade handler IRQF_NO_THREAD 2011-11-25 14:11:29 +11:00
fsl_uli1575.c PCI: add pci_bus_for_each_resource(), remove direct bus->resource[] refs 2010-02-23 09:43:31 -08:00
Kconfig powerpc/fsl: MCU_MPC8349EMITX wants I2C built-in, modular won't do... 2011-11-16 14:25:19 +11:00
Kconfig.cputype powerpc/icswx: Simple ACOP fault handler 2011-11-25 14:11:28 +11:00
Makefile powerpc: Add skeleton PowerNV platform 2011-09-20 15:53:25 +10:00