From bce70ddca05bb3b71be01551d4ef5a13824b88cb Mon Sep 17 00:00:00 2001 From: Tony Lindgren Date: Tue, 20 Sep 2005 17:30:44 +0300 Subject: [PATCH] ARM: OMAP: Changed omap2 to map both L3 and L4 IO space By mapping two 1MB sections we save some 4k table entries and decrease TLB pressure. Recommended by Richard Woodruff. --- arch/arm/mach-omap2/io.c | 3 ++- include/asm-arm/arch-omap/io.h | 32 +++++++++++++++++++++----------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 6f32b617d14..4f8d3986402 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c @@ -25,7 +25,8 @@ * default mapping provided here. */ static struct map_desc omap2_io_desc[] __initdata = { - { IO_VIRT, IO_PHYS, IO_SIZE, MT_DEVICE }, + { L3_VIRT, L3_PHYS, L3_SIZE, MT_DEVICE }, + { L4_VIRT, L4_PHYS, L4_SIZE, MT_DEVICE }, }; void __init omap_map_common_io(void) diff --git a/include/asm-arm/arch-omap/io.h b/include/asm-arm/arch-omap/io.h index 11fbf629bf7..ebba025b83d 100644 --- a/include/asm-arm/arch-omap/io.h +++ b/include/asm-arm/arch-omap/io.h @@ -50,23 +50,33 @@ * ---------------------------------------------------------------------------- */ +#define PCIO_BASE 0 + #if defined(CONFIG_ARCH_OMAP1) + #define IO_PHYS 0xFFFB0000 -#define IO_OFFSET -0x01000000 /* Virtual IO = 0xfefb0000 */ +#define IO_OFFSET 0x01000000 /* Virtual IO = 0xfefb0000 */ #define IO_SIZE 0x40000 +#define IO_VIRT (IO_PHYS - IO_OFFSET) +#define IO_ADDRESS(pa) ((pa) - IO_OFFSET) +#define io_p2v(pa) ((pa) - IO_OFFSET) +#define io_v2p(va) ((va) + IO_OFFSET) #elif defined(CONFIG_ARCH_OMAP2) -#define IO_PHYS 0x48000000 /* L4 peripherals; other stuff has to be mapped * - * manually. */ -#define IO_OFFSET 0x90000000 /* Virtual IO = 0xd8000000 */ -#define IO_SIZE 0x08000000 -#endif -#define IO_VIRT (IO_PHYS + IO_OFFSET) -#define IO_ADDRESS(x) ((x) + IO_OFFSET) -#define PCIO_BASE 0 -#define io_p2v(x) ((x) + IO_OFFSET) -#define io_v2p(x) ((x) - IO_OFFSET) +/* We map both L3 and L4 on OMAP2 */ +#define L3_PHYS 0x68000000 +#define L3_VIRT 0xf8000000 +#define L3_SIZE SZ_1M /* 44kB of 128MB used, want 1MB sect */ +#define L4_PHYS 0x48000000 +#define L4_VIRT 0xd8000000 +#define L4_SIZE SZ_1M /* 1MB of 128MB used, want 1MB sect */ +#define IO_OFFSET 0x90000000 +#define IO_ADDRESS(pa) ((pa) + IO_OFFSET) /* Works for L3 and L4 */ +#define io_p2v(pa) ((pa) + IO_OFFSET) /* Works for L3 and L4 */ +#define io_v2p(va) ((va) - IO_OFFSET) /* Works for L3 and L4 */ + +#endif #ifndef __ASSEMBLER__ -- 2.41.1