mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-30 05:21:55 -06:00
target/riscv: csr: Hook debug CSR read/write
This adds debug CSR read/write support to the RISC-V CSR RW table. Signed-off-by: Bin Meng <bin.meng@windriver.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20220421003324.1134983-4-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
1acdb3b013
commit
b6092544fc
4 changed files with 90 additions and 0 deletions
|
@ -412,3 +412,30 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, CPUWatchpoint *wp)
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
void riscv_trigger_init(CPURISCVState *env)
|
||||
{
|
||||
target_ulong type2 = trigger_type(env, TRIGGER_TYPE_AD_MATCH);
|
||||
int i;
|
||||
|
||||
/* type 2 triggers */
|
||||
for (i = 0; i < TRIGGER_TYPE2_NUM; i++) {
|
||||
/*
|
||||
* type = TRIGGER_TYPE_AD_MATCH
|
||||
* dmode = 0 (both debug and M-mode can write tdata)
|
||||
* maskmax = 0 (unimplemented, always 0)
|
||||
* sizehi = 0 (match against any size, RV64 only)
|
||||
* hit = 0 (unimplemented, always 0)
|
||||
* select = 0 (always 0, perform match on address)
|
||||
* timing = 0 (always 0, trigger before instruction)
|
||||
* sizelo = 0 (match against any size)
|
||||
* action = 0 (always 0, raise a breakpoint exception)
|
||||
* chain = 0 (unimplemented, always 0)
|
||||
* match = 0 (always 0, when any compare value equals tdata2)
|
||||
*/
|
||||
env->type2_trig[i].mcontrol = type2;
|
||||
env->type2_trig[i].maddress = 0;
|
||||
env->type2_trig[i].bp = NULL;
|
||||
env->type2_trig[i].wp = NULL;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue