--- /dev/null
+/** @file\r
+*\r
+* Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>\r
+* SPDX-License-Identifier: BSD-2-Clause-Patent\r
+*\r
+**/\r
+\r
+#include <PiPei.h>\r
+#include <Library/PrePiHobListPointerLib.h>\r
+#include <Library/DebugLib.h>\r
+#include <Library/HobLib.h>\r
+#include <Library/BaseRiscVSbiLib.h>\r
+\r
+/**\r
+ Returns the pointer to the HOB list.\r
+\r
+ This function returns the pointer to first HOB in the list.\r
+\r
+ @return The pointer to the HOB list.\r
+\r
+**/\r
+VOID *\r
+EFIAPI\r
+PrePeiGetHobList (\r
+ VOID\r
+ )\r
+{\r
+ EFI_RISCV_FIRMWARE_CONTEXT *FirmwareContext;\r
+\r
+ FirmwareContext = NULL;\r
+ GetFirmwareContextPointer (&FirmwareContext);\r
+\r
+ if (FirmwareContext == NULL) {\r
+ DEBUG ((DEBUG_ERROR, "%a: Firmware Context is NULL\n", __FUNCTION__));\r
+ return NULL;\r
+ }\r
+\r
+ return (VOID *)FirmwareContext->PrePiHobList;\r
+}\r
+\r
+/**\r
+ Updates the pointer to the HOB list.\r
+\r
+ @param HobList Hob list pointer to store\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+PrePeiSetHobList (\r
+ IN VOID *HobList\r
+ )\r
+{\r
+ EFI_RISCV_FIRMWARE_CONTEXT *FirmwareContext;\r
+\r
+ FirmwareContext = NULL;\r
+ GetFirmwareContextPointer (&FirmwareContext);\r
+\r
+ if (FirmwareContext == NULL) {\r
+ DEBUG ((DEBUG_ERROR, "%a: Firmware Context is NULL\n", __FUNCTION__));\r
+ return EFI_NOT_READY;\r
+ }\r
+\r
+ FirmwareContext->PrePiHobList = HobList;\r
+ return EFI_SUCCESS;\r
+}\r
--- /dev/null
+#/** @file\r
+#\r
+# Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
+#\r
+#**/\r
+\r
+[Defines]\r
+ INF_VERSION = 0x0001001B\r
+ BASE_NAME = PrePiHobListPointerLib\r
+ FILE_GUID = E3FAFC60-758C-471B-A333-FE704A4C11B4\r
+ MODULE_TYPE = BASE\r
+ VERSION_STRING = 1.0\r
+ LIBRARY_CLASS = PrePiHobListPointerLib\r
+\r
+[Sources.RISCV64]\r
+ PrePiHobListPointer.c\r
+\r
+[Packages]\r
+ MdePkg/MdePkg.dec\r
+ OvmfPkg/OvmfPkg.dec\r
+ EmbeddedPkg/EmbeddedPkg.dec\r
+ UefiCpuPkg/UefiCpuPkg.dec\r