Module Name: src
Committed By: riastradh
Date: Sun Jun 14 16:10:18 UTC 2020
Modified Files:
src/sys/arch/aarch64/aarch64: cpu.c
src/sys/arch/aarch64/include: armreg.h
Log Message:
Add some more id_aa64pfr0_el1 bits.
To generate a diff of this commit:
cvs rdiff -u -r1.46 -r1.47 src/sys/arch/aarch64/aarch64/cpu.c
cvs rdiff -u -r1.48 -r1.49 src/sys/arch/aarch64/include/armreg.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/aarch64/aarch64/cpu.c
diff -u src/sys/arch/aarch64/aarch64/cpu.c:1.46 src/sys/arch/aarch64/aarch64/cpu.c:1.47
--- src/sys/arch/aarch64/aarch64/cpu.c:1.46 Sat May 30 17:50:39 2020
+++ src/sys/arch/aarch64/aarch64/cpu.c Sun Jun 14 16:10:18 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.46 2020/05/30 17:50:39 jmcneill Exp $ */
+/* $NetBSD: cpu.c,v 1.47 2020/06/14 16:10:18 riastradh Exp $ */
/*
* Copyright (c) 2017 Ryo Shimizu <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: cpu.c,v 1.46 2020/05/30 17:50:39 jmcneill Exp $");
+__KERNEL_RCSID(1, "$NetBSD: cpu.c,v 1.47 2020/06/14 16:10:18 riastradh Exp $");
#include "locators.h"
#include "opt_arm_debug.h"
@@ -343,6 +343,16 @@ cpu_identify2(device_t self, struct cpu_
aprint_verbose_dev(self, "auxID=0x%" PRIx64, ci->ci_id.ac_aa64isar0);
/* PFR0 */
+ switch (__SHIFTOUT(id->ac_aa64pfr0, ID_AA64PFR0_EL1_CSV3)) {
+ case ID_AA64PFR0_EL1_CSV3_IMPL:
+ aprint_verbose(", CSV3");
+ break;
+ }
+ switch (__SHIFTOUT(id->ac_aa64pfr0, ID_AA64PFR0_EL1_CSV2)) {
+ case ID_AA64PFR0_EL1_CSV2_IMPL:
+ aprint_verbose(", CSV2");
+ break;
+ }
switch (__SHIFTOUT(id->ac_aa64pfr0, ID_AA64PFR0_EL1_GIC)) {
case ID_AA64PFR0_EL1_GIC_CPUIF_EN:
aprint_verbose(", GICv3");
@@ -384,6 +394,12 @@ cpu_identify2(device_t self, struct cpu_
break;
}
+ /* PFR0:DIT -- data-independent timing support */
+ switch (__SHIFTOUT(id->ac_aa64pfr0, ID_AA64PFR0_EL1_DIT)) {
+ case ID_AA64PFR0_EL1_DIT_IMPL:
+ aprint_verbose(", DIT");
+ break;
+ }
/* PFR0:AdvSIMD */
switch (__SHIFTOUT(id->ac_aa64pfr0, ID_AA64PFR0_EL1_ADVSIMD)) {
Index: src/sys/arch/aarch64/include/armreg.h
diff -u src/sys/arch/aarch64/include/armreg.h:1.48 src/sys/arch/aarch64/include/armreg.h:1.49
--- src/sys/arch/aarch64/include/armreg.h:1.48 Thu May 28 12:41:15 2020
+++ src/sys/arch/aarch64/include/armreg.h Sun Jun 14 16:10:18 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: armreg.h,v 1.48 2020/05/28 12:41:15 skrll Exp $ */
+/* $NetBSD: armreg.h,v 1.49 2020/06/14 16:10:18 riastradh Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -1305,6 +1305,26 @@ AARCH64REG_WRITE_INLINE(cntvct_el0)
#define CNTCTL_ENABLE __BIT(0) // Timer Enabled
// ID_AA64PFR0_EL1: AArch64 Processor Feature Register 0
+#define ID_AA64PFR0_EL1_CSV3 __BITS(63,60) // Speculative fault data
+#define ID_AA64PFR0_EL1_CSV3_NONE 0
+#define ID_AA64PFR0_EL1_CSV3_IMPL 1
+#define ID_AA64PFR0_EL1_CSV2 __BITS(59,56) // Speculative branches
+#define ID_AA64PFR0_EL1_CSV2_NONE 0
+#define ID_AA64PFR0_EL1_CSV2_IMPL 1
+// reserved [55:52]
+#define ID_AA64PFR0_EL1_DIT __BITS(51,48) // Data-indep. timing
+#define ID_AA64PFR0_EL1_DIT_NONE 0
+#define ID_AA64PFR0_EL1_DIT_IMPL 1
+#define ID_AA64PFR0_EL1_AMU __BITS(47,44) // Activity monitors ext.
+#define ID_AA64PFR0_EL1_AMU_NONE 0
+#define ID_AA64PFR0_EL1_AMU_IMPLv8_4 1
+#define ID_AA64PFR0_EL1_AMU_IMPLv8_6 2
+#define ID_AA64PFR0_EL1_MPAM __BITS(43,40) // MPAM Extension
+#define ID_AA64PFR0_EL1_MPAM_NONE 0
+#define ID_AA64PFR0_EL1_MPAM_IMPL 1
+#define ID_AA64PFR0_EL1_SEL2 __BITS(43,40) // Secure EL2
+#define ID_AA64PFR0_EL1_SEL2_NONE 0
+#define ID_AA64PFR0_EL1_SEL2_IMPL 1
#define ID_AA64PFR0_EL1_SVE __BITS(35,32) // Scalable Vector
#define ID_AA64PFR0_EL1_SVE_NONE 0
#define ID_AA64PFR0_EL1_SVE_IMPL 1