diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/target/target.c | 18 | ||||
-rw-r--r-- | src/target/target.h | 5 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/target/target.c b/src/target/target.c index 00d4309c..df38c837 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -3703,6 +3703,7 @@ enum target_cfg_param { TCFG_VARIANT, TCFG_COREID, TCFG_CHAIN_POSITION, + TCFG_DBGBASE, }; static Jim_Nvp nvp_config_opts[] = { @@ -3716,6 +3717,7 @@ static Jim_Nvp nvp_config_opts[] = { { .name = "-variant", .value = TCFG_VARIANT }, { .name = "-coreid", .value = TCFG_COREID }, { .name = "-chain-position", .value = TCFG_CHAIN_POSITION }, + { .name = "-dbgbase", .value = TCFG_DBGBASE }, { .name = NULL, .value = -1 } }; @@ -4006,6 +4008,22 @@ static int target_configure(Jim_GetOptInfo *goi, struct target *target) Jim_SetResultString(goi->interp, target->tap->dotted_name, -1); /* loop for more e*/ break; + case TCFG_DBGBASE: + if (goi->isconfigure) { + e = Jim_GetOpt_Wide(goi, &w); + if (e != JIM_OK) { + return e; + } + target->dbgbase = (uint32_t)w; + target->dbgbase_set = true; + } else { + if (goi->argc != 0) { + goto no_params; + } + } + Jim_SetResult(goi->interp, Jim_NewIntObj(goi->interp, target->dbgbase)); + /* loop for more */ + break; } } /* while (goi->argc) */ diff --git a/src/target/target.h b/src/target/target.h index d6e7431e..32fa87a1 100644 --- a/src/target/target.h +++ b/src/target/target.h @@ -155,6 +155,11 @@ struct target * lots of halted/resumed info when stepping in debugger. */ bool halt_issued; /* did we transition to halted state? */ long long halt_issued_time; /* Note time when halt was issued */ + + bool dbgbase_set; /* By default the debug base is not set */ + uint32_t dbgbase; /* Really a Cortex-A specific option, but there is no + system in place to support target specific options + currently. */ }; /** Returns the instance-specific name of the specified target. */ |