aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2017-02-05 18:19:00 -0800
committerTim Newsome <tim@sifive.com>2017-02-05 18:19:00 -0800
commit8d195afd2dac1943571c42200dde9fd23fed6940 (patch)
treefb1320e55c7722a000cd63bbbc36294c745d7f47
parentd055f865529820de9c01987df441d2817c653b23 (diff)
downloadriscv-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.c8
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);