Commit bce70ddc authored by Tony Lindgren's avatar Tony Lindgren

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.
parent a38219fa
...@@ -25,7 +25,8 @@ ...@@ -25,7 +25,8 @@
* default mapping provided here. * default mapping provided here.
*/ */
static struct map_desc omap2_io_desc[] __initdata = { 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) void __init omap_map_common_io(void)
......
...@@ -50,23 +50,33 @@ ...@@ -50,23 +50,33 @@
* ---------------------------------------------------------------------------- * ----------------------------------------------------------------------------
*/ */
#define PCIO_BASE 0
#if defined(CONFIG_ARCH_OMAP1) #if defined(CONFIG_ARCH_OMAP1)
#define IO_PHYS 0xFFFB0000 #define IO_PHYS 0xFFFB0000
#define IO_OFFSET -0x01000000 /* Virtual IO = 0xfefb0000 */ #define IO_OFFSET 0x01000000 /* Virtual IO = 0xfefb0000 */
#define IO_SIZE 0x40000 #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) #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) /* We map both L3 and L4 on OMAP2 */
#define IO_ADDRESS(x) ((x) + IO_OFFSET) #define L3_PHYS 0x68000000
#define PCIO_BASE 0 #define L3_VIRT 0xf8000000
#define io_p2v(x) ((x) + IO_OFFSET) #define L3_SIZE SZ_1M /* 44kB of 128MB used, want 1MB sect */
#define io_v2p(x) ((x) - IO_OFFSET) #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__ #ifndef __ASSEMBLER__
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment