[edk2-devel] [PATCH v2 1/1] UefiPayloadPkg: Skip ModuleInfo HOB in Payload

Ni, Ray ray.ni at intel.com
Mon Dec 6 01:52:33 UTC 2021


Reviewed-by: Ray Ni <ray.ni at intel.com>

-----Original Message-----
From: Jiang, Guomin <guomin.jiang at intel.com> 
Sent: Friday, December 3, 2021 1:17 PM
To: devel at edk2.groups.io
Cc: Dong, Guo <guo.dong at intel.com>; Ni, Ray <ray.ni at intel.com>; Ma, Maurice <maurice.ma at intel.com>; You, Benjamin <benjamin.you at intel.com>
Subject: [PATCH v2 1/1] UefiPayloadPkg: Skip ModuleInfo HOB in Payload

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3754

1. DxeCore will use ModuleInfo to install LoadedImage protocol for DxeCore.
2. DxeIpl will create the ModuleInfo of UniversalPayload. and
   UniversalPayload will create the ModuleInfo of DxeCore.
3. UniversalPayload should skip the ModuleInfo from the DxeIpl to avoid
   the mismatched ModuleInfo for DxeCore.

Changes:
1. Use function IsHobNeed to check if the HOB should be added 2. Add the ModuleInfo check logic in IsHobNeed function

Signed-off-by: Guomin Jiang <guomin.jiang at intel.com>
Cc: Guo Dong <guo.dong at intel.com>
Cc: Ray Ni <ray.ni at intel.com>
Cc: Maurice Ma <maurice.ma at intel.com>
Cc: Benjamin You <benjamin.you at intel.com>
---
 .../UefiPayloadEntry/UniversalPayloadEntry.c  | 32 ++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c b/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c
index 4d1096b32321..d743d29abe3f 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c
+++ b/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c
@@ -238,6 +238,36 @@ FindAnotherHighestBelow4GResourceDescriptor (
   return ReturnResourceHob;
 }
 
+/**
+  Check the HOB and decide if it is need inside Payload
+
+  Payload maintainer may make decision which HOB is need or needn't  
+ Then add the check logic in the function.
+
+  @param[in] Hob The HOB to check
+
+  @retval TRUE  If HOB is need inside Payload
+  @retval FALSE If HOB is needn't inside Payload **/ BOOLEAN IsHobNeed 
+(
+  EFI_PEI_HOB_POINTERS Hob
+  )
+{
+  if (Hob.Header->HobType == EFI_HOB_TYPE_HANDOFF) {
+    return FALSE;
+  }
+
+  if (Hob.Header->HobType == EFI_HOB_TYPE_MEMORY_ALLOCATION) {
+    if (CompareGuid (&Hob.MemoryAllocationModule->MemoryAllocationHeader.Name, &gEfiHobMemoryAllocModuleGuid)) {
+      return FALSE;
+    }
+  }
+
+  // Arrive here mean the HOB is need
+  return TRUE;
+}
+
 /**
   It will build HOBs based on information from bootloaders.
 
@@ -338,7 +368,7 @@ BuildHobs (
   // Since payload created new Hob, move all hobs except PHIT from boot loader hob list.
   //
   while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType != EFI_HOB_TYPE_HANDOFF) {
+    if (IsHobNeed (Hob)) {
       // Add this hob to payload HOB
       AddNewHob (&Hob);
     }
--
2.30.0.windows.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#84366): https://edk2.groups.io/g/devel/message/84366
Mute This Topic: https://groups.io/mt/87471462/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list