1*66847e06SMark Rutland# SPDX-License-Identifier: GPL-2.0-only 2*66847e06SMark Rutland# 3*66847e06SMark Rutland# System register metadata 4*66847e06SMark Rutland 5*66847e06SMark Rutland# Each System register is described by a Sysreg block: 6*66847e06SMark Rutland 7*66847e06SMark Rutland# Sysreg <name> <op0> <op1> <crn> <crm> <op2> 8*66847e06SMark Rutland# <field> 9*66847e06SMark Rutland# ... 10*66847e06SMark Rutland# EndSysreg 11*66847e06SMark Rutland 12*66847e06SMark Rutland# Within a Sysreg block, each field can be described as one of: 13*66847e06SMark Rutland 14*66847e06SMark Rutland# Res0 <msb>[:<lsb>] 15*66847e06SMark Rutland 16*66847e06SMark Rutland# Res1 <msb>[:<lsb>] 17*66847e06SMark Rutland 18*66847e06SMark Rutland# Field <msb>[:<lsb>] <name> 19*66847e06SMark Rutland 20*66847e06SMark Rutland# Enum <msb>[:<lsb>] <name> 21*66847e06SMark Rutland# <enumval> <enumname> 22*66847e06SMark Rutland# ... 23*66847e06SMark Rutland# EndEnum 24*66847e06SMark Rutland 25*66847e06SMark Rutland# Alternatively if multiple registers share the same layout then 26*66847e06SMark Rutland# a SysregFields block can be used to describe the shared layout 27*66847e06SMark Rutland 28*66847e06SMark Rutland# SysregFields <fieldsname> 29*66847e06SMark Rutland# <field> 30*66847e06SMark Rutland# ... 31*66847e06SMark Rutland# EndSysregFields 32*66847e06SMark Rutland 33*66847e06SMark Rutland# and referenced from within the Sysreg: 34*66847e06SMark Rutland 35*66847e06SMark Rutland# Sysreg <name> <op0> <op1> <crn> <crm> <op2> 36*66847e06SMark Rutland# Fields <fieldsname> 37*66847e06SMark Rutland# EndSysreg 38*66847e06SMark Rutland 39*66847e06SMark Rutland# For ID registers we adopt a few conventions for translating the 40*66847e06SMark Rutland# language in the ARM into defines: 41*66847e06SMark Rutland# 42*66847e06SMark Rutland# NI - Not implemented 43*66847e06SMark Rutland# IMP - Implemented 44*66847e06SMark Rutland# 45*66847e06SMark Rutland# In general it is recommended that new enumeration items be named for the 46*66847e06SMark Rutland# feature that introduces them (eg, FEAT_LS64_ACCDATA introduces enumeration 47*66847e06SMark Rutland# item ACCDATA) though it may be more taseful to do something else. 48*66847e06SMark Rutland 49