xref: /openbmc/linux/arch/arm64/tools/sysreg (revision c37b8700)
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
1880d1322e7SMark BrownSysregFields	SMCR_ELx
1890d1322e7SMark BrownRes0	63:32
1900d1322e7SMark BrownField	31	FA64
1910d1322e7SMark BrownRes0	30:9
1920d1322e7SMark BrownRaz	8:4
1930d1322e7SMark BrownField	3:0	LEN
1940d1322e7SMark BrownEndSysregFields
1950d1322e7SMark Brown
1960d1322e7SMark BrownSysreg	SMCR_EL1	3	0	1	2	6
1970d1322e7SMark BrownFields	SMCR_ELx
1980d1322e7SMark BrownEndSysreg
1990d1322e7SMark Brown
200*c37b8700SMark BrownSysreg	SMIDR_EL1	3	1	0	0	6
201*c37b8700SMark BrownRes0	63:32
202*c37b8700SMark BrownField	31:24	IMPLEMENTER
203*c37b8700SMark BrownField	23:16	REVISION
204*c37b8700SMark BrownField	15	SMPS
205*c37b8700SMark BrownRes0	14:12
206*c37b8700SMark BrownField	11:0	AFFINITY
207*c37b8700SMark BrownEndSysreg
208*c37b8700SMark Brown
2090d1322e7SMark BrownSysreg	SMCR_EL2	3	4	1	2	6
2100d1322e7SMark BrownFields	SMCR_ELx
2110d1322e7SMark BrownEndSysreg
2120d1322e7SMark Brown
2130d1322e7SMark BrownSysreg	SMCR_EL12	3	5	1	2	6
2140d1322e7SMark BrownFields	SMCR_ELx
2150d1322e7SMark BrownEndSysreg
2160d1322e7SMark Brown
21741fde735SMark BrownSysregFields TTBRx_EL1
21841fde735SMark BrownField	63:48	ASID
21941fde735SMark BrownField	47:1	BADDR
22041fde735SMark BrownField	0	CnP
22141fde735SMark BrownEndSysregFields
22241fde735SMark Brown
22341fde735SMark BrownSysreg	TTBR0_EL1	3	0	2	0	0
22441fde735SMark BrownFields	TTBRx_EL1
22541fde735SMark BrownEndSysreg
22641fde735SMark Brown
22741fde735SMark BrownSysreg	TTBR1_EL1	3	0	2	0	1
22841fde735SMark BrownFields	TTBRx_EL1
22941fde735SMark BrownEndSysreg
230