aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-05-05 23:40:40 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-05-05 23:40:40 -0400
commit3fd47f063b17692e843128e2abda3e697df42198 (patch)
treed90a5bdd247b0cc5af7cf78cd18cf6e27a884f00 /arch/powerpc/include/asm
parent342d6666f7276723e418b91c885b0c03f02eeaaf (diff)
powerpc/pci: Support per-aperture memory offset
The PCI core supports an offset per aperture nowadays but our arch code still has a single offset per host bridge representing the difference betwen CPU memory addresses and PCI MMIO addresses. This is a problem as new machines and hypervisor versions are coming out where the 64-bit windows will have a different offset (basically mapped 1:1) from the 32-bit windows. This fixes it by using separate offsets. In the long run, we probably want to get rid of that intermediary struct pci_controller and have those directly stored into the pci_host_bridge as they are parsed but this will be a more invasive change. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include/asm')
-rw-r--r--arch/powerpc/include/asm/pci-bridge.h6
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h
index 0694f73db22d..8b11b5bd9938 100644
--- a/arch/powerpc/include/asm/pci-bridge.h
+++ b/arch/powerpc/include/asm/pci-bridge.h
@@ -39,11 +39,6 @@ struct pci_controller {
39 resource_size_t io_base_phys; 39 resource_size_t io_base_phys;
40 resource_size_t pci_io_size; 40 resource_size_t pci_io_size;
41 41
42 /* Some machines (PReP) have a non 1:1 mapping of
43 * the PCI memory space in the CPU bus space
44 */
45 resource_size_t pci_mem_offset;
46
47 /* Some machines have a special region to forward the ISA 42 /* Some machines have a special region to forward the ISA
48 * "memory" cycles such as VGA memory regions. Left to 0 43 * "memory" cycles such as VGA memory regions. Left to 0
49 * if unsupported 44 * if unsupported
@@ -86,6 +81,7 @@ struct pci_controller {
86 */ 81 */
87 struct resource io_resource; 82 struct resource io_resource;
88 struct resource mem_resources[3]; 83 struct resource mem_resources[3];
84 resource_size_t mem_offset[3];
89 int global_number; /* PCI domain number */ 85 int global_number; /* PCI domain number */
90 86
91 resource_size_t dma_window_base_cur; 87 resource_size_t dma_window_base_cur;