1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-29 12:03:03 +00:00

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
This commit is contained in:
Peter Grehan 2005-11-07 06:55:48 +00:00
parent a4fd64c861
commit 29afdbaab4
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=152147

View File

@ -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));