diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-05-05 23:40:40 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-05-05 23:40:40 -0400 |
commit | 3fd47f063b17692e843128e2abda3e697df42198 (patch) | |
tree | d90a5bdd247b0cc5af7cf78cd18cf6e27a884f00 /arch/powerpc/include/asm | |
parent | 342d6666f7276723e418b91c885b0c03f02eeaaf (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.h | 6 |
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; |