Browse Source

m68k: Fix boot regression on machines with RAM at non-zero

My enhancement to store the initial mapping size for later reuse in commit
486df8bc4627bdfc032d11bedcd056cc5343ee62 ("m68k: Increase initial mapping
to 8 or 16 MiB if possible") broke booting on machines where RAM doesn't
start at address zero.

Use pc-relative addressing to fix this.

Reported-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Tested-by: Andreas Schwab <schwab@linux-m68k.org>
Geert Uytterhoeven 11 years ago
parent
commit
f1a1b63529
1 changed files with 2 additions and 1 deletions
  1. 2 1
      arch/m68k/kernel/head.S

+ 2 - 1
arch/m68k/kernel/head.S

@@ -921,7 +921,8 @@ L(nocon):
 	jls	1f
 	jls	1f
 	lsrl	#1,%d1
 	lsrl	#1,%d1
 1:
 1:
-	movel	%d1,m68k_init_mapped_size
+	lea	%pc@(m68k_init_mapped_size),%a0
+	movel	%d1,%a0@
 	mmu_map	#PAGE_OFFSET,%pc@(L(phys_kernel_start)),%d1,\
 	mmu_map	#PAGE_OFFSET,%pc@(L(phys_kernel_start)),%d1,\
 		%pc@(m68k_supervisor_cachemode)
 		%pc@(m68k_supervisor_cachemode)