diff options
author | Chris Metcalf <cmetcalf@tilera.com> | 2013-08-02 16:45:22 -0400 |
---|---|---|
committer | Chris Metcalf <cmetcalf@tilera.com> | 2013-08-06 12:55:32 -0400 |
commit | cf89c4262bd5fa70e67953126001c08ecea4f346 (patch) | |
tree | b968b7a7a2a9fb2140779948911e5c71b29585b1 /arch/tile/include/asm/pci.h | |
parent | a3c4f2fb26974b5134861af8f7593040ae61a1f4 (diff) |
tile PCI RC: support I/O space access
To enable this functionality, configure CONFIG_TILE_PCI_IO. Without
this flag, the kernel still assigns I/O address ranges to the
devices, but no TRIO resource and mapping support is provided.
We assign disjoint I/O address ranges to separate PCIe domains.
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch/tile/include/asm/pci.h')
-rw-r--r-- | arch/tile/include/asm/pci.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/tile/include/asm/pci.h b/arch/tile/include/asm/pci.h index cd10e654916e..9cf5308b1657 100644 --- a/arch/tile/include/asm/pci.h +++ b/arch/tile/include/asm/pci.h | |||
@@ -144,6 +144,10 @@ struct pci_controller { | |||
144 | 144 | ||
145 | int pio_mem_index; /* PIO region index for memory access */ | 145 | int pio_mem_index; /* PIO region index for memory access */ |
146 | 146 | ||
147 | #ifdef CONFIG_TILE_PCI_IO | ||
148 | int pio_io_index; /* PIO region index for I/O space access */ | ||
149 | #endif | ||
150 | |||
147 | /* | 151 | /* |
148 | * Mem-Map regions for all the memory controllers so that Linux can | 152 | * Mem-Map regions for all the memory controllers so that Linux can |
149 | * map all of its physical memory space to the PCI bus. | 153 | * map all of its physical memory space to the PCI bus. |
@@ -153,6 +157,10 @@ struct pci_controller { | |||
153 | int index; /* PCI domain number */ | 157 | int index; /* PCI domain number */ |
154 | struct pci_bus *root_bus; | 158 | struct pci_bus *root_bus; |
155 | 159 | ||
160 | /* PCI I/O space resource for this controller. */ | ||
161 | struct resource io_space; | ||
162 | char io_space_name[32]; | ||
163 | |||
156 | /* PCI memory space resource for this controller. */ | 164 | /* PCI memory space resource for this controller. */ |
157 | struct resource mem_space; | 165 | struct resource mem_space; |
158 | char mem_space_name[32]; | 166 | char mem_space_name[32]; |
@@ -210,7 +218,8 @@ static inline int pcibios_assign_all_busses(void) | |||
210 | } | 218 | } |
211 | 219 | ||
212 | #define PCIBIOS_MIN_MEM 0 | 220 | #define PCIBIOS_MIN_MEM 0 |
213 | #define PCIBIOS_MIN_IO 0 | 221 | /* Minimum PCI I/O address, starting at the page boundary. */ |
222 | #define PCIBIOS_MIN_IO PAGE_SIZE | ||
214 | 223 | ||
215 | /* Use any cpu for PCI. */ | 224 | /* Use any cpu for PCI. */ |
216 | #define cpumask_of_pcibus(bus) cpu_online_mask | 225 | #define cpumask_of_pcibus(bus) cpu_online_mask |