diff options
| author | Frank Chang | 2022-09-09 15:42:14 +0200 |
|---|---|---|
| committer | Alistair Francis | 2022-09-27 03:23:57 +0200 |
| commit | c32461d8eeb17490b1b1e969e2ce8f1ecd83bfbb (patch) | |
| tree | 7600babf69526ec76a242de70ff16c38fda5d553 | |
| parent | target/riscv: debug: Create common trigger actions function (diff) | |
| download | qemu-c32461d8eeb17490b1b1e969e2ce8f1ecd83bfbb.tar.gz qemu-c32461d8eeb17490b1b1e969e2ce8f1ecd83bfbb.tar.xz qemu-c32461d8eeb17490b1b1e969e2ce8f1ecd83bfbb.zip | |
target/riscv: debug: Check VU/VS modes for type 2 trigger
Type 2 trigger cannot be fired in VU/VS modes.
Signed-off-by: Frank Chang <frank.chang@sifive.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Message-Id: <20220909134215.1843865-8-bmeng.cn@gmail.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
| -rw-r--r-- | target/riscv/debug.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/target/riscv/debug.c b/target/riscv/debug.c index 7a8910f980..e16d5c070a 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -464,6 +464,11 @@ bool riscv_cpu_debug_check_breakpoint(CPUState *cs) switch (trigger_type) { case TRIGGER_TYPE_AD_MATCH: + /* type 2 trigger cannot be fired in VU/VS mode */ + if (riscv_cpu_virt_enabled(env)) { + return false; + } + ctrl = env->tdata1[i]; pc = env->tdata2[i]; @@ -499,6 +504,11 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, CPUWatchpoint *wp) switch (trigger_type) { case TRIGGER_TYPE_AD_MATCH: + /* type 2 trigger cannot be fired in VU/VS mode */ + if (riscv_cpu_virt_enabled(env)) { + return false; + } + ctrl = env->tdata1[i]; addr = env->tdata2[i]; flags = 0; |
