]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EmbeddedPkg/Library/PrePiHobLib/Hob.c
EmbeddedPkg/PrePiHobLib: drop CreateHobList() from library
[mirror_edk2.git] / EmbeddedPkg / Library / PrePiHobLib / Hob.c
index aff532259ef48fad581d6aaab7f4e860e7d40050..ba16899a918485fec4d6fee0f900c59edbae5fc1 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
 \r
   Copyright (c) 2010, Apple Inc. All rights reserved.<BR>\r
+  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
@@ -174,47 +175,6 @@ BuildResourceDescriptorHob (
   Hob->ResourceLength    = NumberOfBytes;\r
 }\r
 \r
-/**\r
-\r
-\r
-**/\r
-VOID\r
-CreateHobList (\r
-  IN VOID   *MemoryBegin,\r
-  IN UINTN  MemoryLength,\r
-  IN VOID   *HobBase,\r
-  IN VOID   *StackBase\r
-  )\r
-{\r
-  EFI_HOB_HANDOFF_INFO_TABLE  *Hob;\r
-  EFI_RESOURCE_ATTRIBUTE_TYPE Attributes;\r
-\r
-  Hob = HobConstructor (MemoryBegin,MemoryLength,HobBase,StackBase);\r
-  SetHobList (Hob);\r
-\r
-  BuildCpuHob (PcdGet8 (PcdPrePiCpuMemorySize), PcdGet8 (PcdPrePiCpuIoSize));\r
-\r
-  Attributes =(\r
-    EFI_RESOURCE_ATTRIBUTE_PRESENT |\r
-    EFI_RESOURCE_ATTRIBUTE_INITIALIZED |\r
-    EFI_RESOURCE_ATTRIBUTE_TESTED |\r
-    EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |\r
-    EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |\r
-    EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |\r
-    EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE\r
-  );\r
-\r
-  BuildResourceDescriptorHob (EFI_RESOURCE_SYSTEM_MEMORY, Attributes, (UINTN)MemoryBegin, MemoryLength);\r
-\r
-  BuildStackHob ((EFI_PHYSICAL_ADDRESS)(UINTN)StackBase, ((UINTN)MemoryBegin + MemoryLength) - (UINTN)StackBase);\r
-\r
-  if (FeaturePcdGet (PcdPrePiProduceMemoryTypeInformationHob)) {\r
-    // Optional feature that helps prevent EFI memory map fragmentation.\r
-    BuildMemoryTypeInformationHob ();\r
-  }\r
-}\r
-\r
-\r
 VOID\r
 EFIAPI\r
 BuildFvHobs (\r
@@ -601,7 +561,50 @@ BuildFv2Hob (
   CopyGuid (&Hob->FileName, FileName);\r
 }\r
 \r
+/**\r
+  Builds a EFI_HOB_TYPE_FV3 HOB.\r
+\r
+  This function builds a EFI_HOB_TYPE_FV3 HOB.\r
+  It can only be invoked during PEI phase;\r
+  for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.\r
+\r
+  If there is no additional space for HOB creation, then ASSERT().\r
+\r
+  @param BaseAddress            The base address of the Firmware Volume.\r
+  @param Length                 The size of the Firmware Volume in bytes.\r
+  @param AuthenticationStatus   The authentication status.\r
+  @param ExtractedFv            TRUE if the FV was extracted as a file within\r
+                                another firmware volume. FALSE otherwise.\r
+  @param FvName                 The name of the Firmware Volume.\r
+                                Valid only if IsExtractedFv is TRUE.\r
+  @param FileName               The name of the file.\r
+                                Valid only if IsExtractedFv is TRUE.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+BuildFv3Hob (\r
+  IN          EFI_PHYSICAL_ADDRESS        BaseAddress,\r
+  IN          UINT64                      Length,\r
+  IN          UINT32                      AuthenticationStatus,\r
+  IN          BOOLEAN                     ExtractedFv,\r
+  IN CONST    EFI_GUID                    *FvName, OPTIONAL\r
+  IN CONST    EFI_GUID                    *FileName OPTIONAL\r
+  )\r
+{\r
+  EFI_HOB_FIRMWARE_VOLUME3  *Hob;\r
+\r
+  Hob = CreateHob (EFI_HOB_TYPE_FV3, sizeof (EFI_HOB_FIRMWARE_VOLUME3));\r
 \r
+  Hob->BaseAddress          = BaseAddress;\r
+  Hob->Length               = Length;\r
+  Hob->AuthenticationStatus = AuthenticationStatus;\r
+  Hob->ExtractedFv          = ExtractedFv;\r
+  if (ExtractedFv) {\r
+    CopyGuid (&Hob->FvName, FvName);\r
+    CopyGuid (&Hob->FileName, FileName);\r
+  }\r
+}\r
 \r
 /**\r
   Builds a Capsule Volume HOB.\r