aboutsummaryrefslogtreecommitdiff
path: root/src/target/cortex_m.c
diff options
context:
space:
mode:
authorMarc Schink <openocd-dev@marcschink.de>2019-06-14 08:16:19 +0200
committerMatthias Welwarsky <matthias@welwarsky.de>2019-06-19 10:17:38 +0100
commit0d47d85ff5d3c8512d2475097ef8356267c57cda (patch)
tree1ae4349f846a941a8dc38535f5ca4c3ddf0f7096 /src/target/cortex_m.c
parent1f1558e74bd14ba633c49916ac1d0e1867cad4f1 (diff)
downloadriscv-openocd-0d47d85ff5d3c8512d2475097ef8356267c57cda.zip
riscv-openocd-0d47d85ff5d3c8512d2475097ef8356267c57cda.tar.gz
riscv-openocd-0d47d85ff5d3c8512d2475097ef8356267c57cda.tar.bz2
target/cortex_m: Add support for AHB5-AP
The AHB5-AP is implemented in Cortex-M23/33 based devices. Change-Id: I505954a2e2c6462ce0aa96eba1d55b016c5028b9 Signed-off-by: Marc Schink <openocd-dev@marcschink.de> Reviewed-on: http://openocd.zylin.com/5232 Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de> Tested-by: jenkins
Diffstat (limited to 'src/target/cortex_m.c')
-rw-r--r--src/target/cortex_m.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index ed9397a..63603da 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -2093,6 +2093,15 @@ static void cortex_m_dwt_free(struct target *target)
#define MVFR1_DEFAULT_M7_SP 0x11000011
#define MVFR1_DEFAULT_M7_DP 0x12000011
+static int cortex_m_find_mem_ap(struct adiv5_dap *swjdp,
+ struct adiv5_ap **debug_ap)
+{
+ if (dap_find_ap(swjdp, AP_TYPE_AHB3_AP, debug_ap) == ERROR_OK)
+ return ERROR_OK;
+
+ return dap_find_ap(swjdp, AP_TYPE_AHB5_AP, debug_ap);
+}
+
int cortex_m_examine(struct target *target)
{
int retval;
@@ -2107,7 +2116,7 @@ int cortex_m_examine(struct target *target)
if (!armv7m->stlink) {
if (cortex_m->apsel == DP_APSEL_INVALID) {
/* Search for the MEM-AP */
- retval = dap_find_ap(swjdp, AP_TYPE_AHB3_AP, &armv7m->debug_ap);
+ retval = cortex_m_find_mem_ap(swjdp, &armv7m->debug_ap);
if (retval != ERROR_OK) {
LOG_ERROR("Could not find MEM-AP to control the core");
return retval;