Re: [PATCH 04/12] UefiPayloadPkg: Update the function definition of HobConstructor


Guo Dong
 

Reviewed-by: Guo Dong <guo.dong@intel.com>

-----Original Message-----
From: Liu, Zhiguang <zhiguang.liu@intel.com>
Sent: Sunday, June 20, 2021 8:47 AM
To: devel@edk2.groups.io
Cc: Ma, Maurice <maurice.ma@intel.com>; Dong, Guo
<guo.dong@intel.com>; You, Benjamin <benjamin.you@intel.com>
Subject: [PATCH 04/12] UefiPayloadPkg: Update the function definition of
HobConstructor

Update the function defination of HobConstructor to align the Phit Hob
structure.

Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Guo Dong <guo.dong@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
---
UefiPayloadPkg/Library/PayloadEntryHobLib/Hob.c | 26 +++++++++++++--
-----------
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c | 5 +----
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h | 16 ++++++++--------
3 files changed, 22 insertions(+), 25 deletions(-)

diff --git a/UefiPayloadPkg/Library/PayloadEntryHobLib/Hob.c
b/UefiPayloadPkg/Library/PayloadEntryHobLib/Hob.c
index 23a749edf1..768c3db770 100644
--- a/UefiPayloadPkg/Library/PayloadEntryHobLib/Hob.c
+++ b/UefiPayloadPkg/Library/PayloadEntryHobLib/Hob.c
@@ -39,14 +39,14 @@ GetHobList (
/**

Build a Handoff Information Table HOB



- This function initialize a HOB region from EfiMemoryBegin with length

- EfiMemoryLength. And EfiFreeMemoryBottom and EfiFreeMemoryTop
should

+ This function initialize a HOB region from EfiMemoryBegin to

+ EfiMemoryTop. And EfiFreeMemoryBottom and EfiFreeMemoryTop
should

be inside the HOB region.



- @param[in] EfiMemoryBegin Total memory start address

- @param[in] EfiMemoryLength Total memory length reported in handoff
HOB.

- @param[in] EfiFreeMemoryBottom Free memory start address

- @param[in] EfiFreeMemoryTop Free memory end address.

+ @param[in] EfiMemoryBottom Total memory start address

+ @param[in] EfiMemoryTop Total memory end address.

+ @param[in] EfiFreeMemoryBottom Free memory start address

+ @param[in] EfiFreeMemoryTop Free memory end address.



@return The pointer to the handoff HOB table.



@@ -54,8 +54,8 @@ GetHobList (
EFI_HOB_HANDOFF_INFO_TABLE*

EFIAPI

HobConstructor (

- IN VOID *EfiMemoryBegin,

- IN UINTN EfiMemoryLength,

+ IN VOID *EfiMemoryBottom,

+ IN VOID *EfiMemoryTop,

IN VOID *EfiFreeMemoryBottom,

IN VOID *EfiFreeMemoryTop

)

@@ -77,11 +77,11 @@ HobConstructor (
Hob->Version = EFI_HOB_HANDOFF_TABLE_VERSION;

Hob->BootMode = BOOT_WITH_FULL_CONFIGURATION;



- Hob->EfiMemoryTop = (UINTN)EfiMemoryBegin + EfiMemoryLength;

- Hob->EfiMemoryBottom = (UINTN)EfiMemoryBegin;

- Hob->EfiFreeMemoryTop = (UINTN)EfiFreeMemoryTop;

- Hob->EfiFreeMemoryBottom =
(EFI_PHYSICAL_ADDRESS)(UINTN)(HobEnd+1);

- Hob->EfiEndOfHobList = (EFI_PHYSICAL_ADDRESS)(UINTN)HobEnd;

+ Hob->EfiMemoryTop = (EFI_PHYSICAL_ADDRESS) EfiMemoryTop;

+ Hob->EfiMemoryBottom = (EFI_PHYSICAL_ADDRESS) EfiMemoryBottom;

+ Hob->EfiFreeMemoryTop = (EFI_PHYSICAL_ADDRESS)
EfiFreeMemoryTop;

+ Hob->EfiFreeMemoryBottom = (EFI_PHYSICAL_ADDRESS) (UINTN)
(HobEnd+1);

+ Hob->EfiEndOfHobList = (EFI_PHYSICAL_ADDRESS) (UINTN) HobEnd;



mHobList = Hob;

return Hob;

diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
index 8c6f7e326f..4308936d63 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
+++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
@@ -382,7 +382,6 @@ PayloadEntry (
PHYSICAL_ADDRESS DxeCoreEntryPoint;

EFI_HOB_HANDOFF_INFO_TABLE *HandoffHobTable;

UINTN MemBase;

- UINTN MemSize;

UINTN HobMemBase;

UINTN HobMemTop;

EFI_PEI_HOB_POINTERS Hob;

@@ -401,9 +400,7 @@ PayloadEntry (
HobMemBase = ALIGN_VALUE (MemBase + PcdGet32
(PcdPayloadFdMemSize), SIZE_1MB);

HobMemTop = HobMemBase + FixedPcdGet32
(PcdSystemMemoryUefiRegionSize);



- // DXE core assumes the memory below HOB region could be used, so
include the FV region memory into HOB range.

- MemSize = HobMemTop - MemBase;

- HandoffHobTable = HobConstructor ((VOID *)MemBase, MemSize, (VOID
*)HobMemBase, (VOID *)HobMemTop);

+ HobConstructor ((VOID *)MemBase, (VOID *)HobMemTop, (VOID
*)HobMemBase, (VOID *)HobMemTop);



// Build HOB based on information from Bootloader

Status = BuildHobFromBl ();

diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
index a4c9da128e..e9c3ec3073 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
+++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
@@ -83,14 +83,14 @@ UpdateStackHob (
/**

Build a Handoff Information Table HOB



- This function initialize a HOB region from EfiMemoryBegin with length

- EfiMemoryLength. And EfiFreeMemoryBottom and EfiFreeMemoryTop
should

+ This function initialize a HOB region from EfiMemoryBegin to

+ EfiMemoryTop. And EfiFreeMemoryBottom and EfiFreeMemoryTop
should

be inside the HOB region.



- @param[in] EfiMemoryBegin Total memory start address

- @param[in] EfiMemoryLength Total memory length reported in handoff
HOB.

- @param[in] EfiFreeMemoryBottom Free memory start address

- @param[in] EfiFreeMemoryTop Free memory end address.

+ @param[in] EfiMemoryBottom Total memory start address

+ @param[in] EfiMemoryTop Total memory end address.

+ @param[in] EfiFreeMemoryBottom Free memory start address

+ @param[in] EfiFreeMemoryTop Free memory end address.



@return The pointer to the handoff HOB table.



@@ -98,8 +98,8 @@ UpdateStackHob (
EFI_HOB_HANDOFF_INFO_TABLE*

EFIAPI

HobConstructor (

- IN VOID *EfiMemoryBegin,

- IN UINTN EfiMemoryLength,

+ IN VOID *EfiMemoryBottom,

+ IN VOID *EfiMemoryTop,

IN VOID *EfiFreeMemoryBottom,

IN VOID *EfiFreeMemoryTop

);

--
2.16.2.windows.1

Join devel@edk2.groups.io to automatically receive all group messages.