aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJesse Sheridan <jesse.sheridan@gmail.com>2021-06-16 10:38:00 -0700
committerAntonio Borneo <borneo.antonio@gmail.com>2021-06-26 14:38:59 +0100
commit0ef5144c32ac60ddf3bb005deb3136015e42ae4f (patch)
tree55108dcebd8ac006c1123e2277f7aabd27b4f8aa /src
parentaf39ee607cd6ce6f3d809bd715892f2df1bf552a (diff)
downloadriscv-openocd-0ef5144c32ac60ddf3bb005deb3136015e42ae4f.zip
riscv-openocd-0ef5144c32ac60ddf3bb005deb3136015e42ae4f.tar.gz
riscv-openocd-0ef5144c32ac60ddf3bb005deb3136015e42ae4f.tar.bz2
target/riscv: Implement get_gdb_arch()
Change-Id: I5f4ab5243104df41031950682f688f2448a09b17 Signed-off-by: Jesse Sheridan <jesse.sheridan@gmail.com> Reviewed-on: http://openocd.zylin.com/6322 Tested-by: jenkins Reviewed-by: Tim Newsome <tim@sifive.com> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/target/riscv/riscv.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/target/riscv/riscv.c b/src/target/riscv/riscv.c
index 37bc0cc..4b0bac5 100644
--- a/src/target/riscv/riscv.c
+++ b/src/target/riscv/riscv.c
@@ -1614,6 +1614,18 @@ static int riscv_write_memory(struct target *target, target_addr_t address,
return tt->write_memory(target, address, size, count, buffer);
}
+const char *riscv_get_gdb_arch(struct target *target)
+{
+ switch (riscv_xlen(target)) {
+ case 32:
+ return "riscv:rv32";
+ case 64:
+ return "riscv:rv64";
+ }
+ LOG_ERROR("Unsupported xlen: %d", riscv_xlen(target));
+ return NULL;
+}
+
static int riscv_get_gdb_reg_list_internal(struct target *target,
struct reg **reg_list[], int *reg_list_size,
enum target_register_class reg_class, bool read)
@@ -2848,6 +2860,7 @@ struct target_type riscv_target = {
.mmu = riscv_mmu,
.virt2phys = riscv_virt2phys,
+ .get_gdb_arch = riscv_get_gdb_arch,
.get_gdb_reg_list = riscv_get_gdb_reg_list,
.get_gdb_reg_list_noread = riscv_get_gdb_reg_list_noread,