xref: /linux/arch/arm64/tools/sysreg (revision d1b60bed639bd5ea6c4a80d43816e05c16c0ec6c)
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
49e33bb646SMark BrownSysreg	ID_AA64ISAR0_EL1	3	0	0	6	0
50e33bb646SMark BrownEnum	63:60	RNDR
51e33bb646SMark Brown	0b0000	NI
52e33bb646SMark Brown	0b0001	IMP
53e33bb646SMark BrownEndEnum
54e33bb646SMark BrownEnum	59:56	TLB
55e33bb646SMark Brown	0b0000	NI
56e33bb646SMark Brown	0b0001	OS
57e33bb646SMark Brown	0b0010	RANGE
58e33bb646SMark BrownEndEnum
59e33bb646SMark BrownEnum	55:52	TS
60e33bb646SMark Brown	0b0000	NI
61e33bb646SMark Brown	0b0001	FLAGM
62e33bb646SMark Brown	0b0010	FLAGM2
63e33bb646SMark BrownEndEnum
64e33bb646SMark BrownEnum	51:48	FHM
65e33bb646SMark Brown	0b0000	NI
66e33bb646SMark Brown	0b0001	IMP
67e33bb646SMark BrownEndEnum
68e33bb646SMark BrownEnum	47:44	DP
69e33bb646SMark Brown	0b0000	NI
70e33bb646SMark Brown	0b0001	IMP
71e33bb646SMark BrownEndEnum
72e33bb646SMark BrownEnum	43:40	SM4
73e33bb646SMark Brown	0b0000	NI
74e33bb646SMark Brown	0b0001	IMP
75e33bb646SMark BrownEndEnum
76e33bb646SMark BrownEnum	39:36	SM3
77e33bb646SMark Brown	0b0000	NI
78e33bb646SMark Brown	0b0001	IMP
79e33bb646SMark BrownEndEnum
80e33bb646SMark BrownEnum	35:32	SHA3
81e33bb646SMark Brown	0b0000	NI
82e33bb646SMark Brown	0b0001	IMP
83e33bb646SMark BrownEndEnum
84e33bb646SMark BrownEnum	31:28	RDM
85e33bb646SMark Brown	0b0000	NI
86e33bb646SMark Brown	0b0001	IMP
87e33bb646SMark BrownEndEnum
88e33bb646SMark BrownEnum	27:24	TME
89e33bb646SMark Brown	0b0000	NI
90e33bb646SMark Brown	0b0001	IMP
91e33bb646SMark BrownEndEnum
92e33bb646SMark BrownEnum	23:20	ATOMIC
93e33bb646SMark Brown	0b0000	NI
94e33bb646SMark Brown	0b0010	IMP
95e33bb646SMark BrownEndEnum
96e33bb646SMark BrownEnum	19:16	CRC32
97e33bb646SMark Brown	0b0000	NI
98e33bb646SMark Brown	0b0001	IMP
99e33bb646SMark BrownEndEnum
100e33bb646SMark BrownEnum	15:12	SHA2
101e33bb646SMark Brown	0b0000	NI
102e33bb646SMark Brown	0b0001	SHA256
103e33bb646SMark Brown	0b0010	SHA512
104e33bb646SMark BrownEndEnum
105e33bb646SMark BrownEnum	11:8	SHA1
106e33bb646SMark Brown	0b0000	NI
107e33bb646SMark Brown	0b0001	IMP
108e33bb646SMark BrownEndEnum
109e33bb646SMark BrownEnum	7:4	AES
110e33bb646SMark Brown	0b0000	NI
111e33bb646SMark Brown	0b0001	AES
112e33bb646SMark Brown	0b0010	PMULL
113e33bb646SMark BrownEndEnum
114e33bb646SMark BrownRes0	3:0
115e33bb646SMark BrownEndSysreg
11641fde735SMark Brown
1177a41a97bSMark BrownSysreg	SCTLR_EL1	3	0	1	0	0
1187a41a97bSMark BrownField	63	TIDCP
1197a41a97bSMark BrownField	62	SPINMASK
1207a41a97bSMark BrownField	61	NMI
1217a41a97bSMark BrownField	60	EnTP2
1227a41a97bSMark BrownRes0	59:58
1237a41a97bSMark BrownField	57	EPAN
1247a41a97bSMark BrownField	56	EnALS
1257a41a97bSMark BrownField	55	EnAS0
1267a41a97bSMark BrownField	54	EnASR
1277a41a97bSMark BrownField	53	TME
1287a41a97bSMark BrownField	52	TME0
1297a41a97bSMark BrownField	51	TMT
1307a41a97bSMark BrownField	50	TMT0
1317a41a97bSMark BrownField	49:46	TWEDEL
1327a41a97bSMark BrownField	45	TWEDEn
1337a41a97bSMark BrownField	44	DSSBS
1347a41a97bSMark BrownField	43	ATA
1357a41a97bSMark BrownField	42	ATA0
1367a41a97bSMark BrownEnum	41:40	TCF
1377a41a97bSMark Brown	0b00	NONE
1387a41a97bSMark Brown	0b01	SYNC
1397a41a97bSMark Brown	0b10	ASYNC
1407a41a97bSMark Brown	0b11	ASYMM
1417a41a97bSMark BrownEndEnum
1427a41a97bSMark BrownEnum	39:38	TCF0
1437a41a97bSMark Brown	0b00	NONE
1447a41a97bSMark Brown	0b01	SYNC
1457a41a97bSMark Brown	0b10	ASYNC
1467a41a97bSMark Brown	0b11	ASYMM
1477a41a97bSMark BrownEndEnum
1487a41a97bSMark BrownField	37	ITFSB
1497a41a97bSMark BrownField	36	BT1
1507a41a97bSMark BrownField	35	BT0
1517a41a97bSMark BrownRes0	34
1527a41a97bSMark BrownField	33	MSCEn
1537a41a97bSMark BrownField	32	CMOW
1547a41a97bSMark BrownField	31	EnIA
1557a41a97bSMark BrownField	30	EnIB
1567a41a97bSMark BrownField	29	LSMAOE
1577a41a97bSMark BrownField	28	nTLSMD
1587a41a97bSMark BrownField	27	EnDA
1597a41a97bSMark BrownField	26	UCI
1607a41a97bSMark BrownField	25	EE
1617a41a97bSMark BrownField	24	E0E
1627a41a97bSMark BrownField	23	SPAN
1637a41a97bSMark BrownField	22	EIS
1647a41a97bSMark BrownField	21	IESB
1657a41a97bSMark BrownField	20	TSCXT
1667a41a97bSMark BrownField	19	WXN
1677a41a97bSMark BrownField	18	nTWE
1687a41a97bSMark BrownRes0	17
1697a41a97bSMark BrownField	16	nTWI
1707a41a97bSMark BrownField	15	UCT
1717a41a97bSMark BrownField	14	DZE
1727a41a97bSMark BrownField	13	EnDB
1737a41a97bSMark BrownField	12	I
1747a41a97bSMark BrownField	11	EOS
1757a41a97bSMark BrownField	10	EnRCTX
1767a41a97bSMark BrownField	9	UMA
1777a41a97bSMark BrownField	8	SED
1787a41a97bSMark BrownField	7	ITD
1797a41a97bSMark BrownField	6	nAA
1807a41a97bSMark BrownField	5	CP15BEN
1817a41a97bSMark BrownField	4	SA0
1827a41a97bSMark BrownField	3	SA
1837a41a97bSMark BrownField	2	C
1847a41a97bSMark BrownField	1	A
1857a41a97bSMark BrownField	0	M
1867a41a97bSMark BrownEndSysreg
1877a41a97bSMark Brown
188b5c0f105SMark BrownSysregFields	CPACR_ELx
189b5c0f105SMark BrownRes0	63:29
190b5c0f105SMark BrownField	28	TTA
191b5c0f105SMark BrownRes0	27:26
192b5c0f105SMark BrownField	25:24	SMEN
193b5c0f105SMark BrownRes0	23:22
194b5c0f105SMark BrownField	21:20	FPEN
195b5c0f105SMark BrownRes0	19:18
196b5c0f105SMark BrownField	17:16	ZEN
197b5c0f105SMark BrownRes0	15:0
198b5c0f105SMark BrownEndSysregFields
199b5c0f105SMark Brown
200b5c0f105SMark BrownSysreg	CPACR_EL1	3	0	1	0	2
201b5c0f105SMark BrownFields	CPACR_ELx
202b5c0f105SMark BrownEndSysreg
203b5c0f105SMark Brown
2049321f049SMark BrownSysreg	SMPRI_EL1	3	0	1	2	4
2059321f049SMark BrownRes0	63:4
2069321f049SMark BrownField	3:0	PRIORITY
2079321f049SMark BrownEndSysreg
2089321f049SMark Brown
20989e9fb32SMark BrownSysregFields	ZCR_ELx
21089e9fb32SMark BrownRes0	63:9
21189e9fb32SMark BrownRaz	8:4
21289e9fb32SMark BrownField	3:0	LEN
21389e9fb32SMark BrownEndSysregFields
21489e9fb32SMark Brown
21589e9fb32SMark BrownSysreg ZCR_EL1	3	0	1	2	0
21689e9fb32SMark BrownFields ZCR_ELx
21789e9fb32SMark BrownEndSysreg
21889e9fb32SMark Brown
2190d1322e7SMark BrownSysregFields	SMCR_ELx
2200d1322e7SMark BrownRes0	63:32
2210d1322e7SMark BrownField	31	FA64
2220d1322e7SMark BrownRes0	30:9
2230d1322e7SMark BrownRaz	8:4
2240d1322e7SMark BrownField	3:0	LEN
2250d1322e7SMark BrownEndSysregFields
2260d1322e7SMark Brown
2270d1322e7SMark BrownSysreg	SMCR_EL1	3	0	1	2	6
2280d1322e7SMark BrownFields	SMCR_ELx
2290d1322e7SMark BrownEndSysreg
2300d1322e7SMark Brown
231dffdeadeSMark BrownSysreg	FAR_EL1	3	0	6	0	0
232dffdeadeSMark BrownField	63:0	ADDR
233dffdeadeSMark BrownEndSysreg
234dffdeadeSMark Brown
2358c12e22cSMark BrownSysregFields	CONTEXTIDR_ELx
2368c12e22cSMark BrownRes0	63:32
2378c12e22cSMark BrownField	31:0	PROCID
2388c12e22cSMark BrownEndSysregFields
2398c12e22cSMark Brown
2408c12e22cSMark BrownSysreg	CONTEXTIDR_EL1	3	0	13	0	1
2418c12e22cSMark BrownFields	CONTEXTIDR_ELx
2428c12e22cSMark BrownEndSysreg
2438c12e22cSMark Brown
244af65ea97SMark BrownSysreg	CLIDR_EL1	3	1	0	0	1
245af65ea97SMark BrownRes0	63:47
246af65ea97SMark BrownField	46:33	Ttypen
247af65ea97SMark BrownField	32:30	ICB
248af65ea97SMark BrownField	29:27	LoUU
249af65ea97SMark BrownField	26:24	LoC
250af65ea97SMark BrownField	23:21	LoUIS
251af65ea97SMark BrownField	20:18	Ctype7
252af65ea97SMark BrownField	17:15	Ctype6
253af65ea97SMark BrownField	14:12	Ctype5
254af65ea97SMark BrownField	11:9	Ctype4
255af65ea97SMark BrownField	8:6	Ctype3
256af65ea97SMark BrownField	5:3	Ctype2
257af65ea97SMark BrownField	2:0	Ctype1
258af65ea97SMark BrownEndSysreg
259af65ea97SMark Brown
260*d1b60bedSMark BrownSysreg	GMID_EL1	3	1	0	0	4
261*d1b60bedSMark BrownRes0	63:4
262*d1b60bedSMark BrownField	3:0	BS
263*d1b60bedSMark BrownEndSysreg
264*d1b60bedSMark Brown
265c37b8700SMark BrownSysreg	SMIDR_EL1	3	1	0	0	6
266c37b8700SMark BrownRes0	63:32
267c37b8700SMark BrownField	31:24	IMPLEMENTER
268c37b8700SMark BrownField	23:16	REVISION
269c37b8700SMark BrownField	15	SMPS
270c37b8700SMark BrownRes0	14:12
271c37b8700SMark BrownField	11:0	AFFINITY
272c37b8700SMark BrownEndSysreg
273c37b8700SMark Brown
2748bd354b3SMark BrownSysreg	CSSELR_EL1	3	2	0	0	0
2758bd354b3SMark BrownRes0	63:5
2768bd354b3SMark BrownField	4	TnD
2778bd354b3SMark BrownField	3:1	Level
2788bd354b3SMark BrownField	0	InD
2798bd354b3SMark BrownEndSysreg
2808bd354b3SMark Brown
2819a3634d0SMark BrownSysreg	CTR_EL0	3	3	0	0	1
2829a3634d0SMark BrownRes0	63:38
2839a3634d0SMark BrownField	37:32	TminLine
2849a3634d0SMark BrownRes1	31
2859a3634d0SMark BrownRes0	30
2869a3634d0SMark BrownField	29	DIC
2879a3634d0SMark BrownField	28	IDC
2889a3634d0SMark BrownField	27:24	CWG
2899a3634d0SMark BrownField	23:20	ERG
2909a3634d0SMark BrownField	19:16	DminLine
2919a3634d0SMark BrownEnum	15:14	L1Ip
2929a3634d0SMark Brown	0b00	VPIPT
2939a3634d0SMark Brown	# This is named as AIVIVT in the ARM but documented as reserved
2949a3634d0SMark Brown	0b01	RESERVED
2959a3634d0SMark Brown	0b10	VIPT
2969a3634d0SMark Brown	0b11	PIPT
2979a3634d0SMark BrownEndEnum
2989a3634d0SMark BrownRes0	13:4
2999a3634d0SMark BrownField	3:0	IminLine
3009a3634d0SMark BrownEndSysreg
3019a3634d0SMark Brown
3025589083dSMark BrownSysreg	DCZID_EL0	3	3	0	0	7
3035589083dSMark BrownRes0	63:5
3045589083dSMark BrownField	4	DZP
3055589083dSMark BrownField	3:0	BS
3065589083dSMark BrownEndSysreg
3075589083dSMark Brown
30811e12a91SMark BrownSysreg	SVCR	3	3	4	2	2
30911e12a91SMark BrownRes0	63:2
31011e12a91SMark BrownField	1	ZA
31111e12a91SMark BrownField	0	SM
31211e12a91SMark BrownEndSysreg
31311e12a91SMark Brown
31489e9fb32SMark BrownSysreg	ZCR_EL2	3	4	1	2	0
31589e9fb32SMark BrownFields	ZCR_ELx
31689e9fb32SMark BrownEndSysreg
31789e9fb32SMark Brown
3188e053810SMark BrownSysreg	SMPRIMAP_EL2	3	4	1	2	5
3198e053810SMark BrownField	63:60	P15
3208e053810SMark BrownField	59:56	P14
3218e053810SMark BrownField	55:52	P13
3228e053810SMark BrownField	51:48	P12
3238e053810SMark BrownField	47:44	P11
3248e053810SMark BrownField	43:40	P10
3258e053810SMark BrownField	39:36	F9
3268e053810SMark BrownField	35:32	P8
3278e053810SMark BrownField	31:28	P7
3288e053810SMark BrownField	27:24	P6
3298e053810SMark BrownField	23:20	P5
3308e053810SMark BrownField	19:16	P4
3318e053810SMark BrownField	15:12	P3
3328e053810SMark BrownField	11:8	P2
3338e053810SMark BrownField	7:4	P1
3348e053810SMark BrownField	3:0	P0
3358e053810SMark BrownEndSysreg
3368e053810SMark Brown
3370d1322e7SMark BrownSysreg	SMCR_EL2	3	4	1	2	6
3380d1322e7SMark BrownFields	SMCR_ELx
3390d1322e7SMark BrownEndSysreg
3400d1322e7SMark Brown
34101baa57aSMark BrownSysreg	DACR32_EL2	3	4	3	0	0
34201baa57aSMark BrownRes0	63:32
34301baa57aSMark BrownField	31:30	D15
34401baa57aSMark BrownField	29:28	D14
34501baa57aSMark BrownField	27:26	D13
34601baa57aSMark BrownField	25:24	D12
34701baa57aSMark BrownField	23:22	D11
34801baa57aSMark BrownField	21:20	D10
34901baa57aSMark BrownField	19:18	D9
35001baa57aSMark BrownField	17:16	D8
35101baa57aSMark BrownField	15:14	D7
35201baa57aSMark BrownField	13:12	D6
35301baa57aSMark BrownField	11:10	D5
35401baa57aSMark BrownField	9:8	D4
35501baa57aSMark BrownField	7:6	D3
35601baa57aSMark BrownField	5:4	D2
35701baa57aSMark BrownField	3:2	D1
35801baa57aSMark BrownField	1:0	D0
35901baa57aSMark BrownEndSysreg
36001baa57aSMark Brown
361dffdeadeSMark BrownSysreg	FAR_EL2	3	4	6	0	0
362dffdeadeSMark BrownField	63:0	ADDR
363dffdeadeSMark BrownEndSysreg
364dffdeadeSMark Brown
3658c12e22cSMark BrownSysreg	CONTEXTIDR_EL2	3	4	13	0	1
3668c12e22cSMark BrownFields	CONTEXTIDR_ELx
3678c12e22cSMark BrownEndSysreg
3688c12e22cSMark Brown
369b5c0f105SMark BrownSysreg	CPACR_EL12	3	5	1	0	2
370b5c0f105SMark BrownFields	CPACR_ELx
371b5c0f105SMark BrownEndSysreg
372b5c0f105SMark Brown
37389e9fb32SMark BrownSysreg	ZCR_EL12	3	5	1	2	0
37489e9fb32SMark BrownFields	ZCR_ELx
37589e9fb32SMark BrownEndSysreg
37689e9fb32SMark Brown
3770d1322e7SMark BrownSysreg	SMCR_EL12	3	5	1	2	6
3780d1322e7SMark BrownFields	SMCR_ELx
3790d1322e7SMark BrownEndSysreg
3800d1322e7SMark Brown
381dffdeadeSMark BrownSysreg	FAR_EL12	3	5	6	0	0
382dffdeadeSMark BrownField	63:0	ADDR
383dffdeadeSMark BrownEndSysreg
384dffdeadeSMark Brown
3858c12e22cSMark BrownSysreg	CONTEXTIDR_EL12	3	5	13	0	1
3868c12e22cSMark BrownFields	CONTEXTIDR_ELx
3878c12e22cSMark BrownEndSysreg
3888c12e22cSMark Brown
38941fde735SMark BrownSysregFields TTBRx_EL1
39041fde735SMark BrownField	63:48	ASID
39141fde735SMark BrownField	47:1	BADDR
39241fde735SMark BrownField	0	CnP
39341fde735SMark BrownEndSysregFields
39441fde735SMark Brown
39541fde735SMark BrownSysreg	TTBR0_EL1	3	0	2	0	0
39641fde735SMark BrownFields	TTBRx_EL1
39741fde735SMark BrownEndSysreg
39841fde735SMark Brown
39941fde735SMark BrownSysreg	TTBR1_EL1	3	0	2	0	1
40041fde735SMark BrownFields	TTBRx_EL1
40141fde735SMark BrownEndSysreg
402