aboutsummaryrefslogtreecommitdiff
path: root/src/target/armv8_dpm.c
diff options
context:
space:
mode:
authorMatthias Welwarsky <matthias.welwarsky@sysgo.com>2016-10-20 16:23:40 +0200
committerMatthias Welwarsky <matthias.welwarsky@sysgo.com>2017-02-10 14:18:35 +0100
commit9f4b5b509f016a8c78f44d2a668784fa7fc10e3f (patch)
tree3c837d2b7fec74ae4622274baccaea5ee9b9c111 /src/target/armv8_dpm.c
parent0a53bae0ea4007f171802b7d5e65499d4aa18ad0 (diff)
downloadriscv-openocd-9f4b5b509f016a8c78f44d2a668784fa7fc10e3f.zip
riscv-openocd-9f4b5b509f016a8c78f44d2a668784fa7fc10e3f.tar.gz
riscv-openocd-9f4b5b509f016a8c78f44d2a668784fa7fc10e3f.tar.bz2
aarch64: discard async aborts on entering debug state
recommended for Corte-A8 cores, not sure if necessary for ARMv8 based cores as well. Change-Id: Ibcb36170c5fac6a6b132de17f734c70a56919f9b Signed-off-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com>
Diffstat (limited to 'src/target/armv8_dpm.c')
-rw-r--r--src/target/armv8_dpm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/target/armv8_dpm.c b/src/target/armv8_dpm.c
index ee9e1f3..8caa8b6 100644
--- a/src/target/armv8_dpm.c
+++ b/src/target/armv8_dpm.c
@@ -360,9 +360,14 @@ static int dpmv8_instr_write_data_r0_64(struct arm_dpm *dpm,
static int dpmv8_instr_cpsr_sync(struct arm_dpm *dpm)
{
+ int retval;
struct armv8_common *armv8 = dpm->arm->arch_info;
+
/* "Prefetch flush" after modifying execution status in CPSR */
- return dpmv8_exec_opcode(dpm, armv8_opcode(armv8, ARMV8_OPC_DSB_SY), NULL);
+ retval = dpmv8_exec_opcode(dpm, armv8_opcode(armv8, ARMV8_OPC_DSB_SY), &dpm->dscr);
+ if (retval == ERROR_OK)
+ dpmv8_exec_opcode(dpm, armv8_opcode(armv8, ARMV8_OPC_ISB_SY), &dpm->dscr);
+ return retval;
}
static int dpmv8_instr_read_data_dcc(struct arm_dpm *dpm,