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 */
 

Reply via email to