diff options
author | Tim Newsome <tim@sifive.com> | 2017-02-05 18:19:00 -0800 |
---|---|---|
committer | Tim Newsome <tim@sifive.com> | 2017-02-05 18:19:00 -0800 |
commit | 8d195afd2dac1943571c42200dde9fd23fed6940 (patch) | |
tree | fb1320e55c7722a000cd63bbbc36294c745d7f47 | |
parent | d055f865529820de9c01987df441d2817c653b23 (diff) | |
download | riscv-openocd-8d195afd2dac1943571c42200dde9fd23fed6940.zip riscv-openocd-8d195afd2dac1943571c42200dde9fd23fed6940.tar.gz riscv-openocd-8d195afd2dac1943571c42200dde9fd23fed6940.tar.bz2 |
Use the csrNNN name instead of "mstatus".
Fixes flashing code.
Change-Id: Id12c926f5ada009e06f6601362deefec946afc98
-rw-r--r-- | src/target/riscv/riscv.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/target/riscv/riscv.c b/src/target/riscv/riscv.c index f74d7bb..3118e52 100644 --- a/src/target/riscv/riscv.c +++ b/src/target/riscv/riscv.c @@ -494,11 +494,15 @@ static int riscv_run_algorithm(struct target *target, int num_mem_params, uint8_t mstatus_bytes[8]; LOG_DEBUG("Disabling Interrupts"); - struct reg *reg_mstatus = register_get_by_name(target->reg_cache, "mstatus", 1); + char mstatus_name[20]; + sprintf(mstatus_name, "csr%d", CSR_MSTATUS); + struct reg *reg_mstatus = register_get_by_name(target->reg_cache, + mstatus_name, 1); reg_mstatus->type->get(reg_mstatus); current_mstatus = buf_get_u64(reg_mstatus->value, 0, reg_mstatus->size); uint64_t ie_mask = MSTATUS_MIE | MSTATUS_HIE | MSTATUS_SIE | MSTATUS_UIE; - buf_set_u64(mstatus_bytes, 0, info->xlen, set_field(current_mstatus, ie_mask, 0)); + buf_set_u64(mstatus_bytes, 0, info->xlen, set_field(current_mstatus, + ie_mask, 0)); reg_mstatus->type->set(reg_mstatus, mstatus_bytes); |