Library to call the RISC-V SBI ecalls\r
\r
Copyright (c) 2021-2022, Hewlett Packard Development LP. All rights reserved.<BR>\r
+ Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>\r
\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
#include <Uefi.h>\r
\r
/* SBI Extension IDs */\r
-#define SBI_EXT_TIME 0x54494D45\r
-#define SBI_EXT_SRST 0x53525354\r
-\r
-/* SBI function IDs for TIME extension*/\r
+#define SBI_EXT_0_1_CONSOLE_PUTCHAR 0x1\r
+#define SBI_EXT_0_1_CONSOLE_GETCHAR 0x2\r
+#define SBI_EXT_BASE 0x10\r
+#define SBI_EXT_DBCN 0x4442434E\r
+#define SBI_EXT_TIME 0x54494D45\r
+#define SBI_EXT_SRST 0x53525354\r
+\r
+/* SBI function IDs for base extension */\r
+#define SBI_EXT_BASE_SPEC_VERSION 0x0\r
+#define SBI_EXT_BASE_IMPL_ID 0x1\r
+#define SBI_EXT_BASE_IMPL_VERSION 0x2\r
+#define SBI_EXT_BASE_PROBE_EXT 0x3\r
+#define SBI_EXT_BASE_GET_MVENDORID 0x4\r
+#define SBI_EXT_BASE_GET_MARCHID 0x5\r
+#define SBI_EXT_BASE_GET_MIMPID 0x6\r
+\r
+/* SBI function IDs for DBCN extension */\r
+#define SBI_EXT_DBCN_WRITE 0x0\r
+#define SBI_EXT_DBCN_READ 0x1\r
+#define SBI_EXT_DBCN_WRITE_BYTE 0x2\r
+\r
+/* SBI function IDs for TIME extension */\r
#define SBI_EXT_TIME_SET_TIMER 0x0\r
\r
/* SBI function IDs for SRST extension */\r
UINTN Value; ///< Value returned\r
} SBI_RET;\r
\r
+SBI_RET\r
+EFIAPI\r
+SbiCall (\r
+ IN UINTN ExtId,\r
+ IN UINTN FuncId,\r
+ IN UINTN NumArgs,\r
+ ...\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+TranslateError (\r
+ IN UINTN SbiError\r
+ );\r
+\r
VOID\r
EFIAPI\r
SbiSetTimer (\r
It allows calling an SBI function via an ecall from S-Mode.\r
\r
Copyright (c) 2021-2022, Hewlett Packard Development LP. All rights reserved.<BR>\r
+ Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>\r
\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
@retval Returns SBI_RET structure with value and error code.\r
\r
**/\r
-STATIC\r
SBI_RET\r
EFIAPI\r
SbiCall (\r
@param[in] SbiError SBI error code\r
@retval EFI_STATUS\r
**/\r
-STATIC\r
EFI_STATUS\r
EFIAPI\r
TranslateError (\r