aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rtos/riscv_debug.c4
-rw-r--r--src/rtos/riscv_debug.h4
-rw-r--r--src/target/riscv/riscv-013.c10
3 files changed, 13 insertions, 5 deletions
diff --git a/src/rtos/riscv_debug.c b/src/rtos/riscv_debug.c
index dbd7238..d6458e9 100644
--- a/src/rtos/riscv_debug.c
+++ b/src/rtos/riscv_debug.c
@@ -5,10 +5,8 @@
#include "riscv_debug.h"
#include "target/target.h"
#include "target/riscv/riscv.h"
-#include "rtos.h"
#include "server/gdb_server.h"
-static int riscv_update_threads(struct rtos *rtos);
static int riscv_gdb_thread_packet(struct connection *connection, const char *packet, int packet_size);
static int riscv_gdb_v_packet(struct connection *connection, const char *packet, int packet_size);
@@ -40,7 +38,7 @@ static int riscv_create_rtos(struct target *target)
return JIM_OK;
}
-static int riscv_update_threads(struct rtos *rtos)
+int riscv_update_threads(struct rtos *rtos)
{
LOG_DEBUG("Updating the RISC-V Hart List");
diff --git a/src/rtos/riscv_debug.h b/src/rtos/riscv_debug.h
index bcc7411..539edf2 100644
--- a/src/rtos/riscv_debug.h
+++ b/src/rtos/riscv_debug.h
@@ -1,9 +1,13 @@
#ifndef RTOS__RISCV_H
#define RTOS__RISCV_H
+#include "rtos.h"
+
struct riscv_rtos {
/* The index into the thread list used to handle */
int qs_thread_info_offset;
};
+int riscv_update_threads(struct rtos *rtos);
+
#endif
diff --git a/src/target/riscv/riscv-013.c b/src/target/riscv/riscv-013.c
index f1d4cfb..9053feb 100644
--- a/src/target/riscv/riscv-013.c
+++ b/src/target/riscv/riscv-013.c
@@ -20,6 +20,7 @@
#include "target/breakpoints.h"
#include "helper/time_support.h"
#include "riscv.h"
+#include "rtos/riscv_debug.h"
#include "debug_defines.h"
#include "rtos/rtos.h"
#include "program.h"
@@ -1192,14 +1193,19 @@ static int examine(struct target *target)
riscv_resume_all_harts(target);
target_set_examined(target);
+ if (target->rtos) {
+ riscv_update_threads(target->rtos);
+ }
+
// Some regression suites rely on seeing 'Examined RISC-V core' to know
// when they can connect with gdb/telnet.
// We will need to update those suites if we want to change that text.
LOG_INFO("Examined RISC-V core; found %d harts",
riscv_count_harts(target));
for (int i = 0; i < riscv_count_harts(target); ++i) {
- LOG_INFO(" hart %d: XLEN=%d, program buffer at 0x%" PRIx64, i,
- r->xlen[i], r->debug_buffer_addr[i]);
+ LOG_INFO(" hart %d: XLEN=%d, program buffer at 0x%" PRIx64
+ ", %d triggers", i, r->xlen[i], r->debug_buffer_addr[i],
+ r->trigger_count[i]);
}
return ERROR_OK;
}