Reset triggers to type 15 (unavailable). The reset value for tdata1 type field is implementation specific, legal values are permitted. Unavailable is a legal value, and some implementations may not support type2 triggers so use that instead.
Signed-off-by: Nicholas Piggin <[email protected]> --- target/riscv/debug.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/target/riscv/debug.c b/target/riscv/debug.c index 605ed95b14..96b00193e2 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -1043,10 +1043,10 @@ void riscv_cpu_debug_post_load(CPURISCVState *env) void riscv_trigger_reset_hold(CPURISCVState *env) { - target_ulong tdata1 = build_tdata1(env, TRIGGER_TYPE_AD_MATCH, 0, 0); + target_ulong tdata1 = build_tdata1(env, TRIGGER_TYPE_UNAVAIL, 0, 0); int i; - /* init to type 2 triggers */ + /* init to type 15 (unavailable) triggers */ for (i = 0; i < RV_MAX_TRIGGERS; i++) { int trigger_type = get_trigger_type(env, i); @@ -1061,19 +1061,6 @@ void riscv_trigger_reset_hold(CPURISCVState *env) break; } - /* - * 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->tdata1[i] = tdata1; env->tdata2[i] = 0; env->tdata3[i] = 0; -- 2.51.0
