From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com []) by mx.groups.io with SMTP id smtpd.web09.4544.1622017419695409010 for ; Wed, 26 May 2021 01:23:40 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=fail (domain: intel.com, ip: , mailfrom: ray.ni@intel.com) IronPort-SDR: cwlv2kkyX/dMrfnHNt0RCTMRpePg+uDPcTvJEwXVPTEvwmX4Lk7Xe4RS7Y4tlzJMbGU5MWe3fn +rOZhSANL1qg== X-IronPort-AV: E=McAfee;i="6200,9189,9995"; a="202448789" X-IronPort-AV: E=Sophos;i="5.82,331,1613462400"; d="scan'208";a="202448789" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 May 2021 01:23:38 -0700 IronPort-SDR: eKEEhSDhgvNevSdWBcKkfTCD0f+RVgV8P2niwwIEKmG3BMmY4CTtYnOCnMexC00TZVyEXu8YYR xYgl/JljhCQw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,331,1613462400"; d="scan'208";a="479780454" Received: from ray-dev.ccr.corp.intel.com ([10.239.158.87]) by fmsmga002.fm.intel.com with ESMTP; 26 May 2021 01:23:36 -0700 From: "Ni, Ray" To: devel@edk2.groups.io Cc: Michael D Kinney , Liming Gao , Zhiguang Liu , Maurice Ma , Guo Dong Subject: [PATCH 2/4] MdePkg/UniversalPayload: Add definition for extra info in payload Date: Wed, 26 May 2021 16:23:08 +0800 Message-Id: <20210526082310.1597-3-ray.ni@intel.com> X-Mailer: git-send-email 2.31.1.windows.1 In-Reply-To: <20210526082310.1597-1-ray.ni@intel.com> References: <20210526082310.1597-1-ray.ni@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable The payload is in ELF format per the universal payload spec. PLD_INFO_HEADER is stored in the ELF payload as a separate section named ".upld_info". Extra data needed by payload is stored in sections whose name starts with ".upld.". Signed-off-by: Ray Ni Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Cc: Maurice Ma Cc: Guo Dong --- MdePkg/Include/UniversalPayload/ExtraData.h | 28 ++++++++++++++ .../UniversalPayload/UniversalPayload.h | 38 +++++++++++++++++++ MdePkg/MdePkg.dec | 3 ++ 3 files changed, 69 insertions(+) create mode 100644 MdePkg/Include/UniversalPayload/ExtraData.h create mode 100644 MdePkg/Include/UniversalPayload/UniversalPayload.h diff --git a/MdePkg/Include/UniversalPayload/ExtraData.h b/MdePkg/Include/U= niversalPayload/ExtraData.h new file mode 100644 index 0000000000..07b7426683 --- /dev/null +++ b/MdePkg/Include/UniversalPayload/ExtraData.h @@ -0,0 +1,28 @@ +/** @file=0D +=0D + Copyright (c) 2021, Intel Corporation. All rights reserved.
=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +=0D +**/=0D +#ifndef __EXTRA_DATA_H__=0D +#define __EXTRA_DATA_H__=0D +=0D +extern GUID gPldExtraDataGuid;=0D +=0D +#pragma pack(1)=0D +=0D +typedef struct {=0D + CHAR8 Identifier[16];=0D + EFI_PHYSICAL_ADDRESS Base;=0D + UINT64 Size;=0D +} PLD_EXTRA_DATA_ENTRY;=0D +=0D +typedef struct {=0D + PLD_GENERIC_HEADER PldHeader;=0D + UINT32 Count;=0D + PLD_EXTRA_DATA_ENTRY Entry[0];=0D +} PLD_EXTRA_DATA;=0D +=0D +#pragma pack()=0D +=0D +#endif=0D diff --git a/MdePkg/Include/UniversalPayload/UniversalPayload.h b/MdePkg/In= clude/UniversalPayload/UniversalPayload.h new file mode 100644 index 0000000000..b8e9fe11a1 --- /dev/null +++ b/MdePkg/Include/UniversalPayload/UniversalPayload.h @@ -0,0 +1,38 @@ +/** @file=0D +=0D + Copyright (c) 2021, Intel Corporation. All rights reserved.
=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +=0D +**/=0D +#ifndef __UNIVERSAL_PAYLOAD_H__=0D +#define __UNIVERSAL_PAYLOAD_H__=0D +=0D +typedef VOID (EFIAPI *UNIVERSAL_PAYLOAD_ENTRY) (VOID *HobList);=0D +=0D +#define PLD_IDENTIFIER SIGNATURE_32('U', 'P', 'L', 'D')= =0D +#define PLD_INFO_SEC_NAME ".upld_info"=0D +#define PLD_EXTRA_SEC_NAME_PREFIX ".upld."=0D +#define PLD_EXTRA_SEC_NAME_PREFIX_LENGTH (sizeof (PLD_EXTRA_SEC_NAME_PREFI= X) - 1)=0D +=0D +#pragma pack(1)=0D +=0D +typedef struct {=0D + UINT32 Identifier;=0D + UINT32 HeaderLength;=0D + UINT16 SpecRevision;=0D + UINT8 Reserved[2];=0D + UINT32 Revision;=0D + UINT32 Attribute;=0D + UINT32 Capability;=0D + CHAR8 ProducerId[16];=0D + CHAR8 ImageId[16];=0D +} PLD_INFO_HEADER;=0D +=0D +typedef struct {=0D + UINT8 Revision;=0D + UINT8 Reserved[3];=0D +} PLD_GENERIC_HEADER;=0D +=0D +#pragma pack()=0D +=0D +#endif=0D diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index b49f88d8e1..638fe4c7e5 100644 --- a/MdePkg/MdePkg.dec +++ b/MdePkg/MdePkg.dec @@ -831,6 +831,9 @@ [Guids.IA32, Guids.X64] ## Include/Guid/Cper.h=0D gEfiIa32X64ErrorTypeMsCheckGuid =3D { 0x48AB7F57, 0xDC34, 0x4f6c, { 0= xA7, 0xD3, 0xB0, 0xB5, 0xB0, 0xA7, 0x43, 0x14 }}=0D =0D + ## Include/UniversalPayload/ExtraData.h=0D + gPldExtraDataGuid =3D {0x15a5baf6, 0x1c91, 0x467d, {0x9d, 0xfb, 0x31, 0x= 9d, 0x17, 0x8d, 0x4b, 0xb4}}=0D +=0D [Ppis]=0D ## Include/Ppi/MasterBootMode.h=0D gEfiPeiMasterBootModePpiGuid =3D { 0x7408d748, 0xfc8c, 0x4ee6, {0x92, 0x= 88, 0xc4, 0xbe, 0xc0, 0x92, 0xa4, 0x10 } }=0D --=20 2.31.1.windows.1