From 0a9e3aee3535cf3561f560600680c21b8b9ce8d8 Mon Sep 17 00:00:00 2001
From: grehan <grehan@FreeBSD.org>
Date: Mon, 7 Nov 2005 06:55:48 +0000
Subject: Finally (!?) get to the bottom of the mysterious G3 boot-time panics.
 After a number of tests using nop's to change the alignment, it was confirmed
 that the mtibat instructions should be cache-aligned. FreeScale app note
 AN2540 indicates that the isync before and after the mtdbat is the right
 thing to do, but sync/isync isn't required before the mtibat so it has been
 removed.

Fix by using a ".balign 32" to pull the code in question to the correct
alignment.

MFC after:	3 days
---
 sys/powerpc/powerpc/pmap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'sys/powerpc')

diff --git a/sys/powerpc/powerpc/pmap.c b/sys/powerpc/powerpc/pmap.c
index 7f4455e..45319f0 100644
--- a/sys/powerpc/powerpc/pmap.c
+++ b/sys/powerpc/powerpc/pmap.c
@@ -569,7 +569,7 @@ pmap_bootstrap(vm_offset_t kernelstart, vm_offset_t kernelend)
 	 */
 	batu = BATU(0x00000000, BAT_BL_256M, BAT_Vs);
 	batl = BATL(0x00000000, BAT_M, BAT_PP_RW);
-	__asm ("sync; isync; \n"
+	__asm (".balign 32; \n"
 	       "mtibatu 0,%0; mtibatl 0,%1; isync; \n"
 	       "mtdbatu 0,%0; mtdbatl 0,%1; isync"
 	    :: "r"(batu), "r"(batl));
-- 
cgit v1.1