- Disable MMU before reconfiguring the pagetables in the trampoline code.

Otherwise we might end up overwriting the PTEs we're currently using
  for some reason.

Reviewed by:	cognet
This commit is contained in:
Stanislav Sedov 2012-04-25 22:44:07 +00:00
parent cb0df9e86e
commit fd083a492d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=234688

View File

@ -614,6 +614,17 @@ __start(void)
(unsigned int)&func_end + 800 , 0);
if (altdst > dst)
dst = altdst;
/*
* Disable MMU. Otherwise, setup_pagetables call below
* might overwrite the L1 table we are currently using.
*/
cpu_idcache_wbinv_all();
cpu_l2cache_wbinv_all();
__asm __volatile("mrc p15, 0, %0, c1, c0, 0\n"
"bic %0, %0, #1\n" /* MMU_DISABLE */
"mcr p15, 0, %0, c1, c0, 0\n"
:"=r" (pt_addr));
} else
#endif
dst = 4 + load_kernel((unsigned int)&kernel_start,