From 678749c92c46fc8f3d4041f1ca0324a2e6742c69 Mon Sep 17 00:00:00 2001 From: Peter De Schrijver Date: Mon, 16 Apr 2012 16:17:28 +0300 Subject: ARM: tegra: provide fixed mapping for PCIe host Provide a fixed mapping for the PCIe host registers. This reduces the pressure on the VMALLOC area significantly. bug 969392 Change-Id: I80ea0dd5e81a005f86a26eb47aea00d78e9e0ad2 Signed-off-by: Peter De Schrijver Signed-off-by: Manoj Chourasia Reviewed-on: http://git-master/r/96748 Reviewed-by: Terje Bergstrom Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Juha Tukkinen Reviewed-by: Bharat Nihalani --- arch/arm/mach-tegra/include/mach/io.h | 10 ++++++++++ arch/arm/mach-tegra/io.c | 6 ++++++ 2 files changed, 16 insertions(+) (limited to 'arch') diff --git a/arch/arm/mach-tegra/include/mach/io.h b/arch/arm/mach-tegra/include/mach/io.h index 2b091bf83f39..c6847fb78bab 100644 --- a/arch/arm/mach-tegra/include/mach/io.h +++ b/arch/arm/mach-tegra/include/mach/io.h @@ -82,6 +82,14 @@ #define IO_PPCS_VIRT 0xFE100000 #define IO_PPCS_SIZE SZ_1M +#ifdef CONFIG_ARCH_TEGRA_2x_SOC +#define IO_PCIE_PHYS 0x80000000 +#else +#define IO_PCIE_PHYS 0x00000000 +#endif +#define IO_PCIE_VIRT 0xFB000000 +#define IO_PCIE_SIZE (SZ_16M * 3) + #define IO_TO_VIRT_BETWEEN(p, st, sz) ((p) >= (st) && (p) < ((st) + (sz))) #define IO_TO_VIRT_XLATE(p, pst, vst) (((p) - (pst) + (vst))) @@ -102,6 +110,8 @@ IO_TO_VIRT_XLATE((n), IO_SDMMC_PHYS, IO_SDMMC_VIRT) : \ IO_TO_VIRT_BETWEEN((n), IO_PPCS_PHYS, IO_PPCS_SIZE) ? \ IO_TO_VIRT_XLATE((n), IO_PPCS_PHYS, IO_PPCS_VIRT) : \ + IO_TO_VIRT_BETWEEN((n), IO_PCIE_PHYS, IO_PCIE_SIZE) ? \ + IO_TO_VIRT_XLATE((n), IO_PCIE_PHYS, IO_PCIE_VIRT) : \ 0) #ifndef __ASSEMBLER__ diff --git a/arch/arm/mach-tegra/io.c b/arch/arm/mach-tegra/io.c index 47279e1d5eb8..bcd10843a99d 100644 --- a/arch/arm/mach-tegra/io.c +++ b/arch/arm/mach-tegra/io.c @@ -80,6 +80,12 @@ static struct map_desc tegra_io_desc[] __initdata = { .pfn = __phys_to_pfn(IO_PPCS_PHYS), .length = IO_PPCS_SIZE, .type = MT_DEVICE, + }, + { + .virtual = IO_PCIE_VIRT, + .pfn = __phys_to_pfn(IO_PCIE_PHYS), + .length = IO_PCIE_SIZE, + .type = MT_DEVICE, } }; -- cgit v1.2.3