summaryrefslogtreecommitdiff
path: root/sys/arch/arm
diff options
context:
space:
mode:
authorPatrick Wildt <patrick@cvs.openbsd.org>2013-01-18 00:20:21 +0000
committerPatrick Wildt <patrick@cvs.openbsd.org>2013-01-18 00:20:21 +0000
commit6350fa1f7ecfa9869cd0ca670a983ef5f91d42fd (patch)
tree25def7671d9e0833fd1a30807eddb4b986b920fe /sys/arch/arm
parent99c3718a0fd2916e516d5ecb9cb80478233b5108 (diff)
Update the ARM CPU ID information. The IDs aren't vendor/product
specific, they are specific to the ARM CPUs themselves. ok bmercer@ jsg@ deraadt@
Diffstat (limited to 'sys/arch/arm')
-rw-r--r--sys/arch/arm/arm/cpu.c34
-rw-r--r--sys/arch/arm/arm/cpufunc.c8
-rw-r--r--sys/arch/arm/include/armreg.h26
3 files changed, 56 insertions, 12 deletions
diff --git a/sys/arch/arm/arm/cpu.c b/sys/arch/arm/arm/cpu.c
index 2adba2dcd64..e3f14e15e4e 100644
--- a/sys/arch/arm/arm/cpu.c
+++ b/sys/arch/arm/arm/cpu.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cpu.c,v 1.14 2011/09/20 22:02:10 miod Exp $ */
+/* $OpenBSD: cpu.c,v 1.15 2013/01/18 00:20:20 patrick Exp $ */
/* $NetBSD: cpu.c,v 1.56 2004/04/14 04:01:49 bsh Exp $ */
@@ -296,11 +296,37 @@ const struct cpuidtab cpuids[] = {
{ CPU_ID_ARM1136JSR1, CPU_CLASS_ARM11J, "ARM1136J-S R1",
generic_steppings },
- { CPU_ID_OMAP3430, CPU_CLASS_ARMv7, "ARM OMAP3[45]30",
+ { CPU_ID_CORTEX_A5, CPU_CLASS_ARMv7, "ARM Cortex A5",
generic_steppings },
- { CPU_ID_OMAP3530, CPU_CLASS_ARMv7, "ARM OMAP3530",
+ { CPU_ID_CORTEX_A7, CPU_CLASS_ARMv7, "ARM Cortex A7",
generic_steppings },
- { CPU_ID_OMAP3630, CPU_CLASS_ARMv7, "ARM OMAP3630/DM3730",
+ { CPU_ID_CORTEX_A8, CPU_CLASS_ARMv7, "ARM Cortex A8",
+ generic_steppings },
+ { CPU_ID_CORTEX_A8, CPU_CLASS_ARMv7, "ARM Cortex A8",
+ generic_steppings },
+ { CPU_ID_CORTEX_A8_R1, CPU_CLASS_ARMv7, "ARM Cortex A8 R1",
+ generic_steppings },
+ { CPU_ID_CORTEX_A8_R2, CPU_CLASS_ARMv7, "ARM Cortex A8 R2",
+ generic_steppings },
+ { CPU_ID_CORTEX_A8_R3, CPU_CLASS_ARMv7, "ARM Cortex A8 R3",
+ generic_steppings },
+ { CPU_ID_CORTEX_A9, CPU_CLASS_ARMv7, "ARM Cortex A9",
+ generic_steppings },
+ { CPU_ID_CORTEX_A9_R1, CPU_CLASS_ARMv7, "ARM Cortex A9 R1",
+ generic_steppings },
+ { CPU_ID_CORTEX_A9_R2, CPU_CLASS_ARMv7, "ARM Cortex A9 R2",
+ generic_steppings },
+ { CPU_ID_CORTEX_A9_R3, CPU_CLASS_ARMv7, "ARM Cortex A9 R3",
+ generic_steppings },
+ { CPU_ID_CORTEX_A9_R4, CPU_CLASS_ARMv7, "ARM Cortex A9 R4",
+ generic_steppings },
+ { CPU_ID_CORTEX_A15, CPU_CLASS_ARMv7, "ARM Cortex A15",
+ generic_steppings },
+ { CPU_ID_CORTEX_A15_R1, CPU_CLASS_ARMv7, "ARM Cortex A15 R1",
+ generic_steppings },
+ { CPU_ID_CORTEX_A15_R2, CPU_CLASS_ARMv7, "ARM Cortex A15 R2",
+ generic_steppings },
+ { CPU_ID_CORTEX_A15_R3, CPU_CLASS_ARMv7, "ARM Cortex A15 R3",
generic_steppings },
diff --git a/sys/arch/arm/arm/cpufunc.c b/sys/arch/arm/arm/cpufunc.c
index bfaf97f001b..5eea5d48143 100644
--- a/sys/arch/arm/arm/cpufunc.c
+++ b/sys/arch/arm/arm/cpufunc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cpufunc.c,v 1.16 2011/11/08 17:06:51 deraadt Exp $ */
+/* $OpenBSD: cpufunc.c,v 1.17 2013/01/18 00:20:20 patrick Exp $ */
/* $NetBSD: cpufunc.c,v 1.65 2003/11/05 12:53:15 scw Exp $ */
/*
@@ -975,7 +975,11 @@ set_cpufuncs()
}
#endif /* CPU_ARM11 */
#ifdef CPU_ARMv7
- if ((cputype & CPU_ID_CORTEX_A8_MASK) == CPU_ID_CORTEX_A8) {
+ if ((cputype & CPU_ID_CORTEX_A5_MASK) == CPU_ID_CORTEX_A5 ||
+ (cputype & CPU_ID_CORTEX_A7_MASK) == CPU_ID_CORTEX_A7 ||
+ (cputype & CPU_ID_CORTEX_A8_MASK) == CPU_ID_CORTEX_A8 ||
+ (cputype & CPU_ID_CORTEX_A9_MASK) == CPU_ID_CORTEX_A9 ||
+ (cputype & CPU_ID_CORTEX_A15_MASK) == CPU_ID_CORTEX_A15) {
cpufuncs = armv7_cpufuncs;
cpu_reset_needs_v4_MMU_disable = 1; /* V4 or higher */
arm_get_cachetype_cp15v7();
diff --git a/sys/arch/arm/include/armreg.h b/sys/arch/arm/include/armreg.h
index 50bccc49766..fa332675910 100644
--- a/sys/arch/arm/include/armreg.h
+++ b/sys/arch/arm/include/armreg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: armreg.h,v 1.10 2011/09/20 22:02:13 miod Exp $ */
+/* $OpenBSD: armreg.h,v 1.11 2013/01/18 00:20:20 patrick Exp $ */
/* $NetBSD: armreg.h,v 1.27 2003/09/06 08:43:02 rearnsha Exp $ */
/*
@@ -200,12 +200,26 @@
#define CPU_ID_IXP425_533 0x690541c0
#define CPU_ID_IXP425_400 0x690541d0
#define CPU_ID_IXP425_266 0x690541f0
+#define CPU_ID_CORTEX_A5 0x410fc050
+#define CPU_ID_CORTEX_A5_MASK 0xff0ffff0
+#define CPU_ID_CORTEX_A7 0x410fc070
+#define CPU_ID_CORTEX_A7_MASK 0xff0ffff0
+#define CPU_ID_CORTEX_A8_R1 0x411fc080
+#define CPU_ID_CORTEX_A8_R2 0x412fc080
+#define CPU_ID_CORTEX_A8_R3 0x413fc080
#define CPU_ID_CORTEX_A8 0x410fc080
-#define CPU_ID_CORTEX_A8_MASK 0xff0fffe0
-#define CPU_ID_OMAP3430 0x411fc080
-#define CPU_ID_OMAP3530 0x411fc090 /* XXX */
-#define CPU_ID_OMAP3630 0x413fc080
-
+#define CPU_ID_CORTEX_A8_MASK 0xff0ffff0
+#define CPU_ID_CORTEX_A9 0x410fc090
+#define CPU_ID_CORTEX_A9_R1 0x411fc090
+#define CPU_ID_CORTEX_A9_R2 0x412fc090
+#define CPU_ID_CORTEX_A9_R3 0x413fc090
+#define CPU_ID_CORTEX_A9_R4 0x414fc090
+#define CPU_ID_CORTEX_A9_MASK 0xff0ffff0
+#define CPU_ID_CORTEX_A15 0x410fc0f0
+#define CPU_ID_CORTEX_A15_R1 0x411fc0f0
+#define CPU_ID_CORTEX_A15_R2 0x412fc0f0
+#define CPU_ID_CORTEX_A15_R3 0x413fc0f0
+#define CPU_ID_CORTEX_A15_MASK 0xff0ffff0
/* ARM3-specific coprocessor 15 registers */