target/arm/ptw: Set attributes correctly for MMU disabled data accesses
When the MMU is disabled, data accesses should be Device nGnRnE, Outer Shareable, Untagged. We handle the other cases from AArch64.S1DisabledOutput() correctly but missed this one. Device nGnRnE is memattr == 0, so the only part we were missing was that shareability should be set to 2 for both insn fetches and data accesses. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20230807141514.19075-13-peter.maydell@linaro.org
This commit is contained in:
parent
b02f5e06bc
commit
3d9ca96221
@ -3108,11 +3108,13 @@ static bool get_phys_addr_disabled(CPUARMState *env,
|
||||
}
|
||||
}
|
||||
}
|
||||
if (memattr == 0 && access_type == MMU_INST_FETCH) {
|
||||
if (regime_sctlr(env, mmu_idx) & SCTLR_I) {
|
||||
memattr = 0xee; /* Normal, WT, RA, NT */
|
||||
} else {
|
||||
memattr = 0x44; /* Normal, NC, No */
|
||||
if (memattr == 0) {
|
||||
if (access_type == MMU_INST_FETCH) {
|
||||
if (regime_sctlr(env, mmu_idx) & SCTLR_I) {
|
||||
memattr = 0xee; /* Normal, WT, RA, NT */
|
||||
} else {
|
||||
memattr = 0x44; /* Normal, NC, No */
|
||||
}
|
||||
}
|
||||
shareability = 2; /* outer shareable */
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user