Author: stas Date: Wed Apr 25 22:44:07 2012 New Revision: 234688 URL: http://svn.freebsd.org/changeset/base/234688
Log: - 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 Modified: head/sys/arm/arm/elf_trampoline.c Modified: head/sys/arm/arm/elf_trampoline.c ============================================================================== --- head/sys/arm/arm/elf_trampoline.c Wed Apr 25 21:59:56 2012 (r234687) +++ head/sys/arm/arm/elf_trampoline.c Wed Apr 25 22:44:07 2012 (r234688) @@ -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, _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"