aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/include/asm/pci.h
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2013-08-02 16:45:22 -0400
committerChris Metcalf <cmetcalf@tilera.com>2013-08-06 12:55:32 -0400
commitcf89c4262bd5fa70e67953126001c08ecea4f346 (patch)
treeb968b7a7a2a9fb2140779948911e5c71b29585b1 /arch/tile/include/asm/pci.h
parenta3c4f2fb26974b5134861af8f7593040ae61a1f4 (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.h11
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