diff options
author | Tomas Vanek <vanekt@fbl.cz> | 2022-05-26 11:33:27 +0200 |
---|---|---|
committer | Tomas Vanek <vanekt@fbl.cz> | 2022-08-01 08:58:02 +0000 |
commit | 1d8bc131a69b0216de08a8a0339cd26236448a44 (patch) | |
tree | 18bc963389fff5017f314035ef93e3833024d97c /src/target | |
parent | 82e76262a13299f11d0a73418a8e76558761dccc (diff) | |
download | riscv-openocd-1d8bc131a69b0216de08a8a0339cd26236448a44.zip riscv-openocd-1d8bc131a69b0216de08a8a0339cd26236448a44.tar.gz riscv-openocd-1d8bc131a69b0216de08a8a0339cd26236448a44.tar.bz2 |
target/riscv: add common magic
Add common_magic member to struct riscv_info.
Introduce is_riscv() helper.
Change-Id: I1af05988ad869342ba5dc6d4d0ba0ec6a8bf7bc7
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: https://review.openocd.org/c/openocd/+/6999
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Tim Newsome <tim@sifive.com>
Diffstat (limited to 'src/target')
-rw-r--r-- | src/target/riscv/riscv.c | 3 | ||||
-rw-r--r-- | src/target/riscv/riscv.h | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/target/riscv/riscv.c b/src/target/riscv/riscv.c index ecccead..42fc374 100644 --- a/src/target/riscv/riscv.c +++ b/src/target/riscv/riscv.c @@ -3202,6 +3202,9 @@ struct target_type riscv_target = { void riscv_info_init(struct target *target, struct riscv_info *r) { memset(r, 0, sizeof(*r)); + + r->common_magic = RISCV_COMMON_MAGIC; + r->dtm_version = 1; r->current_hartid = target->coreid; r->version_specific = NULL; diff --git a/src/target/riscv/riscv.h b/src/target/riscv/riscv.h index efbd71c..fcb1380 100644 --- a/src/target/riscv/riscv.h +++ b/src/target/riscv/riscv.h @@ -13,6 +13,8 @@ struct riscv_program; #include "target/semihosting_common.h" #include <helper/command.h> +#define RISCV_COMMON_MAGIC 0x52495356U + /* The register cache is statically allocated. */ #define RISCV_MAX_HARTS 1024 #define RISCV_MAX_REGISTERS 5000 @@ -86,6 +88,8 @@ typedef struct { } range_list_t; struct riscv_info { + unsigned int common_magic; + unsigned dtm_version; struct command_context *cmd_ctx; @@ -269,6 +273,11 @@ static inline struct riscv_info *riscv_info(const struct target *target) } #define RISCV_INFO(R) struct riscv_info *R = riscv_info(target); +static inline bool is_riscv(const struct riscv_info *riscv_info) +{ + return riscv_info->common_magic == RISCV_COMMON_MAGIC; +} + extern uint8_t ir_dtmcontrol[4]; extern struct scan_field select_dtmcontrol; extern uint8_t ir_dbus[4]; |