mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
target/arm: Allow cpu to configure GM blocksize
Previously we hard-coded the blocksize with GMID_EL1_BS. But the value we choose for -cpu max does not match the value that cortex-a710 uses. Mirror the way we handle dcz_blocksize. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20230811214031.171020-3-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
ae4acc696f
commit
851ec6eba5
7 changed files with 45 additions and 28 deletions
|
@ -7748,10 +7748,6 @@ static const ARMCPRegInfo mte_reginfo[] = {
|
|||
.opc0 = 3, .opc1 = 0, .crn = 1, .crm = 0, .opc2 = 6,
|
||||
.access = PL1_RW, .accessfn = access_mte,
|
||||
.fieldoffset = offsetof(CPUARMState, cp15.gcr_el1) },
|
||||
{ .name = "GMID_EL1", .state = ARM_CP_STATE_AA64,
|
||||
.opc0 = 3, .opc1 = 1, .crn = 0, .crm = 0, .opc2 = 4,
|
||||
.access = PL1_R, .accessfn = access_aa64_tid5,
|
||||
.type = ARM_CP_CONST, .resetvalue = GMID_EL1_BS },
|
||||
{ .name = "TCO", .state = ARM_CP_STATE_AA64,
|
||||
.opc0 = 3, .opc1 = 3, .crn = 4, .crm = 2, .opc2 = 7,
|
||||
.type = ARM_CP_NO_RAW,
|
||||
|
@ -9342,6 +9338,13 @@ void register_cp_regs_for_features(ARMCPU *cpu)
|
|||
* then define only a RAZ/WI version of PSTATE.TCO.
|
||||
*/
|
||||
if (cpu_isar_feature(aa64_mte, cpu)) {
|
||||
ARMCPRegInfo gmid_reginfo = {
|
||||
.name = "GMID_EL1", .state = ARM_CP_STATE_AA64,
|
||||
.opc0 = 3, .opc1 = 1, .crn = 0, .crm = 0, .opc2 = 4,
|
||||
.access = PL1_R, .accessfn = access_aa64_tid5,
|
||||
.type = ARM_CP_CONST, .resetvalue = cpu->gm_blocksize,
|
||||
};
|
||||
define_one_arm_cp_reg(cpu, &gmid_reginfo);
|
||||
define_arm_cp_regs(cpu, mte_reginfo);
|
||||
define_arm_cp_regs(cpu, mte_el0_cacheop_reginfo);
|
||||
} else if (cpu_isar_feature(aa64_mte_insn_reg, cpu)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue