summaryrefslogtreecommitdiffstats
path: root/arch/microblaze
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2009-05-29 14:15:33 +0200
committerMichal Simek <monstr@monstr.eu>2009-05-30 16:40:58 +0200
commitfee3c55d7fb9486f02d3285678d58e433ffe3c2a (patch)
tree0cf6fccaac5aab6d5d042f394874e9c51b8de079 /arch/microblaze
parent4b2368ffd6e3563b73b8391c133822a58b1b432a (diff)
downloadlinux-fee3c55d7fb9486f02d3285678d58e433ffe3c2a.tar.gz
linux-fee3c55d7fb9486f02d3285678d58e433ffe3c2a.tar.bz2
linux-fee3c55d7fb9486f02d3285678d58e433ffe3c2a.zip
microblaze: Fix problem with early_printk in startup
Problem arise when is incopatibility between kernel/dts/pvr and kernel tries to announce it. Early printk device (uartlite in our case) was in TLB 2 and when kernel extract DTB it necessary to allocate at least one TLB at the end of memory. First free TLB was number two where was early printk. But checking mechanism (kernel/dts/pvr) was after extrahing but TLB 2 was different. This caused that kernel hung up. Moving early printk device to TLB 63 solve it and we don't protect it which means that we can use early_printk messages only for initial parts of kernel then we rewrite TLB 63. Reported-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze')
-rw-r--r--arch/microblaze/kernel/misc.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/microblaze/kernel/misc.S b/arch/microblaze/kernel/misc.S
index d623efc9083c..df16c6287a8e 100644
--- a/arch/microblaze/kernel/misc.S
+++ b/arch/microblaze/kernel/misc.S
@@ -69,7 +69,7 @@ early_console_reg_tlb_alloc:
* Load a TLB entry for the UART, so that microblaze_progress() can use
* the UARTs nice and early. We use a 4k real==virtual mapping.
*/
- ori r4, r0, 2
+ ori r4, r0, 63
mts rtlbx, r4 /* TLB slot 2 */
or r4,r5,r0