aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/linux/linux-2.6.28/stb225/ebase-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/linux/linux-2.6.28/stb225/ebase-fix.patch')
-rw-r--r--recipes/linux/linux-2.6.28/stb225/ebase-fix.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/recipes/linux/linux-2.6.28/stb225/ebase-fix.patch b/recipes/linux/linux-2.6.28/stb225/ebase-fix.patch
new file mode 100644
index 0000000000..bdd82ac1d5
--- /dev/null
+++ b/recipes/linux/linux-2.6.28/stb225/ebase-fix.patch
@@ -0,0 +1,37 @@
+diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
+index f6083c6..b3bcd3a 100644
+--- a/arch/mips/kernel/traps.c
++++ b/arch/mips/kernel/traps.c
+@@ -1592,8 +1592,6 @@ void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
+ #ifdef CONFIG_64BIT
+ unsigned long uncached_ebase = TO_UNCAC(ebase);
+ #endif
+- if (cpu_has_mips_r2)
+- ebase += (read_c0_ebase() & 0x3ffff000);
+
+ if (!addr)
+ panic(panic_null_cerr);
+@@ -1629,8 +1627,6 @@ void __init trap_init(void)
+ ebase = (unsigned long) alloc_bootmem_low_pages(0x200 + VECTORSPACING*64);
+ else {
+ ebase = CAC_BASE;
+- if (cpu_has_mips_r2)
+- ebase += (read_c0_ebase() & 0x3ffff000);
+ }
+
+ per_cpu_trap_init();
+@@ -1739,11 +1735,11 @@ void __init trap_init(void)
+
+ if (cpu_has_vce)
+ /* Special exception: R4[04]00 uses also the divec space. */
+- memcpy((void *)(ebase + 0x180), &except_vec3_r4000, 0x100);
++ memcpy((void *)(CAC_BASE + 0x180), &except_vec3_r4000, 0x100);
+ else if (cpu_has_4kex)
+- memcpy((void *)(ebase + 0x180), &except_vec3_generic, 0x80);
++ memcpy((void *)(CAC_BASE + 0x180), &except_vec3_generic, 0x80);
+ else
+- memcpy((void *)(ebase + 0x080), &except_vec3_generic, 0x80);
++ memcpy((void *)(CAC_BASE + 0x080), &except_vec3_generic, 0x80);
+
+ signal_init();
+ #ifdef CONFIG_MIPS32_COMPAT