Module Name: src Committed By: matt Date: Wed Mar 5 02:17:22 UTC 2014
Modified Files: src/sys/arch/arm/arm32: arm32_kvminit.c Log Message: rearrange some printfs. when using the extended mmu, make sure to disable ttbr0 until there is an activated pmap. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/arm32/arm32_kvminit.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/arm32/arm32_kvminit.c diff -u src/sys/arch/arm/arm32/arm32_kvminit.c:1.23 src/sys/arch/arm/arm32/arm32_kvminit.c:1.24 --- src/sys/arch/arm/arm32/arm32_kvminit.c:1.23 Mon Mar 3 14:03:14 2014 +++ src/sys/arch/arm/arm32/arm32_kvminit.c Wed Mar 5 02:17:21 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: arm32_kvminit.c,v 1.23 2014/03/03 14:03:14 matt Exp $ */ +/* $NetBSD: arm32_kvminit.c,v 1.24 2014/03/05 02:17:21 matt Exp $ */ /* * Copyright (c) 2002, 2003, 2005 Genetec Corporation. All rights reserved. @@ -122,7 +122,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: arm32_kvminit.c,v 1.23 2014/03/03 14:03:14 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: arm32_kvminit.c,v 1.24 2014/03/05 02:17:21 matt Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -134,6 +134,7 @@ __KERNEL_RCSID(0, "$NetBSD: arm32_kvmini #include <uvm/uvm_extern.h> +#include <arm/locore.h> #include <arm/db_machdep.h> #include <arm/undefined.h> #include <arm/bootconfig.h> @@ -931,7 +932,12 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b * TTBCR should have been initialized by the MD start code. */ KASSERT(armreg_ttbcr_read() == __SHIFTIN(1, TTBCR_S_N)); + /* + * Disable lookups via TTBR0 until there is an activated pmap. + */ + armreg_ttbcr_write(armreg_ttbcr_read() | TTBCR_S_PD0); cpu_setttb(l1pt_pa, KERNEL_PID); + arm_isb(); #else cpu_setttb(l1pt_pa, true); cpu_domains(DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)); @@ -940,12 +946,11 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b #ifdef VERBOSE_INIT_ARM #ifdef ARM_MMU_EXTENDED - printf("TTBCR=%#x TTBR0=%#x TTBR1=%#x OK\n", - armreg_ttbcr_read(), - armreg_ttbr_read(), - armreg_ttbr1_read()); + printf(" (TTBCR=%#x TTBR0=%#x TTBR1=%#x)", + armreg_ttbcr_read(), armreg_ttbr_read(), armreg_ttbr1_read()); #else - printf("TTBR0=%#x OK\n", armreg_ttbr_read()); + printf(" (TTBR0=%#x)", armreg_ttbr_read()); #endif + printf(" OK\n"); #endif }