Module Name: src Committed By: matt Date: Thu Jan 23 19:28:47 UTC 2014
Modified Files: src/sys/arch/arm/arm: cpufunc.c Log Message: For armv7, CPU_CONTROL_UNAL_ENABLE is MBO/SBPO. Make sure CPU_CONTROL_EX_BEND is set for big endian kernels. Don't clear bits we aren't setting. To generate a diff of this commit: cvs rdiff -u -r1.135 -r1.136 src/sys/arch/arm/arm/cpufunc.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/arm/cpufunc.c diff -u src/sys/arch/arm/arm/cpufunc.c:1.135 src/sys/arch/arm/arm/cpufunc.c:1.136 --- src/sys/arch/arm/arm/cpufunc.c:1.135 Tue Jan 21 19:05:10 2014 +++ src/sys/arch/arm/arm/cpufunc.c Thu Jan 23 19:28:47 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: cpufunc.c,v 1.135 2014/01/21 19:05:10 christos Exp $ */ +/* $NetBSD: cpufunc.c,v 1.136 2014/01/23 19:28:47 matt Exp $ */ /* * arm7tdmi support code Copyright (c) 2001 John Fremlin @@ -49,7 +49,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cpufunc.c,v 1.135 2014/01/21 19:05:10 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpufunc.c,v 1.136 2014/01/23 19:28:47 matt Exp $"); #include "opt_compat_netbsd.h" #include "opt_cpuoptions.h" @@ -3051,7 +3051,12 @@ armv7_setup(char *args) { int cpuctrl = CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_IC_ENABLE - | CPU_CONTROL_DC_ENABLE | CPU_CONTROL_BPRD_ENABLE ; + | CPU_CONTROL_DC_ENABLE | CPU_CONTROL_BPRD_ENABLE +#ifdef __ARMEB__ + | CPU_CONTROL_EX_BEND +#endif + | CPU_CONTROL_UNAL_ENABLE; + #if 0 int cpuctrlmask = CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_SYST_ENABLE | CPU_CONTROL_IC_ENABLE | CPU_CONTROL_DC_ENABLE @@ -3061,7 +3066,6 @@ armv7_setup(char *args) #endif #ifdef ARM32_DISABLE_ALIGNMENT_FAULTS - cpuctrl |= CPU_CONTROL_UNAL_ENABLE; #else cpuctrl |= CPU_CONTROL_AFLT_ENABLE; #endif @@ -3078,7 +3082,7 @@ armv7_setup(char *args) /* Set the control register */ curcpu()->ci_ctrl = cpuctrl; - cpu_control(0xffffffff, cpuctrl); + cpu_control(cpuctrl, cpuctrl); } #endif /* CPU_CORTEX */