summaryrefslogtreecommitdiff
path: root/lib/sbi/sbi_illegal_insn.c
diff options
context:
space:
mode:
authorAnup Patel <anup.patel@wdc.com>2019-08-18 10:44:44 +0300
committerAnup Patel <anup@brainfault.org>2019-09-30 13:06:14 +0300
commit1e9f88889f8b7c66dd229299715eed87e734aafa (patch)
tree8c1619786e090dfc7cbb57223ac3edda86607ec5 /lib/sbi/sbi_illegal_insn.c
parent7d4420bd6929ef3f2c761c262dbc3f7f2ae150c2 (diff)
downloadopensbi-1e9f88889f8b7c66dd229299715eed87e734aafa.tar.xz
lib: Emulate HTIMEDELTA CSR for platforms not having TIME CSR
For platforms not having TIME CSR, we trap-n-emulate TIME CSR read/write in OpenSBI. Same rationale applies to HTIMEDELTA CSR as well so we trap-n-emulate HTIMEDELTA CSR for platforms not having TIME CSR. Signed-off-by: Anup Patel <anup.patel@wdc.com>
Diffstat (limited to 'lib/sbi/sbi_illegal_insn.c')
-rw-r--r--lib/sbi/sbi_illegal_insn.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/sbi/sbi_illegal_insn.c b/lib/sbi/sbi_illegal_insn.c
index e75c13c..d15986a 100644
--- a/lib/sbi/sbi_illegal_insn.c
+++ b/lib/sbi/sbi_illegal_insn.c
@@ -49,8 +49,7 @@ static int system_opcode_insn(ulong insn, u32 hartid, ulong mcause,
return sbi_trap_redirect(regs, scratch,
regs->mepc, mcause, insn);
- if (sbi_emulate_csr_read(csr_num, hartid, regs->mstatus,
- scratch, &csr_val))
+ if (sbi_emulate_csr_read(csr_num, hartid, regs, scratch, &csr_val))
return truly_illegal_insn(insn, hartid, mcause,
regs, scratch);
@@ -80,7 +79,7 @@ static int system_opcode_insn(ulong insn, u32 hartid, ulong mcause,
return truly_illegal_insn(insn, hartid, mcause, regs, scratch);
};
- if (do_write && sbi_emulate_csr_write(csr_num, hartid, regs->mstatus,
+ if (do_write && sbi_emulate_csr_write(csr_num, hartid, regs,
scratch, new_csr_val))
return truly_illegal_insn(insn, hartid, mcause, regs, scratch);