diff options
author | Imre Kaloz <kaloz@openwrt.org> | 2009-06-23 21:04:37 +0000 |
---|---|---|
committer | Imre Kaloz <kaloz@openwrt.org> | 2009-06-23 21:04:37 +0000 |
commit | ec03ced5fa6eb25eee164839268b538abb965e99 (patch) | |
tree | 6d3382662fa3ad4119d3a3cda223c53949ca4894 /target/linux/coldfire/patches/014-m5445x_ioremap_xf0000000.patch | |
parent | 777de3a39c4b92ad53b2b9363f405d0c4c28847a (diff) | |
download | upstream-ec03ced5fa6eb25eee164839268b538abb965e99.tar.gz upstream-ec03ced5fa6eb25eee164839268b538abb965e99.tar.bz2 upstream-ec03ced5fa6eb25eee164839268b538abb965e99.zip |
use broken-out patches for the coldfire to make it easier to follow differences against the bsp
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@16547 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/coldfire/patches/014-m5445x_ioremap_xf0000000.patch')
-rw-r--r-- | target/linux/coldfire/patches/014-m5445x_ioremap_xf0000000.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/target/linux/coldfire/patches/014-m5445x_ioremap_xf0000000.patch b/target/linux/coldfire/patches/014-m5445x_ioremap_xf0000000.patch new file mode 100644 index 0000000000..11bbbe2473 --- /dev/null +++ b/target/linux/coldfire/patches/014-m5445x_ioremap_xf0000000.patch @@ -0,0 +1,61 @@ +From ed9d4b88136173a4e17701d9c1162ddfecf902e4 Mon Sep 17 00:00:00 2001 +From: Kurt Mahan <kmahan@freescale.com> +Date: Mon, 19 Nov 2007 15:24:30 -0700 +Subject: [PATCH] Short circuit IOREMAP calls in the 0xF0000000 range. + +LTIBName: m5445x-ioremap-xf0000000 +Signed-off-by: Kurt Mahan <kmahan@freescale.com> +--- + arch/m68k/coldfire/head.S | 4 ++-- + arch/m68k/mm/kmap.c | 14 ++++++++++++-- + 2 files changed, 14 insertions(+), 4 deletions(-) + +--- a/arch/m68k/coldfire/head.S ++++ b/arch/m68k/coldfire/head.S +@@ -56,13 +56,13 @@ + * Setup ACR mappings to provide the following memory map: + * Data + * 0xA0000000 -> 0xAFFFFFFF [0] NO CACHE / PRECISE / SUPER ONLY +- * 0xFC000000 -> 0xFCFFFFFF [1] NO CACHE / PRECISE / SUPER ONLY ++ * 0xF0000000 -> 0xFFFFFFFF [1] NO CACHE / PRECISE / SUPER ONLY + * Code + * None currently (mapped via TLBs) + */ + + #define ACR0_DEFAULT #0xA00FA048 /* ACR0 default value */ +-#define ACR1_DEFAULT #0xFC00A040 /* ACR1 default value */ ++#define ACR1_DEFAULT #0xF00FA040 /* ACR1 default value */ + #define ACR2_DEFAULT #0x00000000 /* ACR2 default value */ + #define ACR3_DEFAULT #0x00000000 /* ACR3 default value */ + +--- a/arch/m68k/mm/kmap.c ++++ b/arch/m68k/mm/kmap.c +@@ -133,8 +133,18 @@ void __iomem *__ioremap(unsigned long ph + } + #endif + ++#ifdef CONFIG_M54455 ++ if (physaddr >= 0xf0000000) { ++ /* short circuit mappings for xf0000000 */ + #ifdef DEBUG +- printk("ioremap: 0x%lx,0x%lx(%d) - ", physaddr, size, cacheflag); ++ printk(KERN_INFO "ioremap: short circuiting 0x%lx mapping\n", physaddr); ++#endif ++ return (void __iomem *)physaddr; ++ } ++#endif ++ ++#ifdef DEBUG ++ printk("ioremap: paddr=0x%lx,size=0x%lx(%d) - ", physaddr, size, cacheflag); + #endif + /* + * Mappings have to be aligned +@@ -153,7 +163,7 @@ void __iomem *__ioremap(unsigned long ph + virtaddr = (unsigned long)area->addr; + retaddr = virtaddr + offset; + #ifdef DEBUG +- printk("0x%lx,0x%lx,0x%lx", physaddr, virtaddr, retaddr); ++ printk(" paddr=0x%lx,vaddr=0x%lx,retaddr=0x%lx", physaddr, virtaddr, retaddr); + #endif + + /* |