]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg/RiscVVirt: Add PrePiHobListPointerLib library
authorSunil V L <sunilvl@ventanamicro.com>
Sat, 28 Jan 2023 15:26:15 +0000 (20:56 +0530)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 16 Feb 2023 05:53:28 +0000 (05:53 +0000)
Add the PrePiHobListPointerLib required for RISC-V Qemu Virt machine
since it follows PEIless design.

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Acked-by: Abner Chang <abner.chang@amd.com>
Reviewed-by: Andrei Warkentin <andrei.warkentin@intel.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointer.c [new file with mode: 0644]
OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf [new file with mode: 0644]

diff --git a/OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointer.c b/OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointer.c
new file mode 100644 (file)
index 0000000..a58b7aa
--- /dev/null
@@ -0,0 +1,65 @@
+/** @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
diff --git a/OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf b/OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
new file mode 100644 (file)
index 0000000..c539682
--- /dev/null
@@ -0,0 +1,23 @@
+#/** @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