target/openrisc: Fix memory reading in debugger
In commit f0655423ca ("target/openrisc: Reorg tlb lookup") data and instruction TLB reads were combined. This, broke debugger reads where we first tried to map using the data tlb then fall back to the instruction tlb. This patch replicates this logic by first requesting a PAGE_READ protection mapping then falling back to PAGE_EXEC. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Stafford Horne <shorne@gmail.com>
This commit is contained in:
parent
7025114b1c
commit
0fd8a106ef
@ -148,7 +148,13 @@ hwaddr openrisc_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
|
|||||||
case SR_DME | SR_IME:
|
case SR_DME | SR_IME:
|
||||||
/* The mmu is definitely enabled. */
|
/* The mmu is definitely enabled. */
|
||||||
excp = get_phys_mmu(cpu, &phys_addr, &prot, addr,
|
excp = get_phys_mmu(cpu, &phys_addr, &prot, addr,
|
||||||
PAGE_EXEC | PAGE_READ | PAGE_WRITE,
|
PAGE_READ,
|
||||||
|
(sr & SR_SM) != 0);
|
||||||
|
if (!excp) {
|
||||||
|
return phys_addr;
|
||||||
|
}
|
||||||
|
excp = get_phys_mmu(cpu, &phys_addr, &prot, addr,
|
||||||
|
PAGE_EXEC,
|
||||||
(sr & SR_SM) != 0);
|
(sr & SR_SM) != 0);
|
||||||
return excp ? -1 : phys_addr;
|
return excp ? -1 : phys_addr;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user