diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/target/cortex_a.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/target/cortex_a.c b/src/target/cortex_a.c index 82f719ad..5ff6bacb 100644 --- a/src/target/cortex_a.c +++ b/src/target/cortex_a.c @@ -1861,7 +1861,7 @@ static int cortex_a8_examine_first(struct target *target) int i; int retval = ERROR_OK; uint32_t didr, ctypr, ttypr, cpuid; - uint32_t dbgbase, apid; + uint32_t dbgbase; /* We do one extra read to ensure DAP is configured, * we call ahbap_debugport_init(swjdp) instead @@ -1870,10 +1870,17 @@ static int cortex_a8_examine_first(struct target *target) if (retval != ERROR_OK) return retval; - /* Get ROM Table base */ - retval = dap_get_debugbase(swjdp, 1, &dbgbase, &apid); - if (retval != ERROR_OK) - return retval; + if (!target->dbgbase_set) + { + /* Get ROM Table base */ + uint32_t apid; + retval = dap_get_debugbase(swjdp, 1, &dbgbase, &apid); + if (retval != ERROR_OK) + return retval; + } else + { + dbgbase = target->dbgbase; + } /* Lookup 0x15 -- Processor DAP */ retval = dap_lookup_cs_component(swjdp, 1, dbgbase, 0x15, |