aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorClément Léger <cleger@rivosinc.com>2025-03-25 11:26:14 +0100
committerAnup Patel <anup@brainfault.org>2025-03-27 18:16:44 +0530
commit3ac49712e3bcfd8d64cd17511e27b7836821e41c (patch)
tree24692dfb03dde6cf11067c9058fa99402ab1373f /include
parentb4464b22e4d3780ad73318af6091cea1d72404d1 (diff)
downloadopensbi-3ac49712e3bcfd8d64cd17511e27b7836821e41c.tar.gz
opensbi-3ac49712e3bcfd8d64cd17511e27b7836821e41c.tar.bz2
opensbi-3ac49712e3bcfd8d64cd17511e27b7836821e41c.zip
lib: sbi: sse: Add support for SSTATUS.SDT
Similarly to what is done for SPELP, handle SSTATUS.SDT upon event injection. In order to mimick an interrupt, set SDT to 1 for injection and save its previous value in interrupted_flags[5:5]. Restore it upon completion. Signed-off-by: Clément Léger <cleger@rivosinc.com> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Diffstat (limited to 'include')
-rw-r--r--include/sbi/riscv_encoding.h3
-rw-r--r--include/sbi/sbi_ecall_interface.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/include/sbi/riscv_encoding.h b/include/sbi/riscv_encoding.h
index 03c68a57..84d3c17b 100644
--- a/include/sbi/riscv_encoding.h
+++ b/include/sbi/riscv_encoding.h
@@ -32,7 +32,8 @@
#define MSTATUS_TVM _UL(0x00100000)
#define MSTATUS_TW _UL(0x00200000)
#define MSTATUS_TSR _UL(0x00400000)
-#define MSTATUS_SPELP _UL(0x00800000)
+#define MSTATUS_SPELP _UL(0x00800000)
+#define MSTATUS_SDT _UL(0x01000000)
#define MSTATUS32_SD _UL(0x80000000)
#if __riscv_xlen == 64
#define MSTATUS_UXL _ULL(0x0000000300000000)
diff --git a/include/sbi/sbi_ecall_interface.h b/include/sbi/sbi_ecall_interface.h
index 6114171e..af7a05af 100644
--- a/include/sbi/sbi_ecall_interface.h
+++ b/include/sbi/sbi_ecall_interface.h
@@ -385,6 +385,7 @@ enum sbi_sse_attr_id {
#define SBI_SSE_ATTR_INTERRUPTED_FLAGS_HSTATUS_SPV BIT(2)
#define SBI_SSE_ATTR_INTERRUPTED_FLAGS_HSTATUS_SPVP BIT(3)
#define SBI_SSE_ATTR_INTERRUPTED_FLAGS_SSTATUS_SPELP BIT(4)
+#define SBI_SSE_ATTR_INTERRUPTED_FLAGS_SSTATUS_SDT BIT(5)
enum sbi_sse_state {
SBI_SSE_STATE_UNUSED = 0,