• Mark Rutland's avatar
    arm64: cpufeature: treat unknown fields as RES0 · b389d799
    Mark Rutland authored
    Any fields not defined in an arm64_ftr_bits entry are propagated to the
    system-wide register value in init_cpu_ftr_reg(), and while we require
    that these strictly match for the sanity checks, we don't update them in
    update_cpu_ftr_reg().
    
    Generally, the lack of an arm64_ftr_bits entry indicates that the bits
    are currently RES0 (as is the case for the upper 32 bits of all
    supposedly 32-bit registers).
    
    A better default would be to use zero for the system-wide value of
    unallocated bits, making all register checking consistent, and allowing
    for subsequent simplifications to the arm64_ftr_bits arrays.
    
    This patch updates init_cpu_ftr_reg() to treat unallocated bits as RES0
    for the purpose of the system-wide safe value. These bits will still be
    sanity checked with strict match requirements, as is currently the case.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Reviewed-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
    Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    b389d799
cpufeature.c 37.1 KB