From: Paul Bartell <pbart...@amazon.com> Revert changes to arm_cpu_get_phys_page_attrs_debug made in commit 4a35855682cebb89f9630b07aa9fd37c4e8c733b.
Commit 4a35855682 modifies the arm_cpu_get_phys_page_attrs_debug function so that it calls get_phys_addr_with_struct rather than get_phys_addr, which leads to a variety of memory access errors when debugging secure state code on qemu ARMv8M targets with gdb. This commit fixes a variety of gdb memory access errors including: "error reading variable" and "Cannot access memory at address" when attempting to read any memory address via gdb. Signed-off-by: Paul Bartell <pbart...@amazon.com> --- target/arm/ptw.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/target/arm/ptw.c b/target/arm/ptw.c index ec3f51782a..5a1339d38f 100644 --- a/target/arm/ptw.c +++ b/target/arm/ptw.c @@ -2999,16 +2999,12 @@ hwaddr arm_cpu_get_phys_page_attrs_debug(CPUState *cs, vaddr addr, { ARMCPU *cpu = ARM_CPU(cs); CPUARMState *env = &cpu->env; - S1Translate ptw = { - .in_mmu_idx = arm_mmu_idx(env), - .in_secure = arm_is_secure(env), - .in_debug = true, - }; GetPhysAddrResult res = {}; ARMMMUFaultInfo fi = {}; + ARMMMUIdx mmu_idx = arm_mmu_idx(env); bool ret; - ret = get_phys_addr_with_struct(env, &ptw, addr, MMU_DATA_LOAD, &res, &fi); + ret = get_phys_addr(env, addr, MMU_DATA_LOAD, mmu_idx, &res, &fi); *attrs = res.f.attrs; if (ret) { -- 2.37.3