From 3b8333bd3f33ce263245e67706e2bf9e30dd27d0 Mon Sep 17 00:00:00 2001 From: Erhan Kurubas Date: Tue, 4 Oct 2022 22:54:58 +0200 Subject: [PATCH] target/xtensa: fill register number field in the cache Currently 'number' field is zero in the register cache and this causes an issue on `rtos get_thread_reg_list` calls. Signed-off-by: Erhan Kurubas Change-Id: Iaef11e01f55d012969bbc1933f82847d5e02fec5 Reviewed-on: https://review.openocd.org/c/openocd/+/7246 Tested-by: jenkins Reviewed-by: Ian Thompson Reviewed-by: Antonio Borneo --- src/target/xtensa/xtensa.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/target/xtensa/xtensa.c b/src/target/xtensa/xtensa.c index faff0afa8f..c1b5f43c80 100644 --- a/src/target/xtensa/xtensa.c +++ b/src/target/xtensa/xtensa.c @@ -2503,6 +2503,12 @@ static int xtensa_build_reg_cache(struct target *target) unsigned int j; for (j = 0; j < reg_cache->num_regs; j++) { if (!strcmp(reg_cache->reg_list[j].name, xtensa->contiguous_regs_desc[i]->name)) { + /* Register number field is not filled above. + Here we are assigning the corresponding index from the contiguous reg list. + These indexes are in the same order with gdb g-packet request/response. + Some more changes may be required for sparse reg lists. + */ + reg_cache->reg_list[j].number = i; xtensa->contiguous_regs_list[i] = &(reg_cache->reg_list[j]); LOG_TARGET_DEBUG(target, "POPULATE contiguous regs list: %-16s, dbreg_num 0x%04x", -- 2.30.2