summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/target/cortex_a.c17
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,