Module Name: src Committed By: ryo Date: Fri Mar 6 20:13:24 UTC 2020
Modified Files: src/sys/arch/aarch64/include: armreg.h Log Message: add more definitions for ARMv8.1-ARMv8.4 To generate a diff of this commit: cvs rdiff -u -r1.36 -r1.37 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/include/armreg.h diff -u src/sys/arch/aarch64/include/armreg.h:1.36 src/sys/arch/aarch64/include/armreg.h:1.37 --- src/sys/arch/aarch64/include/armreg.h:1.36 Sat Feb 29 21:29:23 2020 +++ src/sys/arch/aarch64/include/armreg.h Fri Mar 6 20:13:24 2020 @@ -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 @@ AARCH64REG_READ_INLINE(ctr_el0) // Cach #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_INLINE2(cbar_el1, s3_1_c 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_aa64afr0_el1) 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_aa64dfr1_el1) 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_aa64isar1_el1) 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 @@ AARCH64REG_READ_INLINE(id_aa64mmfr0_el1) #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 @@ AARCH64REG_WRITE_INLINE(cntvct_el0) #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