Commit 82485ccd authored by alex@thinkpad's avatar alex@thinkpad
Browse files

QEMU: workaround to emulate io_trace

(without it, many MMIO events are missed, apparently because of QEMU's TLB cache)

--HG--
branch : qemu
parent 958a8769159c
......@@ -641,10 +641,10 @@ index c2a85c7..98aa94b 100644
DEF_HELPER_1(clear_pstate_ss, void, env)
DEF_HELPER_1(exception_return, void, env)
diff --git a/target-arm/op_helper.c b/target-arm/op_helper.c
index 6cd54c8..8b7ac11 100644
index 6cd54c8..c63269c 100644
--- a/target-arm/op_helper.c
+++ b/target-arm/op_helper.c
@@ -474,6 +474,171 @@ void HELPER(set_cp_reg)(CPUARMState *env, void *rip, uint32_t value)
@@ -474,6 +474,176 @@ void HELPER(set_cp_reg)(CPUARMState *env, void *rip, uint32_t value)
ri->writefn(env, ri, value);
}
......@@ -749,6 +749,11 @@ index 6cd54c8..8b7ac11 100644
+ uint64_t size = 1ull << (((value >> 1) & 0x1F) + 1);
+ uint64_t end = base + size - 1;
+ snprintf(desc, sizeof(desc), "(%08lX - %08lX, 0x%lX)", base, end, size);
+
+ /* workaround to emulate io_trace */
+ /* fixme - proper solution? */
+ ARMCPU *cpu = arm_env_get_cpu(env);
+ tlb_flush(CPU(cpu), 1);
+ }
+
+ if (strncmp(ri->name, "XSCALE", 6) == 0 &&
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment