xref: /linux/arch/arm64/tools/sysreg (revision e33bb6461cd6ca0e0dad8392f0e3ee0179871e7a)
166847e06SMark Rutland# SPDX-License-Identifier: GPL-2.0-only
266847e06SMark Rutland#
366847e06SMark Rutland# System register metadata
466847e06SMark Rutland
566847e06SMark Rutland# Each System register is described by a Sysreg block:
666847e06SMark Rutland
766847e06SMark Rutland# Sysreg 	<name>	<op0> 	<op1>	<crn>	<crm>	<op2>
866847e06SMark Rutland# <field>
966847e06SMark Rutland# ...
1066847e06SMark Rutland# EndSysreg
1166847e06SMark Rutland
1266847e06SMark Rutland# Within a Sysreg block, each field can be described as one of:
1366847e06SMark Rutland
1466847e06SMark Rutland# Res0	<msb>[:<lsb>]
1566847e06SMark Rutland
1666847e06SMark Rutland# Res1	<msb>[:<lsb>]
1766847e06SMark Rutland
1866847e06SMark Rutland# Field	<msb>[:<lsb>]	<name>
1966847e06SMark Rutland
2066847e06SMark Rutland# Enum	<msb>[:<lsb>]	<name>
2166847e06SMark Rutland#	<enumval>	<enumname>
2266847e06SMark Rutland#	...
2366847e06SMark Rutland# EndEnum
2466847e06SMark Rutland
2566847e06SMark Rutland# Alternatively if multiple registers share the same layout then
2666847e06SMark Rutland# a SysregFields block can be used to describe the shared layout
2766847e06SMark Rutland
2866847e06SMark Rutland# SysregFields	<fieldsname>
2966847e06SMark Rutland# <field>
3066847e06SMark Rutland# ...
3166847e06SMark Rutland# EndSysregFields
3266847e06SMark Rutland
3366847e06SMark Rutland# and referenced from within the Sysreg:
3466847e06SMark Rutland
3566847e06SMark Rutland# Sysreg 	<name>	<op0> 	<op1>	<crn>	<crm>	<op2>
3666847e06SMark Rutland# Fields	<fieldsname>
3766847e06SMark Rutland# EndSysreg
3866847e06SMark Rutland
3966847e06SMark Rutland# For ID registers we adopt a few conventions for translating the
4066847e06SMark Rutland# language in the ARM into defines:
4166847e06SMark Rutland#
4266847e06SMark Rutland# NI  - Not implemented
4366847e06SMark Rutland# IMP - Implemented
4466847e06SMark Rutland#
4566847e06SMark Rutland# In general it is recommended that new enumeration items be named for the
4666847e06SMark Rutland# feature that introduces them (eg, FEAT_LS64_ACCDATA introduces enumeration
4766847e06SMark Rutland# item ACCDATA) though it may be more taseful to do something else.
4866847e06SMark Rutland
49*e33bb646SMark BrownSysreg	ID_AA64ISAR0_EL1	3	0	0	6	0
50*e33bb646SMark BrownEnum	63:60	RNDR
51*e33bb646SMark Brown	0b0000	NI
52*e33bb646SMark Brown	0b0001	IMP
53*e33bb646SMark BrownEndEnum
54*e33bb646SMark BrownEnum	59:56	TLB
55*e33bb646SMark Brown	0b0000	NI
56*e33bb646SMark Brown	0b0001	OS
57*e33bb646SMark Brown	0b0010	RANGE
58*e33bb646SMark BrownEndEnum
59*e33bb646SMark BrownEnum	55:52	TS
60*e33bb646SMark Brown	0b0000	NI
61*e33bb646SMark Brown	0b0001	FLAGM
62*e33bb646SMark Brown	0b0010	FLAGM2
63*e33bb646SMark BrownEndEnum
64*e33bb646SMark BrownEnum	51:48	FHM
65*e33bb646SMark Brown	0b0000	NI
66*e33bb646SMark Brown	0b0001	IMP
67*e33bb646SMark BrownEndEnum
68*e33bb646SMark BrownEnum	47:44	DP
69*e33bb646SMark Brown	0b0000	NI
70*e33bb646SMark Brown	0b0001	IMP
71*e33bb646SMark BrownEndEnum
72*e33bb646SMark BrownEnum	43:40	SM4
73*e33bb646SMark Brown	0b0000	NI
74*e33bb646SMark Brown	0b0001	IMP
75*e33bb646SMark BrownEndEnum
76*e33bb646SMark BrownEnum	39:36	SM3
77*e33bb646SMark Brown	0b0000	NI
78*e33bb646SMark Brown	0b0001	IMP
79*e33bb646SMark BrownEndEnum
80*e33bb646SMark BrownEnum	35:32	SHA3
81*e33bb646SMark Brown	0b0000	NI
82*e33bb646SMark Brown	0b0001	IMP
83*e33bb646SMark BrownEndEnum
84*e33bb646SMark BrownEnum	31:28	RDM
85*e33bb646SMark Brown	0b0000	NI
86*e33bb646SMark Brown	0b0001	IMP
87*e33bb646SMark BrownEndEnum
88*e33bb646SMark BrownEnum	27:24	TME
89*e33bb646SMark Brown	0b0000	NI
90*e33bb646SMark Brown	0b0001	IMP
91*e33bb646SMark BrownEndEnum
92*e33bb646SMark BrownEnum	23:20	ATOMIC
93*e33bb646SMark Brown	0b0000	NI
94*e33bb646SMark Brown	0b0010	IMP
95*e33bb646SMark BrownEndEnum
96*e33bb646SMark BrownEnum	19:16	CRC32
97*e33bb646SMark Brown	0b0000	NI
98*e33bb646SMark Brown	0b0001	IMP
99*e33bb646SMark BrownEndEnum
100*e33bb646SMark BrownEnum	15:12	SHA2
101*e33bb646SMark Brown	0b0000	NI
102*e33bb646SMark Brown	0b0001	SHA256
103*e33bb646SMark Brown	0b0010	SHA512
104*e33bb646SMark BrownEndEnum
105*e33bb646SMark BrownEnum	11:8	SHA1
106*e33bb646SMark Brown	0b0000	NI
107*e33bb646SMark Brown	0b0001	IMP
108*e33bb646SMark BrownEndEnum
109*e33bb646SMark BrownEnum	7:4	AES
110*e33bb646SMark Brown	0b0000	NI
111*e33bb646SMark Brown	0b0001	AES
112*e33bb646SMark Brown	0b0010	PMULL
113*e33bb646SMark BrownEndEnum
114*e33bb646SMark BrownRes0	3:0
115*e33bb646SMark BrownEndSysreg
116