Module Name: src
Committed By: matt
Date: Fri Dec 20 06:48:09 UTC 2013
Modified Files:
src/sys/arch/arm/arm: cpufunc.c
src/sys/arch/arm/include: locore.h
Log Message:
Add CPU_IS_ARMV6_P() macro
To generate a diff of this commit:
cvs rdiff -u -r1.131 -r1.132 src/sys/arch/arm/arm/cpufunc.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/include/locore.h
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.131 src/sys/arch/arm/arm/cpufunc.c:1.132
--- src/sys/arch/arm/arm/cpufunc.c:1.131 Wed Dec 18 12:52:47 2013
+++ src/sys/arch/arm/arm/cpufunc.c Fri Dec 20 06:48:09 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: cpufunc.c,v 1.131 2013/12/18 12:52:47 skrll Exp $ */
+/* $NetBSD: cpufunc.c,v 1.132 2013/12/20 06:48:09 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.131 2013/12/18 12:52:47 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpufunc.c,v 1.132 2013/12/20 06:48:09 matt Exp $");
#include "opt_compat_netbsd.h"
#include "opt_cpuoptions.h"
@@ -96,6 +96,11 @@ struct arm_pmc_funcs *arm_pmc;
bool cpu_armv7_p;
#endif
+#if defined(CPU_ARMV6) && (defined(CPU_ARMV7) || defined(CPU_PRE_ARMV6))
+bool cpu_armv6_p;
+#endif
+
+
/* PRIMARY CACHE VARIABLES */
#if (ARM_MMU_V6 + ARM_MMU_V7) != 0
u_int arm_cache_prefer_mask;
@@ -1839,6 +1844,9 @@ set_cpufuncs(void)
#if defined(CPU_ARM11MPCORE)
if (cputype == CPU_ID_ARM11MPCORE) {
cpufuncs = arm11mpcore_cpufuncs;
+#if defined(CPU_ARMV7) || defined(CPU_PRE_ARMV6)
+ cpu_armv6_p = true;
+#endif
get_cachetype_cp15();
armv5_dcache_sets_inc = 1U << arm_dcache_log2_linesize;
armv5_dcache_sets_max = (1U << (arm_dcache_log2_linesize +
@@ -1873,6 +1881,9 @@ set_cpufuncs(void)
cpufuncs = arm1176_cpufuncs;
}
#endif
+#if defined(CPU_ARMV7) || defined(CPU_PRE_ARMV6)
+ cpu_armv6_p = true;
+#endif
cpu_do_powersave = 1; /* Enable powersave */
get_cachetype_cp15();
#ifdef ARM11_CACHE_WRITE_THROUGH
Index: src/sys/arch/arm/include/locore.h
diff -u src/sys/arch/arm/include/locore.h:1.5 src/sys/arch/arm/include/locore.h:1.6
--- src/sys/arch/arm/include/locore.h:1.5 Sat Sep 7 23:10:02 2013
+++ src/sys/arch/arm/include/locore.h Fri Dec 20 06:48:09 2013
@@ -160,6 +160,15 @@ extern bool cpu_armv7_p;
#else
#define CPU_IS_ARMV7_P() true
#endif
+#if !defined(CPU_ARMV6)
+#define CPU_IS_ARMV6_P() false
+#elif defined(CPU_ARMV7) || defined(CPU_PRE_ARMV6)
+extern bool cpu_armv6_p;
+#define CPU_IS_ARMV6_P() (cpu_armv6_p)
+#else
+#define CPU_IS_ARMV6_P() true
+#endif
+
/*
* Random cruft