• I
    arm64: trap to EL1 accesses to AMU counters from EL0 · 87a1f063
    Ionela Voinescu 提交于
    The activity monitors extension is an optional extension introduced
    by the ARMv8.4 CPU architecture. In order to access the activity
    monitors counters safely, if desired, the kernel should detect the
    presence of the extension through the feature register, and mediate
    the access.
    
    Therefore, disable direct accesses to activity monitors counters
    from EL0 (userspace) and trap them to EL1 (kernel).
    
    To be noted that the ARM64_AMU_EXTN kernel config does not have an
    effect on this code. Given that the amuserenr_el0 resets to an
    UNKNOWN value, setting the trap of EL0 accesses to EL1 is always
    attempted for safety and security considerations. Therefore firmware
    should still ensure accesses to AMU registers are not trapped in
    EL2/EL3 as this code cannot be bypassed if the CPU implements the
    Activity Monitors Unit.
    Signed-off-by: NIonela Voinescu <ionela.voinescu@arm.com>
    Reviewed-by: NJames Morse <james.morse@arm.com>
    Reviewed-by: NValentin Schneider <valentin.schneider@arm.com>
    Reviewed-by: NSuzuki K Poulose <suzuki.poulose@arm.com>
    Cc: Steve Capper <steve.capper@arm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
    87a1f063
proc.S 10.7 KB