summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
diff options
context:
space:
mode:
authorgrehan <grehan@FreeBSD.org>2005-11-07 06:55:48 +0000
committergrehan <grehan@FreeBSD.org>2005-11-07 06:55:48 +0000
commit0a9e3aee3535cf3561f560600680c21b8b9ce8d8 (patch)
tree1cdb8a3ccd2c4fbd27983332d76ebd15712b9122 /sys/powerpc
parent5ae83a3b6a9bfa94da179b38c43a4c8c64267994 (diff)
downloadFreeBSD-src-0a9e3aee3535cf3561f560600680c21b8b9ce8d8.zip
FreeBSD-src-0a9e3aee3535cf3561f560600680c21b8b9ce8d8.tar.gz
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
Diffstat (limited to 'sys/powerpc')
-rw-r--r--sys/powerpc/powerpc/pmap.c2
1 files changed, 1 insertions, 1 deletions
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));
OpenPOWER on IntegriCloud