ARM: Add fixed PCI i/o mapping
This adds a fixed virtual mapping for PCI i/o addresses. The mapping is located at the last 2MB of vmalloc region (0xfee00000-0xff000000). 2MB is used to align with PMD size, but IO_SPACE_LIMIT is 1MB. The space is reserved after .map_io and can be mapped at any time later with pci_ioremap_io. Platforms which need early i/o mapping (e.g. for vga console) can call pci_map_io_early in their .map_io function. This has changed completely from the 1st implementation which only supported creating the static mapping at .map_io. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Cc: Russell King <linux@arm.linux.org.uk> Acked-by: Nicolas Pitre <nico@linaro.org>
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#ifndef __ASM_MACH_PCI_H
|
||||
#define __ASM_MACH_PCI_H
|
||||
|
||||
|
||||
struct pci_sys_data;
|
||||
struct pci_ops;
|
||||
struct pci_bus;
|
||||
@@ -54,6 +55,15 @@ struct pci_sys_data {
|
||||
*/
|
||||
void pci_common_init(struct hw_pci *);
|
||||
|
||||
/*
|
||||
* Setup early fixed I/O mapping.
|
||||
*/
|
||||
#if defined(CONFIG_PCI)
|
||||
extern void pci_map_io_early(unsigned long pfn);
|
||||
#else
|
||||
static inline void pci_map_io_early(unsigned long pfn) {}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* PCI controllers
|
||||
*/
|
||||
|
Reference in New Issue
Block a user