summaryrefslogtreecommitdiffstats
path: root/target-xtensa/op_helper.c
diff options
context:
space:
mode:
authorPeter Maydell2015-03-08 15:32:38 +0100
committerPeter Maydell2015-03-08 15:32:38 +0100
commit6608c7e9eb65727524f6f590b1e716ec6e7877d4 (patch)
treed8134e22149677448083fb726ad464ef9a39fc16 /target-xtensa/op_helper.c
parentMerge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into staging (diff)
parenttarget-xtensa: xtfpga: fix ml605 flash size (diff)
downloadqemu-6608c7e9eb65727524f6f590b1e716ec6e7877d4.tar.gz
qemu-6608c7e9eb65727524f6f590b1e716ec6e7877d4.tar.xz
qemu-6608c7e9eb65727524f6f590b1e716ec6e7877d4.zip
Merge remote-tracking branch 'remotes/xtensa/tags/20150307-xtensa' into staging
Xtensa updates: - implement do_unassigned_access callback; - fix ML605 xtfpga FLASH size. # gpg: Signature made Sat Mar 7 12:35:05 2015 GMT using RSA key ID F83FA044 # gpg: Good signature from "Max Filippov <max.filippov@cogentembedded.com>" # gpg: aka "Max Filippov <jcmvbkbc@gmail.com>" * remotes/xtensa/tags/20150307-xtensa: target-xtensa: xtfpga: fix ml605 flash size target-xtensa: implement do_unassigned_access callback hw/xtensa: allow reads/writes in the system I/O region Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target-xtensa/op_helper.c')
-rw-r--r--target-xtensa/op_helper.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/target-xtensa/op_helper.c b/target-xtensa/op_helper.c
index 49e86343ed..be657e615d 100644
--- a/target-xtensa/op_helper.c
+++ b/target-xtensa/op_helper.c
@@ -71,6 +71,20 @@ void tlb_fill(CPUState *cs,
}
}
+void xtensa_cpu_do_unassigned_access(CPUState *cs, hwaddr addr,
+ bool is_write, bool is_exec, int opaque,
+ unsigned size)
+{
+ XtensaCPU *cpu = XTENSA_CPU(cs);
+ CPUXtensaState *env = &cpu->env;
+
+ HELPER(exception_cause_vaddr)(env, env->pc,
+ is_exec ?
+ INSTR_PIF_ADDR_ERROR_CAUSE :
+ LOAD_STORE_PIF_ADDR_ERROR_CAUSE,
+ is_exec ? addr : cs->mem_io_vaddr);
+}
+
static void tb_invalidate_virtual_addr(CPUXtensaState *env, uint32_t vaddr)
{
uint32_t paddr;