summaryrefslogtreecommitdiff
path: root/include/sbi/sbi_ecall_interface.h
diff options
context:
space:
mode:
authorAtish Patra <atish.patra@wdc.com>2019-11-25 10:33:44 +0300
committerAnup Patel <anup@brainfault.org>2019-12-23 06:42:04 +0300
commitb8732feaf7d48fddc5c06866879380575e601823 (patch)
tree38be478442d3a68c81aec86807947591bc322288 /include/sbi/sbi_ecall_interface.h
parent7219477f7b400a2eaa8fac5aedd73ba29eef92d9 (diff)
downloadopensbi-b8732feaf7d48fddc5c06866879380575e601823.tar.xz
lib: Add replacement extension and function ids
Take this opportunity to move the enums to macros as enums make sbi_ecall_interface.h unusable in assembly files. Signed-off-by: Atish Patra <atish.patra@wdc.com> Reviewed-by: Anup Patel <anup.patel@wdc.com>
Diffstat (limited to 'include/sbi/sbi_ecall_interface.h')
-rw-r--r--include/sbi/sbi_ecall_interface.h60
1 files changed, 38 insertions, 22 deletions
diff --git a/include/sbi/sbi_ecall_interface.h b/include/sbi/sbi_ecall_interface.h
index 98c5ce6..93c0747 100644
--- a/include/sbi/sbi_ecall_interface.h
+++ b/include/sbi/sbi_ecall_interface.h
@@ -12,28 +12,44 @@
/* clang-format off */
-enum sbi_ext_id {
- SBI_EXT_0_1_SET_TIMER = 0x0,
- SBI_EXT_0_1_CONSOLE_PUTCHAR = 0x1,
- SBI_EXT_0_1_CONSOLE_GETCHAR = 0x2,
- SBI_EXT_0_1_CLEAR_IPI = 0x3,
- SBI_EXT_0_1_SEND_IPI = 0x4,
- SBI_EXT_0_1_REMOTE_FENCE_I = 0x5,
- SBI_EXT_0_1_REMOTE_SFENCE_VMA = 0x6,
- SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID = 0x7,
- SBI_EXT_0_1_SHUTDOWN = 0x8,
- SBI_EXT_BASE = 0x10,
-};
-
-enum sbi_ext_base_fid {
- SBI_EXT_BASE_GET_SPEC_VERSION = 0,
- SBI_EXT_BASE_GET_IMP_ID,
- SBI_EXT_BASE_GET_IMP_VERSION,
- SBI_EXT_BASE_PROBE_EXT,
- SBI_EXT_BASE_GET_MVENDORID,
- SBI_EXT_BASE_GET_MARCHID,
- SBI_EXT_BASE_GET_MIMPID,
-};
+/* SBI Extension IDs */
+#define SBI_EXT_0_1_SET_TIMER 0x0
+#define SBI_EXT_0_1_CONSOLE_PUTCHAR 0x1
+#define SBI_EXT_0_1_CONSOLE_GETCHAR 0x2
+#define SBI_EXT_0_1_CLEAR_IPI 0x3
+#define SBI_EXT_0_1_SEND_IPI 0x4
+#define SBI_EXT_0_1_REMOTE_FENCE_I 0x5
+#define SBI_EXT_0_1_REMOTE_SFENCE_VMA 0x6
+#define SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID 0x7
+#define SBI_EXT_0_1_SHUTDOWN 0x8
+#define SBI_EXT_BASE 0x10
+#define SBI_EXT_TIME 0x54494D45
+#define SBI_EXT_IPI 0x735049
+#define SBI_EXT_RFENCE 0x52464E43
+
+/* SBI function IDs for BASE extension*/
+#define SBI_EXT_BASE_GET_SPEC_VERSION 0x0
+#define SBI_EXT_BASE_GET_IMP_ID 0x1
+#define SBI_EXT_BASE_GET_IMP_VERSION 0x2
+#define SBI_EXT_BASE_PROBE_EXT 0x3
+#define SBI_EXT_BASE_GET_MVENDORID 0x4
+#define SBI_EXT_BASE_GET_MARCHID 0x5
+#define SBI_EXT_BASE_GET_MIMPID 0x6
+
+/* SBI function IDs for TIME extension*/
+#define SBI_EXT_TIME_SET_TIMER 0x0
+
+/* SBI function IDs for IPI extension*/
+#define SBI_EXT_IPI_SEND_IPI 0x0
+
+/* SBI function IDs for RFENCE extension*/
+#define SBI_EXT_RFENCE_REMOTE_FENCE_I 0x0
+#define SBI_EXT_RFENCE_REMOTE_SFENCE_VMA 0x1
+#define SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID 0x2
+#define SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA 0x3
+#define SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID 0x4
+#define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA 0x5
+#define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID 0x6
#define SBI_SPEC_VERSION_MAJOR_OFFSET 24
#define SBI_SPEC_VERSION_MAJOR_MASK 0x7f