diff options
author | Matthias Welwarsky <matthias.welwarsky@sysgo.com> | 2017-04-06 08:47:03 +0200 |
---|---|---|
committer | Matthias Welwarsky <matthias@welwarsky.de> | 2018-02-07 18:10:52 +0000 |
commit | 78a4b6607ef29b901bffaf506da024bf4d0823a6 (patch) | |
tree | 01bc11f164bdb87699c3133844ca9757c5caafe7 | |
parent | 0056037d68d29c566ce9f527a60828af51c68329 (diff) | |
download | riscv-openocd-78a4b6607ef29b901bffaf506da024bf4d0823a6.zip riscv-openocd-78a4b6607ef29b901bffaf506da024bf4d0823a6.tar.gz riscv-openocd-78a4b6607ef29b901bffaf506da024bf4d0823a6.tar.bz2 |
cortex_a: faster debug init
Don't use atomic dap operations when not necessary
Change-Id: Idc6dcd2bda95f7994852df4ae2a588976f4c9010
Signed-off-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com>
Reviewed-on: http://openocd.zylin.com/4142
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
-rw-r--r-- | src/target/cortex_a.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/target/cortex_a.c b/src/target/cortex_a.c index 5d90e34..672a300 100644 --- a/src/target/cortex_a.c +++ b/src/target/cortex_a.c @@ -206,23 +206,27 @@ static int cortex_a_init_debug_access(struct target *target) /* lock memory-mapped access to debug registers to prevent * software interference */ - retval = mem_ap_write_atomic_u32(armv7a->debug_ap, + retval = mem_ap_write_u32(armv7a->debug_ap, armv7a->debug_base + CPUDBG_LOCKACCESS, 0); if (retval != ERROR_OK) return retval; /* Disable cacheline fills and force cache write-through in debug state */ - retval = mem_ap_write_atomic_u32(armv7a->debug_ap, + retval = mem_ap_write_u32(armv7a->debug_ap, armv7a->debug_base + CPUDBG_DSCCR, 0); if (retval != ERROR_OK) return retval; /* Disable TLB lookup and refill/eviction in debug state */ - retval = mem_ap_write_atomic_u32(armv7a->debug_ap, + retval = mem_ap_write_u32(armv7a->debug_ap, armv7a->debug_base + CPUDBG_DSMCR, 0); if (retval != ERROR_OK) return retval; + retval = dap_run(armv7a->debug_ap->dap); + if (retval != ERROR_OK) + return retval; + /* Enabling of instruction execution in debug mode is done in debug_entry code */ /* Resync breakpoint registers */ |