Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/aarch64/include add more definitions for ARMv8.1-AR...



details:   https://anonhg.NetBSD.org/src/rev/06eb1ef89b09
branches:  trunk
changeset: 1007976:06eb1ef89b09
user:      ryo <ryo%NetBSD.org@localhost>
date:      Fri Mar 06 20:13:24 2020 +0000

description:
add more definitions for ARMv8.1-ARMv8.4

diffstat:

 sys/arch/aarch64/include/armreg.h |  63 +++++++++++++++++++++++++++++++++++---
 1 files changed, 58 insertions(+), 5 deletions(-)

diffs (140 lines):

diff -r 05255481559c -r 06eb1ef89b09 sys/arch/aarch64/include/armreg.h
--- a/sys/arch/aarch64/include/armreg.h Fri Mar 06 20:07:26 2020 +0000
+++ b/sys/arch/aarch64/include/armreg.h Fri Mar 06 20:13:24 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: armreg.h,v 1.36 2020/02/29 21:29:23 ryo Exp $ */
+/* $NetBSD: armreg.h,v 1.37 2020/03/06 20:13:24 ryo Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -96,6 +96,7 @@
 #define        CTR_EL0_ERG_LINE        __BITS(23,20)   // Exclusives Reservation Granule
 #define        CTR_EL0_DMIN_LINE       __BITS(19,16)   // Dcache MIN LINE size (log2 - 2)
 #define        CTR_EL0_L1IP_MASK       __BITS(15,14)
+#define         CTR_EL0_L1IP_VPIPT     0               //  VMID-aware Physical Index, Physical Tag
 #define         CTR_EL0_L1IP_AIVIVT    1               //  ASID-tagged Virtual Index, Virtual Tag
 #define         CTR_EL0_L1IP_VIPT      2               //  Virtual Index, Physical Tag
 #define         CTR_EL0_L1IP_PIPT      3               //  Physical Index, Physical Tag
@@ -172,16 +173,17 @@
 
 AARCH64REG_READ_INLINE(ccsidr_el1)
 
-#define        CCSIDR_WT               __BIT(31)       // Write-through supported
-#define        CCSIDR_WB               __BIT(30)       // Write-back supported
-#define        CCSIDR_RA               __BIT(29)       // Read-allocation supported
-#define        CCSIDR_WA               __BIT(28)       // Write-allocation supported
+#define        CCSIDR_WT               __BIT(31)       // OBSOLETE: Write-through supported
+#define        CCSIDR_WB               __BIT(30)       // OBSOLETE: Write-back supported
+#define        CCSIDR_RA               __BIT(29)       // OBSOLETE: Read-allocation supported
+#define        CCSIDR_WA               __BIT(28)       // OBSOLETE: Write-allocation supported
 #define        CCSIDR_NUMSET           __BITS(27,13)   // (Number of sets in cache) - 1
 #define        CCSIDR_ASSOC            __BITS(12,3)    // (Associativity of cache) - 1
 #define        CCSIDR_LINESIZE         __BITS(2,0)     // Number of bytes in cache line
 
 AARCH64REG_READ_INLINE(clidr_el1)
 
+#define        CLIDR_ICB               __BITS(32,30)   // Inner cache boundary
 #define        CLIDR_LOUU              __BITS(29,27)   // Level of Unification Uniprocessor
 #define        CLIDR_LOC               __BITS(26,24)   // Level of Coherency
 #define        CLIDR_LOUIS             __BITS(23,21)   // Level of Unification InnerShareable*/
@@ -203,6 +205,13 @@
 AARCH64REG_READ_INLINE(id_aa64afr1_el1)
 AARCH64REG_READ_INLINE(id_aa64dfr0_el1)
 
+#define        ID_AA64DFR0_EL1_TRACEFILT       __BITS(43,40)
+#define         ID_AA64DFR0_EL1_TRACEFILT_NONE  0
+#define         ID_AA64DFR0_EL1_TRACEFILT_IMPL  1
+#define        ID_AA64DFR0_EL1_DBLLOCK         __BITS(39,36
+#define         ID_AA64DFR0_EL1_DBLLOCK_IMPL    0
+#define         ID_AA64DFR0_EL1_DBLLOCK_NONE    15
+#define        ID_AA64DFR0_EL1_PMSVER          __BITS(35,32)
 #define        ID_AA64DFR0_EL1_CTX_CMPS        __BITS(31,28)
 #define        ID_AA64DFR0_EL1_WRPS            __BITS(20,23)
 #define        ID_AA64DFR0_EL1_BRPS            __BITS(12,15)
@@ -220,12 +229,45 @@
 
 AARCH64REG_READ_INLINE(id_aa64isar0_el1)
 
+#define        ID_AA64ISAR0_EL1_RNDR           __BITS(63,30)
+#define         ID_AA64ISAR0_EL1_RNDR_NONE      0
+#define         ID_AA64ISAR0_EL1_RNDR_RNDRRS    1
+#define        ID_AA64ISAR0_EL1_TLB            __BITS(59,56)
+#define         ID_AA64ISAR0_EL1_TLB_NONE       0
+#define         ID_AA64ISAR0_EL1_TLB_OS         1
+#define         ID_AA64ISAR0_EL1_TLB_OS_TLB     2
+#define        ID_AA64ISAR0_EL1_TS             __BITS(55,52)
+#define         ID_AA64ISAR0_EL1_TS_NONE        0
+#define         ID_AA64ISAR0_EL1_TS_CFINV       1
+#define         ID_AA64ISAR0_EL1_TS_AXFLAG      2
+#define        ID_AA64ISAR0_EL1_FHM            __BITS(51,48)
+#define         ID_AA64ISAR0_EL1_FHM_NONE       0
+#define         ID_AA64ISAR0_EL1_FHM_FMLAL      1
+#define        ID_AA64ISAR0_EL1_DP             __BITS(47,44)
+#define         ID_AA64ISAR0_EL1_DP_NONE        0
+#define         ID_AA64ISAR0_EL1_DP_UDOT        1
+#define        ID_AA64ISAR0_EL1_SM4            __BITS(43,40)
+#define         ID_AA64ISAR0_EL1_SM4_NONE       0
+#define         ID_AA64ISAR0_EL1_SM4_SM4        1
+#define        ID_AA64ISAR0_EL1_SM3            __BITS(39,36)
+#define         ID_AA64ISAR0_EL1_SM3_NONE       0
+#define         ID_AA64ISAR0_EL1_SM3_SM3        1
+#define        ID_AA64ISAR0_EL1_SHA3           __BITS(35,32)
+#define         ID_AA64ISAR0_EL1_SHA3_NONE      0
+#define         ID_AA64ISAR0_EL1_SHA3_EOR3      1
+#define        ID_AA64ISAR0_EL1_RDM            __BITS(31,28)
+#define         ID_AA64ISAR0_EL1_RDM_NONE       0
+#define         ID_AA64ISAR0_EL1_RDM_SQRDML     1
+#define        ID_AA64ISAR0_EL1_ATOMIC         __BITS(23,20)
+#define         ID_AA64ISAR0_EL1_ATOMIC_NONE    0
+#define         ID_AA64ISAR0_EL1_ATOMIC_SWP     1
 #define        ID_AA64ISAR0_EL1_CRC32          __BITS(19,16)
 #define         ID_AA64ISAR0_EL1_CRC32_NONE     0
 #define         ID_AA64ISAR0_EL1_CRC32_CRC32X   1
 #define        ID_AA64ISAR0_EL1_SHA2           __BITS(15,12)
 #define         ID_AA64ISAR0_EL1_SHA2_NONE      0
 #define         ID_AA64ISAR0_EL1_SHA2_SHA256HSU 1
+#define         ID_AA64ISAR0_EL1_SHA2_SHA512HSU 2
 #define        ID_AA64ISAR0_EL1_SHA1           __BITS(11,8)
 #define         ID_AA64ISAR0_EL1_SHA1_NONE      0
 #define         ID_AA64ISAR0_EL1_SHA1_SHA1CPMHSU 1
@@ -276,6 +318,7 @@
 
 AARCH64REG_READ_INLINE(id_aa64mmfr0_el1)
 
+#define        ID_AA64MMFR0_EL1_EXS            __BITS(43,40)
 #define        ID_AA64MMFR0_EL1_TGRAN4         __BITS(31,28)
 #define         ID_AA64MMFR0_EL1_TGRAN4_4KB     0
 #define         ID_AA64MMFR0_EL1_TGRAN4_NONE    15
@@ -304,6 +347,7 @@
 #define         ID_AA64MMFR0_EL1_PARANGE_4T     3
 #define         ID_AA64MMFR0_EL1_PARANGE_16T    4
 #define         ID_AA64MMFR0_EL1_PARANGE_256T   5
+#define         ID_AA64MMFR0_EL1_PARANGE_4P     6
 
 AARCH64REG_READ_INLINE(id_aa64mmfr1_el1)
 
@@ -1188,15 +1232,24 @@
 #define        CNTCTL_ENABLE           __BIT(0)        // Timer Enabled
 
 // ID_AA64PFR0_EL1: AArch64 Processor Feature Register 0
+#define        ID_AA64PFR0_EL1_SVE             __BITS(35,32) // Scalable Vector
+#define         ID_AA64PFR0_EL1_SVE_NONE        0
+#define         ID_AA64PFR0_EL1_SVE_IMPL        1
+#define        ID_AA64PFR0_EL1_RAS             __BITS(31,28) // RAS Extension
+#define         ID_AA64PFR0_EL1_RAS_NONE        0
+#define         ID_AA64PFR0_EL1_RAS_IMPL        1
+#define         ID_AA64PFR0_EL1_RAS_ERX         2
 #define        ID_AA64PFR0_EL1_GIC             __BITS(24,27) // GIC CPU IF
 #define        ID_AA64PFR0_EL1_GIC_SHIFT       24
 #define         ID_AA64PFR0_EL1_GIC_CPUIF_EN    1
 #define         ID_AA64PFR0_EL1_GIC_CPUIF_NONE  0
 #define        ID_AA64PFR0_EL1_ADVSIMD         __BITS(23,20) // SIMD
 #define         ID_AA64PFR0_EL1_ADV_SIMD_IMPL   0x0
+#define         ID_AA64PFR0_EL1_ADV_SIMD_HP     0x1
 #define         ID_AA64PFR0_EL1_ADV_SIMD_NONE   0xf
 #define        ID_AA64PFR0_EL1_FP              __BITS(19,16) // FP
 #define         ID_AA64PFR0_EL1_FP_IMPL         0x0
+#define         ID_AA64PFR0_EL1_FP_HP           0x1
 #define         ID_AA64PFR0_EL1_FP_NONE         0xf
 #define        ID_AA64PFR0_EL1_EL3             __BITS(15,12) // EL3 handling
 #define         ID_AA64PFR0_EL1_EL3_NONE        0



Home | Main Index | Thread Index | Old Index