• P
    target/arm: Correctly implement ACTLR2, HACTLR2 · f6287c24
    Peter Maydell 提交于
    The ACTLR2 and HACTLR2 AArch32 system registers didn't exist in ARMv7
    or the original ARMv8.  They were later added as optional registers,
    whose presence is signaled by the ID_MMFR4.AC2 field.  From ARMv8.2
    they are mandatory (ie ID_MMFR4.AC2 must be non-zero).
    
    We implemented HACTLR2 in commit 0e0456ab, but we
    incorrectly made it exist for all v8 CPUs, and we didn't implement
    ACTLR2 at all.
    
    Sort this out by implementing both registers only when they are
    supposed to exist, and setting the ID_MMFR4 bit for -cpu max.
    
    Note that this removes HACTLR2 from our Cortex-A53, -A47 and -A72
    CPU models; this is correct, because those CPUs do not implement
    this register.
    
    Fixes: 0e0456abSigned-off-by: NPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
    Message-id: 20200214175116.9164-22-peter.maydell@linaro.org
    f6287c24
helper.c 444.4 KB