diff options
author | Rob Herring <rob.herring@calxeda.com> | 2012-07-10 00:26:58 -0400 |
---|---|---|
committer | Rob Herring <rob.herring@calxeda.com> | 2012-07-26 10:10:03 -0400 |
commit | 0b9b18e0166d8925ed222335efbc3cfd66aa882f (patch) | |
tree | d10fe7312e7873d1f9474b51a133a58782bf54ce /arch/arm/mach-mv78xx0/include | |
parent | e7adf1e0a5ed7d15a9ed8679a59156118f4a63c4 (diff) |
ARM: mv78xx0: use fixed pci i/o mapping
Move mv78xx0 PCI to fixed i/o mapping and remove io.h. This changes the PCI
bus addresses from the cpu address to 0 based. It appears that there is
translation h/w for this, but its untested.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-mv78xx0/include')
-rw-r--r-- | arch/arm/mach-mv78xx0/include/mach/io.h | 24 | ||||
-rw-r--r-- | arch/arm/mach-mv78xx0/include/mach/mv78xx0.h | 21 |
2 files changed, 10 insertions, 35 deletions
diff --git a/arch/arm/mach-mv78xx0/include/mach/io.h b/arch/arm/mach-mv78xx0/include/mach/io.h deleted file mode 100644 index c7d9d00d8fc..00000000000 --- a/arch/arm/mach-mv78xx0/include/mach/io.h +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-mv78xx0/include/mach/io.h | ||
3 | * | ||
4 | * This file is licensed under the terms of the GNU General Public | ||
5 | * License version 2. This program is licensed "as is" without any | ||
6 | * warranty of any kind, whether express or implied. | ||
7 | */ | ||
8 | |||
9 | #ifndef __ASM_ARCH_IO_H | ||
10 | #define __ASM_ARCH_IO_H | ||
11 | |||
12 | #include "mv78xx0.h" | ||
13 | |||
14 | #define IO_SPACE_LIMIT 0xffffffff | ||
15 | |||
16 | static inline void __iomem *__io(unsigned long addr) | ||
17 | { | ||
18 | return (void __iomem *)((addr - MV78XX0_PCIE_IO_PHYS_BASE(0)) | ||
19 | + MV78XX0_PCIE_IO_VIRT_BASE(0)); | ||
20 | } | ||
21 | |||
22 | #define __io(a) __io(a) | ||
23 | |||
24 | #endif | ||
diff --git a/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h b/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h index e807c4c52a0..bd03fed1128 100644 --- a/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h +++ b/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h | |||
@@ -29,15 +29,15 @@ | |||
29 | * | 29 | * |
30 | * virt phys size | 30 | * virt phys size |
31 | * fe400000 f102x000 16K core-specific peripheral registers | 31 | * fe400000 f102x000 16K core-specific peripheral registers |
32 | * fe700000 f0800000 1M PCIe #0 I/O space | 32 | * fee00000 f0800000 64K PCIe #0 I/O space |
33 | * fe800000 f0900000 1M PCIe #1 I/O space | 33 | * fee10000 f0900000 64K PCIe #1 I/O space |
34 | * fe900000 f0a00000 1M PCIe #2 I/O space | 34 | * fee20000 f0a00000 64K PCIe #2 I/O space |
35 | * fea00000 f0b00000 1M PCIe #3 I/O space | 35 | * fee30000 f0b00000 64K PCIe #3 I/O space |
36 | * feb00000 f0c00000 1M PCIe #4 I/O space | 36 | * fee40000 f0c00000 64K PCIe #4 I/O space |
37 | * fec00000 f0d00000 1M PCIe #5 I/O space | 37 | * fee50000 f0d00000 64K PCIe #5 I/O space |
38 | * fed00000 f0e00000 1M PCIe #6 I/O space | 38 | * fee60000 f0e00000 64K PCIe #6 I/O space |
39 | * fee00000 f0f00000 1M PCIe #7 I/O space | 39 | * fee70000 f0f00000 64K PCIe #7 I/O space |
40 | * fef00000 f1000000 1M on-chip peripheral registers | 40 | * fd000000 f1000000 1M on-chip peripheral registers |
41 | */ | 41 | */ |
42 | #define MV78XX0_CORE0_REGS_PHYS_BASE 0xf1020000 | 42 | #define MV78XX0_CORE0_REGS_PHYS_BASE 0xf1020000 |
43 | #define MV78XX0_CORE1_REGS_PHYS_BASE 0xf1024000 | 43 | #define MV78XX0_CORE1_REGS_PHYS_BASE 0xf1024000 |
@@ -46,11 +46,10 @@ | |||
46 | #define MV78XX0_CORE_REGS_SIZE SZ_16K | 46 | #define MV78XX0_CORE_REGS_SIZE SZ_16K |
47 | 47 | ||
48 | #define MV78XX0_PCIE_IO_PHYS_BASE(i) (0xf0800000 + ((i) << 20)) | 48 | #define MV78XX0_PCIE_IO_PHYS_BASE(i) (0xf0800000 + ((i) << 20)) |
49 | #define MV78XX0_PCIE_IO_VIRT_BASE(i) (0xfe700000 + ((i) << 20)) | ||
50 | #define MV78XX0_PCIE_IO_SIZE SZ_1M | 49 | #define MV78XX0_PCIE_IO_SIZE SZ_1M |
51 | 50 | ||
52 | #define MV78XX0_REGS_PHYS_BASE 0xf1000000 | 51 | #define MV78XX0_REGS_PHYS_BASE 0xf1000000 |
53 | #define MV78XX0_REGS_VIRT_BASE 0xfef00000 | 52 | #define MV78XX0_REGS_VIRT_BASE 0xfd000000 |
54 | #define MV78XX0_REGS_SIZE SZ_1M | 53 | #define MV78XX0_REGS_SIZE SZ_1M |
55 | 54 | ||
56 | #define MV78XX0_PCIE_MEM_PHYS_BASE 0xc0000000 | 55 | #define MV78XX0_PCIE_MEM_PHYS_BASE 0xc0000000 |