mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-16 13:34:30 +00:00
arm64/sysreg: Allow a 'Mapping' descriptor for system registers
*EL02 and *_EL12 system registers are actually only accessors for EL0 and EL1 registers accessed from EL2 when HCR_EL2.E2H==1. They do not have fields of their own. To that effect, introduce a 'Mapping' entry, describing which system register an _EL12 register maps to. Implementation wise, this is handled the same was as Fields, which ls only a comment. Acked-by: Mark Rutland <mark.rutland@arm.com> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20241219173351.1123087-2-maz@kernel.org Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
parent
e52163df77
commit
078bc96539
@ -206,7 +206,7 @@ END {
|
||||
|
||||
# Currently this is effectivey a comment, in future we may want to emit
|
||||
# defines for the fields.
|
||||
/^Fields/ && block_current() == "Sysreg" {
|
||||
(/^Fields/ || /^Mapping/) && block_current() == "Sysreg" {
|
||||
expect_fields(2)
|
||||
|
||||
if (next_bit != 63)
|
||||
|
@ -24,8 +24,16 @@
|
||||
# ...
|
||||
# EndEnum
|
||||
|
||||
# Alternatively if multiple registers share the same layout then
|
||||
# a SysregFields block can be used to describe the shared layout
|
||||
# For VHE aliases (*_EL12, *_EL02) of system registers, a Mapping
|
||||
# entry describes the register the alias actually accesses:
|
||||
|
||||
# Sysreg <name_EL12> <op0> <op1> <crn> <crm> <op2>
|
||||
# Mapping <name_EL1>
|
||||
# EndSysreg
|
||||
|
||||
# Where multiple system regsiters are not VHE aliases but share a
|
||||
# common layout, a SysregFields block can be used to describe the
|
||||
# shared layout:
|
||||
|
||||
# SysregFields <fieldsname>
|
||||
# <field>
|
||||
|
Loading…
x
Reference in New Issue
Block a user