Skip to content
  • Mark Rutland's avatar
    arm64: introduce common ESR_ELx_* definitions · cf99a48d
    Mark Rutland authored
    
    
    Currently we have separate ESR_EL{1,2}_* macros, despite the fact that
    the encodings are common. While encodings are architected to refer to
    the current EL or a lower EL, the macros refer to particular ELs (e.g.
    ESR_ELx_EC_DABT_EL0). Having these duplicate definitions is redundant,
    and their naming is misleading.
    
    This patch introduces common ESR_ELx_* macros that can be used in all
    cases, in preparation for later patches which will migrate existing
    users over. Some additional cleanups are made in the process:
    
    * Suffixes for particular exception levelts (e.g. _EL0, _EL1) are
      replaced with more general _LOW and _CUR suffixes, matching the
      architectural intent.
    
    * ESR_ELx_EC_WFx, rather than ESR_ELx_EC_WFI is introduced, as this
      EC encoding covers traps from both WFE and WFI. Similarly,
      ESR_ELx_WFx_ISS_WFE rather than ESR_ELx_EC_WFI_ISS_WFE is introduced.
    
    * Multi-bit fields are given consistently named _SHIFT and _MASK macros.
    
    * UL() is used for compatiblity with assembly files.
    
    * Comments are added for currently unallocated ESR_ELx.EC encodings.
    
    For fields other than ESR_ELx.EC, macros are only implemented for fields
    for which there is already an ESR_EL{1,2}_* macro.
    
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Reviewed-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Peter Maydell <peter.maydell@linaro.org>
    Cc: Will Deacon <will.deacon@arm.com>
    cf99a48d