target: add -dbgbase option to target configuration
Really a Cortex-A specific option, but there is no system in place to support target specific options currently and there has been no need for such a system until now. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>__archive__
parent
ac6f8f9616
commit
b75bdb7b04
|
@ -3703,6 +3703,7 @@ enum target_cfg_param {
|
||||||
TCFG_VARIANT,
|
TCFG_VARIANT,
|
||||||
TCFG_COREID,
|
TCFG_COREID,
|
||||||
TCFG_CHAIN_POSITION,
|
TCFG_CHAIN_POSITION,
|
||||||
|
TCFG_DBGBASE,
|
||||||
};
|
};
|
||||||
|
|
||||||
static Jim_Nvp nvp_config_opts[] = {
|
static Jim_Nvp nvp_config_opts[] = {
|
||||||
|
@ -3716,6 +3717,7 @@ static Jim_Nvp nvp_config_opts[] = {
|
||||||
{ .name = "-variant", .value = TCFG_VARIANT },
|
{ .name = "-variant", .value = TCFG_VARIANT },
|
||||||
{ .name = "-coreid", .value = TCFG_COREID },
|
{ .name = "-coreid", .value = TCFG_COREID },
|
||||||
{ .name = "-chain-position", .value = TCFG_CHAIN_POSITION },
|
{ .name = "-chain-position", .value = TCFG_CHAIN_POSITION },
|
||||||
|
{ .name = "-dbgbase", .value = TCFG_DBGBASE },
|
||||||
{ .name = NULL, .value = -1 }
|
{ .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);
|
Jim_SetResultString(goi->interp, target->tap->dotted_name, -1);
|
||||||
/* loop for more e*/
|
/* loop for more e*/
|
||||||
break;
|
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) */
|
} /* while (goi->argc) */
|
||||||
|
|
||||||
|
|
|
@ -155,6 +155,11 @@ struct target
|
||||||
* lots of halted/resumed info when stepping in debugger. */
|
* lots of halted/resumed info when stepping in debugger. */
|
||||||
bool halt_issued; /* did we transition to halted state? */
|
bool halt_issued; /* did we transition to halted state? */
|
||||||
long long halt_issued_time; /* Note time when halt was issued */
|
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. */
|
/** Returns the instance-specific name of the specified target. */
|
||||||
|
|
Loading…
Reference in New Issue