All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] target/riscv: Do not hide Sstc CSRs from gdbstub
@ 2026-05-25  2:42 Zephyr Li
  2026-05-25  4:29 ` Chao Liu
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Zephyr Li @ 2026-05-25  2:42 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-riscv, palmer, alistair.francis, liwei1518, zhiwei_liu,
	chao.liu.zevorn, daniel.barboza

The Sstc predicate currently checks both ext_sstc and rdtime_fn. This
causes the gdbstub CSR XML generation to skip Sstc CSRs when rdtime_fn
has not been initialized yet, even if the CPU supports Sstc.

As a result, GDB reports $stimecmp as void with a CPU that exposes the
sstc extension.

Only use ext_sstc for the early existence check, and keep the rdtime_fn
check for non-debugger accesses.

Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3496
Signed-off-by: Zephyr Li <fritchleybohrer@gmail.com>
---

Testing:
    Start QEMU with:
        qemu-system-riscv64 -M virt,aclint=on -cpu max,sstc=true -s -S -nographic

    Before:
        (gdb) p $stimecmp
        $1 = void

    After:
        (gdb) p $stimecmp
        $1 = 0

 target/riscv/csr.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/target/riscv/csr.c b/target/riscv/csr.c
index da366cf562..c17df147f7 100644
--- a/target/riscv/csr.c
+++ b/target/riscv/csr.c
@@ -586,7 +586,7 @@ static RISCVException sstc(CPURISCVState *env, int csrno)
 {
     bool hmode_check = false;
 
-    if (!riscv_cpu_cfg(env)->ext_sstc || !env->rdtime_fn) {
+    if (!riscv_cpu_cfg(env)->ext_sstc) {
         return RISCV_EXCP_ILLEGAL_INST;
     }
 
@@ -603,6 +603,10 @@ static RISCVException sstc(CPURISCVState *env, int csrno)
         return RISCV_EXCP_NONE;
     }
 
+    if (!env->rdtime_fn) {
+        return RISCV_EXCP_ILLEGAL_INST;
+    }
+
     if (env->priv == PRV_M) {
         return RISCV_EXCP_NONE;
     }
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-05-27  0:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-25  2:42 [PATCH] target/riscv: Do not hide Sstc CSRs from gdbstub Zephyr Li
2026-05-25  4:29 ` Chao Liu
2026-05-27  0:05 ` Alistair Francis
2026-05-27  0:09 ` Alistair Francis

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.