Skip to content

Commit cea08f2

Browse files
brooniectmarinas
authored andcommitted
arm64/sysreg: Convert ID_AA64PFR0_EL1 to automatic generation
Automatically generate the constants for ID_AA64PFR0_EL1 as per DDI0487I.a, no functional changes. The generic defines for the ELx fields are left in place as they remain useful. Signed-off-by: Mark Brown <[email protected]> Reviewed-by: Kristina Martsenko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Catalin Marinas <[email protected]>
1 parent cfa3a6c commit cea08f2

File tree

2 files changed

+76
-24
lines changed

2 files changed

+76
-24
lines changed

arch/arm64/include/asm/sysreg.h

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,6 @@
190190
#define SYS_MVFR1_EL1 sys_reg(3, 0, 0, 3, 1)
191191
#define SYS_MVFR2_EL1 sys_reg(3, 0, 0, 3, 2)
192192

193-
#define SYS_ID_AA64PFR0_EL1 sys_reg(3, 0, 0, 4, 0)
194193
#define SYS_ID_AA64PFR1_EL1 sys_reg(3, 0, 0, 4, 1)
195194

196195
#define SYS_ID_AA64DFR0_EL1 sys_reg(3, 0, 0, 5, 0)
@@ -681,29 +680,6 @@
681680
#define MAIR_ATTRIDX(attr, idx) ((attr) << ((idx) * 8))
682681

683682
/* id_aa64pfr0 */
684-
#define ID_AA64PFR0_EL1_CSV3_SHIFT 60
685-
#define ID_AA64PFR0_EL1_CSV2_SHIFT 56
686-
#define ID_AA64PFR0_EL1_DIT_SHIFT 48
687-
#define ID_AA64PFR0_EL1_AMU_SHIFT 44
688-
#define ID_AA64PFR0_EL1_MPAM_SHIFT 40
689-
#define ID_AA64PFR0_EL1_SEL2_SHIFT 36
690-
#define ID_AA64PFR0_EL1_SVE_SHIFT 32
691-
#define ID_AA64PFR0_EL1_RAS_SHIFT 28
692-
#define ID_AA64PFR0_EL1_GIC_SHIFT 24
693-
#define ID_AA64PFR0_EL1_AdvSIMD_SHIFT 20
694-
#define ID_AA64PFR0_EL1_FP_SHIFT 16
695-
#define ID_AA64PFR0_EL1_EL3_SHIFT 12
696-
#define ID_AA64PFR0_EL1_EL2_SHIFT 8
697-
#define ID_AA64PFR0_EL1_EL1_SHIFT 4
698-
#define ID_AA64PFR0_EL1_EL0_SHIFT 0
699-
700-
#define ID_AA64PFR0_EL1_AMU_IMP 0x1
701-
#define ID_AA64PFR0_EL1_SVE_IMP 0x1
702-
#define ID_AA64PFR0_EL1_RAS_IMP 0x1
703-
#define ID_AA64PFR0_EL1_RAS_V1P1 0x2
704-
#define ID_AA64PFR0_EL1_FP_NI 0xf
705-
#define ID_AA64PFR0_EL1_FP_IMP 0x0
706-
#define ID_AA64PFR0_EL1_AdvSIMD_NI 0xf
707683
#define ID_AA64PFR0_EL1_ELx_64BIT_ONLY 0x1
708684
#define ID_AA64PFR0_EL1_ELx_32BIT_64BIT 0x2
709685

arch/arm64/tools/sysreg

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,82 @@
4646
# feature that introduces them (eg, FEAT_LS64_ACCDATA introduces enumeration
4747
# item ACCDATA) though it may be more taseful to do something else.
4848

49+
Sysreg ID_AA64PFR0_EL1 3 0 0 4 0
50+
Enum 63:60 CSV3
51+
0b0000 NI
52+
0b0001 IMP
53+
EndEnum
54+
Enum 59:56 CSV2
55+
0b0000 NI
56+
0b0001 IMP
57+
0b0010 CSV2_2
58+
0b0011 CSV2_3
59+
EndEnum
60+
Enum 55:52 RME
61+
0b0000 NI
62+
0b0001 IMP
63+
EndEnum
64+
Enum 51:48 DIT
65+
0b0000 NI
66+
0b0001 IMP
67+
EndEnum
68+
Enum 47:44 AMU
69+
0b0000 NI
70+
0b0001 IMP
71+
0b0010 V1P1
72+
EndEnum
73+
Enum 43:40 MPAM
74+
0b0000 0
75+
0b0001 1
76+
EndEnum
77+
Enum 39:36 SEL2
78+
0b0000 NI
79+
0b0001 IMP
80+
EndEnum
81+
Enum 35:32 SVE
82+
0b0000 NI
83+
0b0001 IMP
84+
EndEnum
85+
Enum 31:28 RAS
86+
0b0000 NI
87+
0b0001 IMP
88+
0b0010 V1P1
89+
EndEnum
90+
Enum 27:24 GIC
91+
0b0000 NI
92+
0b0001 IMP
93+
0b0010 V4P1
94+
EndEnum
95+
Enum 23:20 AdvSIMD
96+
0b0000 IMP
97+
0b0001 FP16
98+
0b1111 NI
99+
EndEnum
100+
Enum 19:16 FP
101+
0b0000 IMP
102+
0b0001 FP16
103+
0b1111 NI
104+
EndEnum
105+
Enum 15:12 EL3
106+
0b0000 NI
107+
0b0001 IMP
108+
0b0010 AARCH32
109+
EndEnum
110+
Enum 11:8 EL2
111+
0b0000 NI
112+
0b0001 IMP
113+
0b0010 AARCH32
114+
EndEnum
115+
Enum 7:4 EL1
116+
0b0001 IMP
117+
0b0010 AARCH32
118+
EndEnum
119+
Enum 3:0 EL0
120+
0b0001 IMP
121+
0b0010 AARCH32
122+
EndEnum
123+
EndSysreg
124+
49125
Sysreg ID_AA64ZFR0_EL1 3 0 0 4 4
50126
Res0 63:60
51127
Enum 59:56 F64MM

0 commit comments

Comments
 (0)