From 9bf4aee7340c331a47d3a60388d478461979a45d Mon Sep 17 00:00:00 2001 From: "Tan, Dun" Date: Tue, 13 Jul 2021 15:19:13 +0800 Subject: UefiPayloadPkg: Assign the length of UniversalPayload ExtraData V1: Assign the length and revision of UniversalPayload ExtraData V2: Force int to UINT16 V3: Create a local variable to hold the size of ExtraData Cc: Guo Dong Cc: Ray Ni Cc: Maurice Ma Cc: Benjamin You Signed-off-by: DunTan Reviewed-by: Ray Ni --- UefiPayloadPkg/PayloadLoaderPeim/PayloadLoaderPeim.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/UefiPayloadPkg/PayloadLoaderPeim/PayloadLoaderPeim.c b/UefiPayloadPkg/PayloadLoaderPeim/PayloadLoaderPeim.c index c619470dbb..141ce86b46 100644 --- a/UefiPayloadPkg/PayloadLoaderPeim/PayloadLoaderPeim.c +++ b/UefiPayloadPkg/PayloadLoaderPeim/PayloadLoaderPeim.c @@ -56,6 +56,7 @@ PeiLoadFileLoadPayload ( UINTN Size; UINT32 ExtraDataCount; UINTN Instance; + UINTN Length; // // ELF is added to file as RAW section for EDKII bootloader. @@ -105,11 +106,14 @@ PeiLoadFileLoadPayload ( // // Report the additional PLD sections through HOB. // + Length = sizeof (UNIVERSAL_PAYLOAD_EXTRA_DATA) + ExtraDataCount * sizeof (UNIVERSAL_PAYLOAD_EXTRA_DATA_ENTRY); ExtraData = BuildGuidHob ( &gUniversalPayloadExtraDataGuid, - sizeof (UNIVERSAL_PAYLOAD_EXTRA_DATA) + ExtraDataCount * sizeof (UNIVERSAL_PAYLOAD_EXTRA_DATA_ENTRY) + Length ); ExtraData->Count = ExtraDataCount; + ExtraData->Header.Revision = UNIVERSAL_PAYLOAD_EXTRA_DATA_REVISION; + ExtraData->Header.Length = (UINT16) Length; if (ExtraDataCount != 0) { for (ExtraDataIndex = 0, Index = 0; Index < Context.ShNum; Index++) { Status = GetElfSectionName (&Context, Index, &SectionName); -- cgit v1.2.3