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.har...@zylin.com>
---
 src/target/target.c |   18 ++++++++++++++++++
 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 00d4309..df38c83 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 d6e7431..32fa87a 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. */
-- 
1.7.2.3

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to