Fri Mar 6 20:13:24 2020 UTC ()
add more definitions for ARMv8.1-ARMv8.4


(ryo)
diff -r1.36 -r1.37 src/sys/arch/aarch64/include/armreg.h

cvs diff -r1.36 -r1.37 src/sys/arch/aarch64/include/armreg.h (expand / switch to unified diff)

--- src/sys/arch/aarch64/include/armreg.h 2020/02/29 21:29:23 1.36
+++ src/sys/arch/aarch64/include/armreg.h 2020/03/06 20:13:24 1.37
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: armreg.h,v 1.36 2020/02/29 21:29:23 ryo Exp $ */ 1/* $NetBSD: armreg.h,v 1.37 2020/03/06 20:13:24 ryo Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2014 The NetBSD Foundation, Inc. 4 * Copyright (c) 2014 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Matt Thomas of 3am Software Foundry. 8 * by Matt Thomas of 3am Software Foundry.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -86,26 +86,27 @@ reg_##regname##_write(uint64_t __val)  @@ -86,26 +86,27 @@ reg_##regname##_write(uint64_t __val)
86 86
87#define AARCH64REG_ATWRITE_INLINE(regname) \ 87#define AARCH64REG_ATWRITE_INLINE(regname) \
88 AARCH64REG_ATWRITE_INLINE2(regname, regname) 88 AARCH64REG_ATWRITE_INLINE2(regname, regname)
89 89
90/* 90/*
91 * System registers available at EL0 (user) 91 * System registers available at EL0 (user)
92 */ 92 */
93AARCH64REG_READ_INLINE(ctr_el0) // Cache Type Register 93AARCH64REG_READ_INLINE(ctr_el0) // Cache Type Register
94 94
95#define CTR_EL0_CWG_LINE __BITS(27,24) // Cacheback Writeback Granule 95#define CTR_EL0_CWG_LINE __BITS(27,24) // Cacheback Writeback Granule
96#define CTR_EL0_ERG_LINE __BITS(23,20) // Exclusives Reservation Granule 96#define CTR_EL0_ERG_LINE __BITS(23,20) // Exclusives Reservation Granule
97#define CTR_EL0_DMIN_LINE __BITS(19,16) // Dcache MIN LINE size (log2 - 2) 97#define CTR_EL0_DMIN_LINE __BITS(19,16) // Dcache MIN LINE size (log2 - 2)
98#define CTR_EL0_L1IP_MASK __BITS(15,14) 98#define CTR_EL0_L1IP_MASK __BITS(15,14)
 99#define CTR_EL0_L1IP_VPIPT 0 // VMID-aware Physical Index, Physical Tag
99#define CTR_EL0_L1IP_AIVIVT 1 // ASID-tagged Virtual Index, Virtual Tag 100#define CTR_EL0_L1IP_AIVIVT 1 // ASID-tagged Virtual Index, Virtual Tag
100#define CTR_EL0_L1IP_VIPT 2 // Virtual Index, Physical Tag 101#define CTR_EL0_L1IP_VIPT 2 // Virtual Index, Physical Tag
101#define CTR_EL0_L1IP_PIPT 3 // Physical Index, Physical Tag 102#define CTR_EL0_L1IP_PIPT 3 // Physical Index, Physical Tag
102#define CTR_EL0_IMIN_LINE __BITS(3,0) // Icache MIN LINE size (log2 - 2) 103#define CTR_EL0_IMIN_LINE __BITS(3,0) // Icache MIN LINE size (log2 - 2)
103 104
104AARCH64REG_READ_INLINE(dczid_el0) // Data Cache Zero ID Register 105AARCH64REG_READ_INLINE(dczid_el0) // Data Cache Zero ID Register
105 106
106#define DCZID_DZP __BIT(4) // Data Zero Prohibited 107#define DCZID_DZP __BIT(4) // Data Zero Prohibited
107#define DCZID_BS __BITS(3,0) // Block Size (log2 - 2) 108#define DCZID_BS __BITS(3,0) // Block Size (log2 - 2)
108 109
109AARCH64REG_READ_INLINE(fpcr) // Floating Point Control Register 110AARCH64REG_READ_INLINE(fpcr) // Floating Point Control Register
110AARCH64REG_WRITE_INLINE(fpcr) 111AARCH64REG_WRITE_INLINE(fpcr)
111 112
@@ -162,80 +163,121 @@ AARCH64REG_READ_INLINE(tpidrro_el0) // T @@ -162,80 +163,121 @@ AARCH64REG_READ_INLINE(tpidrro_el0) // T
162 */ 163 */
163 164
164/* 165/*
165 * These are readonly registers 166 * These are readonly registers
166 */ 167 */
167AARCH64REG_READ_INLINE(aidr_el1) 168AARCH64REG_READ_INLINE(aidr_el1)
168 169
169AARCH64REG_READ_INLINE2(cbar_el1, s3_1_c15_c3_0) // Cortex-A57 170AARCH64REG_READ_INLINE2(cbar_el1, s3_1_c15_c3_0) // Cortex-A57
170 171
171#define CBAR_PA __BITS(47,18) 172#define CBAR_PA __BITS(47,18)
172 173
173AARCH64REG_READ_INLINE(ccsidr_el1) 174AARCH64REG_READ_INLINE(ccsidr_el1)
174 175
175#define CCSIDR_WT __BIT(31) // Write-through supported 176#define CCSIDR_WT __BIT(31) // OBSOLETE: Write-through supported
176#define CCSIDR_WB __BIT(30) // Write-back supported 177#define CCSIDR_WB __BIT(30) // OBSOLETE: Write-back supported
177#define CCSIDR_RA __BIT(29) // Read-allocation supported 178#define CCSIDR_RA __BIT(29) // OBSOLETE: Read-allocation supported
178#define CCSIDR_WA __BIT(28) // Write-allocation supported 179#define CCSIDR_WA __BIT(28) // OBSOLETE: Write-allocation supported
179#define CCSIDR_NUMSET __BITS(27,13) // (Number of sets in cache) - 1 180#define CCSIDR_NUMSET __BITS(27,13) // (Number of sets in cache) - 1
180#define CCSIDR_ASSOC __BITS(12,3) // (Associativity of cache) - 1 181#define CCSIDR_ASSOC __BITS(12,3) // (Associativity of cache) - 1
181#define CCSIDR_LINESIZE __BITS(2,0) // Number of bytes in cache line 182#define CCSIDR_LINESIZE __BITS(2,0) // Number of bytes in cache line
182 183
183AARCH64REG_READ_INLINE(clidr_el1) 184AARCH64REG_READ_INLINE(clidr_el1)
184 185
 186#define CLIDR_ICB __BITS(32,30) // Inner cache boundary
185#define CLIDR_LOUU __BITS(29,27) // Level of Unification Uniprocessor 187#define CLIDR_LOUU __BITS(29,27) // Level of Unification Uniprocessor
186#define CLIDR_LOC __BITS(26,24) // Level of Coherency 188#define CLIDR_LOC __BITS(26,24) // Level of Coherency
187#define CLIDR_LOUIS __BITS(23,21) // Level of Unification InnerShareable*/ 189#define CLIDR_LOUIS __BITS(23,21) // Level of Unification InnerShareable*/
188#define CLIDR_CTYPE7 __BITS(20,18) // Cache Type field for level7 190#define CLIDR_CTYPE7 __BITS(20,18) // Cache Type field for level7
189#define CLIDR_CTYPE6 __BITS(17,15) // Cache Type field for level6 191#define CLIDR_CTYPE6 __BITS(17,15) // Cache Type field for level6
190#define CLIDR_CTYPE5 __BITS(14,12) // Cache Type field for level5 192#define CLIDR_CTYPE5 __BITS(14,12) // Cache Type field for level5
191#define CLIDR_CTYPE4 __BITS(11,9) // Cache Type field for level4 193#define CLIDR_CTYPE4 __BITS(11,9) // Cache Type field for level4
192#define CLIDR_CTYPE3 __BITS(8,6) // Cache Type field for level3 194#define CLIDR_CTYPE3 __BITS(8,6) // Cache Type field for level3
193#define CLIDR_CTYPE2 __BITS(5,3) // Cache Type field for level2 195#define CLIDR_CTYPE2 __BITS(5,3) // Cache Type field for level2
194#define CLIDR_CTYPE1 __BITS(2,0) // Cache Type field for level1 196#define CLIDR_CTYPE1 __BITS(2,0) // Cache Type field for level1
195#define CLIDR_TYPE_NOCACHE 0 // No cache 197#define CLIDR_TYPE_NOCACHE 0 // No cache
196#define CLIDR_TYPE_ICACHE 1 // Instruction cache only 198#define CLIDR_TYPE_ICACHE 1 // Instruction cache only
197#define CLIDR_TYPE_DCACHE 2 // Data cache only 199#define CLIDR_TYPE_DCACHE 2 // Data cache only
198#define CLIDR_TYPE_IDCACHE 3 // Separate inst and data caches 200#define CLIDR_TYPE_IDCACHE 3 // Separate inst and data caches
199#define CLIDR_TYPE_UNIFIEDCACHE 4 // Unified cache 201#define CLIDR_TYPE_UNIFIEDCACHE 4 // Unified cache
200 202
201AARCH64REG_READ_INLINE(currentel) 203AARCH64REG_READ_INLINE(currentel)
202AARCH64REG_READ_INLINE(id_aa64afr0_el1) 204AARCH64REG_READ_INLINE(id_aa64afr0_el1)
203AARCH64REG_READ_INLINE(id_aa64afr1_el1) 205AARCH64REG_READ_INLINE(id_aa64afr1_el1)
204AARCH64REG_READ_INLINE(id_aa64dfr0_el1) 206AARCH64REG_READ_INLINE(id_aa64dfr0_el1)
205 207
 208#define ID_AA64DFR0_EL1_TRACEFILT __BITS(43,40)
 209#define ID_AA64DFR0_EL1_TRACEFILT_NONE 0
 210#define ID_AA64DFR0_EL1_TRACEFILT_IMPL 1
 211#define ID_AA64DFR0_EL1_DBLLOCK __BITS(39,36
 212#define ID_AA64DFR0_EL1_DBLLOCK_IMPL 0
 213#define ID_AA64DFR0_EL1_DBLLOCK_NONE 15
 214#define ID_AA64DFR0_EL1_PMSVER __BITS(35,32)
206#define ID_AA64DFR0_EL1_CTX_CMPS __BITS(31,28) 215#define ID_AA64DFR0_EL1_CTX_CMPS __BITS(31,28)
207#define ID_AA64DFR0_EL1_WRPS __BITS(20,23) 216#define ID_AA64DFR0_EL1_WRPS __BITS(20,23)
208#define ID_AA64DFR0_EL1_BRPS __BITS(12,15) 217#define ID_AA64DFR0_EL1_BRPS __BITS(12,15)
209#define ID_AA64DFR0_EL1_PMUVER __BITS(8,11) 218#define ID_AA64DFR0_EL1_PMUVER __BITS(8,11)
210#define ID_AA64DFR0_EL1_PMUVER_NONE 0 219#define ID_AA64DFR0_EL1_PMUVER_NONE 0
211#define ID_AA64DFR0_EL1_PMUVER_V3 1 220#define ID_AA64DFR0_EL1_PMUVER_V3 1
212#define ID_AA64DFR0_EL1_PMUVER_NOV3 2 221#define ID_AA64DFR0_EL1_PMUVER_NOV3 2
213#define ID_AA64DFR0_EL1_TRACEVER __BITS(4,7) 222#define ID_AA64DFR0_EL1_TRACEVER __BITS(4,7)
214#define ID_AA64DFR0_EL1_TRACEVER_NONE 0 223#define ID_AA64DFR0_EL1_TRACEVER_NONE 0
215#define ID_AA64DFR0_EL1_TRACEVER_IMPL 1 224#define ID_AA64DFR0_EL1_TRACEVER_IMPL 1
216#define ID_AA64DFR0_EL1_DEBUGVER __BITS(0,3) 225#define ID_AA64DFR0_EL1_DEBUGVER __BITS(0,3)
217#define ID_AA64DFR0_EL1_DEBUGVER_V8A 6 226#define ID_AA64DFR0_EL1_DEBUGVER_V8A 6
218 227
219AARCH64REG_READ_INLINE(id_aa64dfr1_el1) 228AARCH64REG_READ_INLINE(id_aa64dfr1_el1)
220 229
221AARCH64REG_READ_INLINE(id_aa64isar0_el1) 230AARCH64REG_READ_INLINE(id_aa64isar0_el1)
222 231
 232#define ID_AA64ISAR0_EL1_RNDR __BITS(63,30)
 233#define ID_AA64ISAR0_EL1_RNDR_NONE 0
 234#define ID_AA64ISAR0_EL1_RNDR_RNDRRS 1
 235#define ID_AA64ISAR0_EL1_TLB __BITS(59,56)
 236#define ID_AA64ISAR0_EL1_TLB_NONE 0
 237#define ID_AA64ISAR0_EL1_TLB_OS 1
 238#define ID_AA64ISAR0_EL1_TLB_OS_TLB 2
 239#define ID_AA64ISAR0_EL1_TS __BITS(55,52)
 240#define ID_AA64ISAR0_EL1_TS_NONE 0
 241#define ID_AA64ISAR0_EL1_TS_CFINV 1
 242#define ID_AA64ISAR0_EL1_TS_AXFLAG 2
 243#define ID_AA64ISAR0_EL1_FHM __BITS(51,48)
 244#define ID_AA64ISAR0_EL1_FHM_NONE 0
 245#define ID_AA64ISAR0_EL1_FHM_FMLAL 1
 246#define ID_AA64ISAR0_EL1_DP __BITS(47,44)
 247#define ID_AA64ISAR0_EL1_DP_NONE 0
 248#define ID_AA64ISAR0_EL1_DP_UDOT 1
 249#define ID_AA64ISAR0_EL1_SM4 __BITS(43,40)
 250#define ID_AA64ISAR0_EL1_SM4_NONE 0
 251#define ID_AA64ISAR0_EL1_SM4_SM4 1
 252#define ID_AA64ISAR0_EL1_SM3 __BITS(39,36)
 253#define ID_AA64ISAR0_EL1_SM3_NONE 0
 254#define ID_AA64ISAR0_EL1_SM3_SM3 1
 255#define ID_AA64ISAR0_EL1_SHA3 __BITS(35,32)
 256#define ID_AA64ISAR0_EL1_SHA3_NONE 0
 257#define ID_AA64ISAR0_EL1_SHA3_EOR3 1
 258#define ID_AA64ISAR0_EL1_RDM __BITS(31,28)
 259#define ID_AA64ISAR0_EL1_RDM_NONE 0
 260#define ID_AA64ISAR0_EL1_RDM_SQRDML 1
 261#define ID_AA64ISAR0_EL1_ATOMIC __BITS(23,20)
 262#define ID_AA64ISAR0_EL1_ATOMIC_NONE 0
 263#define ID_AA64ISAR0_EL1_ATOMIC_SWP 1
223#define ID_AA64ISAR0_EL1_CRC32 __BITS(19,16) 264#define ID_AA64ISAR0_EL1_CRC32 __BITS(19,16)
224#define ID_AA64ISAR0_EL1_CRC32_NONE 0 265#define ID_AA64ISAR0_EL1_CRC32_NONE 0
225#define ID_AA64ISAR0_EL1_CRC32_CRC32X 1 266#define ID_AA64ISAR0_EL1_CRC32_CRC32X 1
226#define ID_AA64ISAR0_EL1_SHA2 __BITS(15,12) 267#define ID_AA64ISAR0_EL1_SHA2 __BITS(15,12)
227#define ID_AA64ISAR0_EL1_SHA2_NONE 0 268#define ID_AA64ISAR0_EL1_SHA2_NONE 0
228#define ID_AA64ISAR0_EL1_SHA2_SHA256HSU 1 269#define ID_AA64ISAR0_EL1_SHA2_SHA256HSU 1
 270#define ID_AA64ISAR0_EL1_SHA2_SHA512HSU 2
229#define ID_AA64ISAR0_EL1_SHA1 __BITS(11,8) 271#define ID_AA64ISAR0_EL1_SHA1 __BITS(11,8)
230#define ID_AA64ISAR0_EL1_SHA1_NONE 0 272#define ID_AA64ISAR0_EL1_SHA1_NONE 0
231#define ID_AA64ISAR0_EL1_SHA1_SHA1CPMHSU 1 273#define ID_AA64ISAR0_EL1_SHA1_SHA1CPMHSU 1
232#define ID_AA64ISAR0_EL1_AES __BITS(7,4) 274#define ID_AA64ISAR0_EL1_AES __BITS(7,4)
233#define ID_AA64ISAR0_EL1_AES_NONE 0 275#define ID_AA64ISAR0_EL1_AES_NONE 0
234#define ID_AA64ISAR0_EL1_AES_AES 1 276#define ID_AA64ISAR0_EL1_AES_AES 1
235#define ID_AA64ISAR0_EL1_AES_PMUL 2 277#define ID_AA64ISAR0_EL1_AES_PMUL 2
236 278
237AARCH64REG_READ_INLINE(id_aa64isar1_el1) 279AARCH64REG_READ_INLINE(id_aa64isar1_el1)
238 280
239#define ID_AA64ISAR1_EL1_SPECRES __BITS(43,40) 281#define ID_AA64ISAR1_EL1_SPECRES __BITS(43,40)
240#define ID_AA64ISAR1_EL1_SPECRES_NONE 0 282#define ID_AA64ISAR1_EL1_SPECRES_NONE 0
241#define ID_AA64ISAR1_EL1_SPECRES_SUPPORTED 1 283#define ID_AA64ISAR1_EL1_SPECRES_SUPPORTED 1
@@ -266,26 +308,27 @@ AARCH64REG_READ_INLINE(id_aa64isar1_el1) @@ -266,26 +308,27 @@ AARCH64REG_READ_INLINE(id_aa64isar1_el1)
266#define ID_AA64ISAR1_EL1_API_SUPPORTED 1 308#define ID_AA64ISAR1_EL1_API_SUPPORTED 1
267#define ID_AA64ISAR1_EL1_API_ENHANCED 2 309#define ID_AA64ISAR1_EL1_API_ENHANCED 2
268#define ID_AA64ISAR1_EL1_APA __BITS(7,4) 310#define ID_AA64ISAR1_EL1_APA __BITS(7,4)
269#define ID_AA64ISAR1_EL1_APA_NONE 0 311#define ID_AA64ISAR1_EL1_APA_NONE 0
270#define ID_AA64ISAR1_EL1_APA_QARMA 1 312#define ID_AA64ISAR1_EL1_APA_QARMA 1
271#define ID_AA64ISAR1_EL1_APA_QARMA_ENH 2 313#define ID_AA64ISAR1_EL1_APA_QARMA_ENH 2
272#define ID_AA64ISAR1_EL1_DPB __BITS(3,0) 314#define ID_AA64ISAR1_EL1_DPB __BITS(3,0)
273#define ID_AA64ISAR1_EL1_DPB_NONE 0 315#define ID_AA64ISAR1_EL1_DPB_NONE 0
274#define ID_AA64ISAR1_EL1_DPB_CVAP 1 316#define ID_AA64ISAR1_EL1_DPB_CVAP 1
275#define ID_AA64ISAR1_EL1_DPB_CVAP_CVADP 2 317#define ID_AA64ISAR1_EL1_DPB_CVAP_CVADP 2
276 318
277AARCH64REG_READ_INLINE(id_aa64mmfr0_el1) 319AARCH64REG_READ_INLINE(id_aa64mmfr0_el1)
278 320
 321#define ID_AA64MMFR0_EL1_EXS __BITS(43,40)
279#define ID_AA64MMFR0_EL1_TGRAN4 __BITS(31,28) 322#define ID_AA64MMFR0_EL1_TGRAN4 __BITS(31,28)
280#define ID_AA64MMFR0_EL1_TGRAN4_4KB 0 323#define ID_AA64MMFR0_EL1_TGRAN4_4KB 0
281#define ID_AA64MMFR0_EL1_TGRAN4_NONE 15 324#define ID_AA64MMFR0_EL1_TGRAN4_NONE 15
282#define ID_AA64MMFR0_EL1_TGRAN64 __BITS(24,27) 325#define ID_AA64MMFR0_EL1_TGRAN64 __BITS(24,27)
283#define ID_AA64MMFR0_EL1_TGRAN64_64KB 0 326#define ID_AA64MMFR0_EL1_TGRAN64_64KB 0
284#define ID_AA64MMFR0_EL1_TGRAN64_NONE 15 327#define ID_AA64MMFR0_EL1_TGRAN64_NONE 15
285#define ID_AA64MMFR0_EL1_TGRAN16 __BITS(20,23) 328#define ID_AA64MMFR0_EL1_TGRAN16 __BITS(20,23)
286#define ID_AA64MMFR0_EL1_TGRAN16_NONE 0 329#define ID_AA64MMFR0_EL1_TGRAN16_NONE 0
287#define ID_AA64MMFR0_EL1_TGRAN16_16KB 1 330#define ID_AA64MMFR0_EL1_TGRAN16_16KB 1
288#define ID_AA64MMFR0_EL1_BIGENDEL0 __BITS(16,19) 331#define ID_AA64MMFR0_EL1_BIGENDEL0 __BITS(16,19)
289#define ID_AA64MMFR0_EL1_BIGENDEL0_NONE 0 332#define ID_AA64MMFR0_EL1_BIGENDEL0_NONE 0
290#define ID_AA64MMFR0_EL1_BIGENDEL0_MIX 1 333#define ID_AA64MMFR0_EL1_BIGENDEL0_MIX 1
291#define ID_AA64MMFR0_EL1_SNSMEM __BITS(12,15) 334#define ID_AA64MMFR0_EL1_SNSMEM __BITS(12,15)
@@ -294,26 +337,27 @@ AARCH64REG_READ_INLINE(id_aa64mmfr0_el1) @@ -294,26 +337,27 @@ AARCH64REG_READ_INLINE(id_aa64mmfr0_el1)
294#define ID_AA64MMFR0_EL1_BIGEND __BITS(8,11) 337#define ID_AA64MMFR0_EL1_BIGEND __BITS(8,11)
295#define ID_AA64MMFR0_EL1_BIGEND_NONE 0 338#define ID_AA64MMFR0_EL1_BIGEND_NONE 0
296#define ID_AA64MMFR0_EL1_BIGEND_MIX 1 339#define ID_AA64MMFR0_EL1_BIGEND_MIX 1
297#define ID_AA64MMFR0_EL1_ASIDBITS __BITS(4,7) 340#define ID_AA64MMFR0_EL1_ASIDBITS __BITS(4,7)
298#define ID_AA64MMFR0_EL1_ASIDBITS_8BIT 0 341#define ID_AA64MMFR0_EL1_ASIDBITS_8BIT 0
299#define ID_AA64MMFR0_EL1_ASIDBITS_16BIT 2 342#define ID_AA64MMFR0_EL1_ASIDBITS_16BIT 2
300#define ID_AA64MMFR0_EL1_PARANGE __BITS(0,3) 343#define ID_AA64MMFR0_EL1_PARANGE __BITS(0,3)
301#define ID_AA64MMFR0_EL1_PARANGE_4G 0 344#define ID_AA64MMFR0_EL1_PARANGE_4G 0
302#define ID_AA64MMFR0_EL1_PARANGE_64G 1 345#define ID_AA64MMFR0_EL1_PARANGE_64G 1
303#define ID_AA64MMFR0_EL1_PARANGE_1T 2 346#define ID_AA64MMFR0_EL1_PARANGE_1T 2
304#define ID_AA64MMFR0_EL1_PARANGE_4T 3 347#define ID_AA64MMFR0_EL1_PARANGE_4T 3
305#define ID_AA64MMFR0_EL1_PARANGE_16T 4 348#define ID_AA64MMFR0_EL1_PARANGE_16T 4
306#define ID_AA64MMFR0_EL1_PARANGE_256T 5 349#define ID_AA64MMFR0_EL1_PARANGE_256T 5
 350#define ID_AA64MMFR0_EL1_PARANGE_4P 6
307 351
308AARCH64REG_READ_INLINE(id_aa64mmfr1_el1) 352AARCH64REG_READ_INLINE(id_aa64mmfr1_el1)
309 353
310#define ID_AA64MMFR1_EL1_XNX __BITS(31,28) 354#define ID_AA64MMFR1_EL1_XNX __BITS(31,28)
311#define ID_AA64MMFR1_EL1_XNX_NONE 0 355#define ID_AA64MMFR1_EL1_XNX_NONE 0
312#define ID_AA64MMFR1_EL1_XNX_SUPPORTED 1 356#define ID_AA64MMFR1_EL1_XNX_SUPPORTED 1
313#define ID_AA64MMFR1_EL1_SPECSEI __BITS(27,24) 357#define ID_AA64MMFR1_EL1_SPECSEI __BITS(27,24)
314#define ID_AA64MMFR1_EL1_SPECSEI_NONE 0 358#define ID_AA64MMFR1_EL1_SPECSEI_NONE 0
315#define ID_AA64MMFR1_EL1_SPECSEI_EXTINT 1 359#define ID_AA64MMFR1_EL1_SPECSEI_EXTINT 1
316#define ID_AA64MMFR1_EL1_PAN __BITS(23,20) 360#define ID_AA64MMFR1_EL1_PAN __BITS(23,20)
317#define ID_AA64MMFR1_EL1_PAN_NONE 0 361#define ID_AA64MMFR1_EL1_PAN_NONE 0
318#define ID_AA64MMFR1_EL1_PAN_SUPPORTED 1 362#define ID_AA64MMFR1_EL1_PAN_SUPPORTED 1
319#define ID_AA64MMFR1_EL1_PAN_S1E1 2 363#define ID_AA64MMFR1_EL1_PAN_S1E1 2
@@ -1178,35 +1222,44 @@ AARCH64REG_READ_INLINE(cntv_ctl_el0) @@ -1178,35 +1222,44 @@ AARCH64REG_READ_INLINE(cntv_ctl_el0)
1178AARCH64REG_WRITE_INLINE(cntv_ctl_el0) 1222AARCH64REG_WRITE_INLINE(cntv_ctl_el0)
1179AARCH64REG_READ_INLINE(cntv_cval_el0) 1223AARCH64REG_READ_INLINE(cntv_cval_el0)
1180AARCH64REG_WRITE_INLINE(cntv_cval_el0) 1224AARCH64REG_WRITE_INLINE(cntv_cval_el0)
1181AARCH64REG_READ_INLINE(cntv_tval_el0) 1225AARCH64REG_READ_INLINE(cntv_tval_el0)
1182AARCH64REG_WRITE_INLINE(cntv_tval_el0) 1226AARCH64REG_WRITE_INLINE(cntv_tval_el0)
1183AARCH64REG_READ_INLINE(cntvct_el0) 1227AARCH64REG_READ_INLINE(cntvct_el0)
1184AARCH64REG_WRITE_INLINE(cntvct_el0) 1228AARCH64REG_WRITE_INLINE(cntvct_el0)
1185 1229
1186#define CNTCTL_ISTATUS __BIT(2) // Interrupt Asserted 1230#define CNTCTL_ISTATUS __BIT(2) // Interrupt Asserted
1187#define CNTCTL_IMASK __BIT(1) // Timer Interrupt is Masked 1231#define CNTCTL_IMASK __BIT(1) // Timer Interrupt is Masked
1188#define CNTCTL_ENABLE __BIT(0) // Timer Enabled 1232#define CNTCTL_ENABLE __BIT(0) // Timer Enabled
1189 1233
1190// ID_AA64PFR0_EL1: AArch64 Processor Feature Register 0 1234// ID_AA64PFR0_EL1: AArch64 Processor Feature Register 0
 1235#define ID_AA64PFR0_EL1_SVE __BITS(35,32) // Scalable Vector
 1236#define ID_AA64PFR0_EL1_SVE_NONE 0
 1237#define ID_AA64PFR0_EL1_SVE_IMPL 1
 1238#define ID_AA64PFR0_EL1_RAS __BITS(31,28) // RAS Extension
 1239#define ID_AA64PFR0_EL1_RAS_NONE 0
 1240#define ID_AA64PFR0_EL1_RAS_IMPL 1
 1241#define ID_AA64PFR0_EL1_RAS_ERX 2
1191#define ID_AA64PFR0_EL1_GIC __BITS(24,27) // GIC CPU IF 1242#define ID_AA64PFR0_EL1_GIC __BITS(24,27) // GIC CPU IF
1192#define ID_AA64PFR0_EL1_GIC_SHIFT 24 1243#define ID_AA64PFR0_EL1_GIC_SHIFT 24
1193#define ID_AA64PFR0_EL1_GIC_CPUIF_EN 1 1244#define ID_AA64PFR0_EL1_GIC_CPUIF_EN 1
1194#define ID_AA64PFR0_EL1_GIC_CPUIF_NONE 0 1245#define ID_AA64PFR0_EL1_GIC_CPUIF_NONE 0
1195#define ID_AA64PFR0_EL1_ADVSIMD __BITS(23,20) // SIMD 1246#define ID_AA64PFR0_EL1_ADVSIMD __BITS(23,20) // SIMD
1196#define ID_AA64PFR0_EL1_ADV_SIMD_IMPL 0x0 1247#define ID_AA64PFR0_EL1_ADV_SIMD_IMPL 0x0
 1248#define ID_AA64PFR0_EL1_ADV_SIMD_HP 0x1
1197#define ID_AA64PFR0_EL1_ADV_SIMD_NONE 0xf 1249#define ID_AA64PFR0_EL1_ADV_SIMD_NONE 0xf
1198#define ID_AA64PFR0_EL1_FP __BITS(19,16) // FP 1250#define ID_AA64PFR0_EL1_FP __BITS(19,16) // FP
1199#define ID_AA64PFR0_EL1_FP_IMPL 0x0 1251#define ID_AA64PFR0_EL1_FP_IMPL 0x0
 1252#define ID_AA64PFR0_EL1_FP_HP 0x1
1200#define ID_AA64PFR0_EL1_FP_NONE 0xf 1253#define ID_AA64PFR0_EL1_FP_NONE 0xf
1201#define ID_AA64PFR0_EL1_EL3 __BITS(15,12) // EL3 handling 1254#define ID_AA64PFR0_EL1_EL3 __BITS(15,12) // EL3 handling
1202#define ID_AA64PFR0_EL1_EL3_NONE 0 1255#define ID_AA64PFR0_EL1_EL3_NONE 0
1203#define ID_AA64PFR0_EL1_EL3_64 1 1256#define ID_AA64PFR0_EL1_EL3_64 1
1204#define ID_AA64PFR0_EL1_EL3_64_32 2 1257#define ID_AA64PFR0_EL1_EL3_64_32 2
1205#define ID_AA64PFR0_EL1_EL2 __BITS(11,8) // EL2 handling 1258#define ID_AA64PFR0_EL1_EL2 __BITS(11,8) // EL2 handling
1206#define ID_AA64PFR0_EL1_EL2_NONE 0 1259#define ID_AA64PFR0_EL1_EL2_NONE 0
1207#define ID_AA64PFR0_EL1_EL2_64 1 1260#define ID_AA64PFR0_EL1_EL2_64 1
1208#define ID_AA64PFR0_EL1_EL2_64_32 2 1261#define ID_AA64PFR0_EL1_EL2_64_32 2
1209#define ID_AA64PFR0_EL1_EL1 __BITS(7,4) // EL1 handling 1262#define ID_AA64PFR0_EL1_EL1 __BITS(7,4) // EL1 handling
1210#define ID_AA64PFR0_EL1_EL1_64 1 1263#define ID_AA64PFR0_EL1_EL1_64 1
1211#define ID_AA64PFR0_EL1_EL1_64_32 2 1264#define ID_AA64PFR0_EL1_EL1_64_32 2
1212#define ID_AA64PFR0_EL1_EL0 __BITS(3,0) // EL0 handling 1265#define ID_AA64PFR0_EL1_EL0 __BITS(3,0) // EL0 handling