target/arm: Set TCR_EL1.TSZ for user-only

Set this as the kernel would, to 48 bits, to keep the computation
of the address space correct for PAuth.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220301215958.157011-3-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Richard Henderson 2022-03-01 11:59:42 -10:00 committed by Peter Maydell
parent d5e51efb9f
commit 691f1ffdfc

View File

@ -206,10 +206,11 @@ static void arm_cpu_reset(DeviceState *dev)
aarch64_sve_zcr_get_valid_len(cpu, cpu->sve_default_vq - 1); aarch64_sve_zcr_get_valid_len(cpu, cpu->sve_default_vq - 1);
} }
/* /*
* Enable 48-bit address space (TODO: take reserved_va into account).
* Enable TBI0 but not TBI1. * Enable TBI0 but not TBI1.
* Note that this must match useronly_clean_ptr. * Note that this must match useronly_clean_ptr.
*/ */
env->cp15.tcr_el[1].raw_tcr = (1ULL << 37); env->cp15.tcr_el[1].raw_tcr = 5 | (1ULL << 37);
/* Enable MTE */ /* Enable MTE */
if (cpu_isar_feature(aa64_mte, cpu)) { if (cpu_isar_feature(aa64_mte, cpu)) {