git: 8a8747f5c98a - stable/13 - aarch64: Add constants for fields in the PMEVTYPERn_EL0 event registers.

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Thu, 10 Nov 2022 21:24:59 UTC
The branch stable/13 has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=8a8747f5c98a8635b9270d95c2d42a4de17039ff

commit 8a8747f5c98a8635b9270d95c2d42a4de17039ff
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2022-03-11 19:29:45 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2022-11-10 21:04:49 +0000

    aarch64: Add constants for fields in the PMEVTYPERn_EL0 event registers.
    
    Reviewed by:    andrew
    Sponsored by:   University of Cambridge, Google, Inc.
    Differential Revision:  https://reviews.freebsd.org/D34526
    
    (cherry picked from commit 456d57a66d54dd365736536482660de99cf94a04)
---
 sys/arm64/include/armreg.h | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/sys/arm64/include/armreg.h b/sys/arm64/include/armreg.h
index b4ce0634300e..b24c6ec94c65 100644
--- a/sys/arm64/include/armreg.h
+++ b/sys/arm64/include/armreg.h
@@ -1494,7 +1494,7 @@
  * PMEVCNTRn_EL0_op2 holds the lower 3 bits of 'n'
  */
 
-/* PMEVTYPER<n>_EL0 */
+/* PMEVTYPER<n>_EL0 - Performance Monitoring Event Type */
 #define	PMEVTYPER_EL0_op0		3
 #define	PMEVTYPER_EL0_op1		3
 #define	PMEVTYPER_EL0_CRn		14
@@ -1503,6 +1503,15 @@
  * PMEVTYPERn_EL0_CRm[1:0] holds the upper 2 bits of 'n'
  * PMEVTYPERn_EL0_op2 holds the lower 3 bits of 'n'
  */
+#define	PMEVTYPER_EVTCOUNT_MASK		0x000003ff /* ARMv8.0 */
+#define	PMEVTYPER_EVTCOUNT_8_1_MASK	0x0000ffff /* ARMv8.1+ */
+#define	PMEVTYPER_MT			(1 << 25) /* Multithreading */
+#define	PMEVTYPER_M			(1 << 26) /* Secure EL3 filtering */
+#define	PMEVTYPER_NSH			(1 << 27) /* Non-secure hypervisor filtering */
+#define	PMEVTYPER_NSU			(1 << 28) /* Non-secure user filtering */
+#define	PMEVTYPER_NSK			(1 << 29) /* Non-secure kernel filtering */
+#define	PMEVTYPER_U			(1 << 30) /* User filtering */
+#define	PMEVTYPER_P			(1 << 31) /* Privileged filtering */
 
 /* PMINTENCLR_EL1 */
 #define	PMINTENCLR_EL1			MRS_REG(PMINTENCLR_EL1)