Message ID | 20230213180215.1524938-14-bmeng@tinylab.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/riscv: Various fixes to gdbstub and CSR access | expand |
On 2023/2/14 09:09, Bin Meng wrote: > At present seed CSR is not reported in the CSR XML hence gdb cannot > access it. > > Fix it by addding a debugger check in its predicate() routine. typo: adding Otherwise, Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn> Regards, Weiwei Li > > Signed-off-by: Bin Meng <bmeng@tinylab.org> > --- > > target/riscv/csr.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/target/riscv/csr.c b/target/riscv/csr.c > index 515b05348b..f1075b5728 100644 > --- a/target/riscv/csr.c > +++ b/target/riscv/csr.c > @@ -458,6 +458,10 @@ static RISCVException seed(CPURISCVState *env, int csrno) > } > > #if !defined(CONFIG_USER_ONLY) > + if (env->debugger) { > + return RISCV_EXCP_NONE; > + } > + > /* > * With a CSR read-write instruction: > * 1) The seed CSR is always available in machine mode as normal.
On 2023/2/14 9:09, Bin Meng wrote: > At present seed CSR is not reported in the CSR XML hence gdb cannot > access it. > > Fix it by addding a debugger check in its predicate() routine. > > Signed-off-by: Bin Meng <bmeng@tinylab.org> > --- > > target/riscv/csr.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/target/riscv/csr.c b/target/riscv/csr.c > index 515b05348b..f1075b5728 100644 > --- a/target/riscv/csr.c > +++ b/target/riscv/csr.c > @@ -458,6 +458,10 @@ static RISCVException seed(CPURISCVState *env, int csrno) > } > > #if !defined(CONFIG_USER_ONLY) > + if (env->debugger) { > + return RISCV_EXCP_NONE; > + } > + Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> Zhiwei > /* > * With a CSR read-write instruction: > * 1) The seed CSR is always available in machine mode as normal.
diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 515b05348b..f1075b5728 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -458,6 +458,10 @@ static RISCVException seed(CPURISCVState *env, int csrno) } #if !defined(CONFIG_USER_ONLY) + if (env->debugger) { + return RISCV_EXCP_NONE; + } + /* * With a CSR read-write instruction: * 1) The seed CSR is always available in machine mode as normal.
At present seed CSR is not reported in the CSR XML hence gdb cannot access it. Fix it by addding a debugger check in its predicate() routine. Signed-off-by: Bin Meng <bmeng@tinylab.org> --- target/riscv/csr.c | 4 ++++ 1 file changed, 4 insertions(+)