From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) 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=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: ray.ni@intel.com) IronPort-SDR: S6Yffb4FQduXpDgskxF/y3Ztnrq2CusrP7H757zwDjToT9SG2M+Va1qobNuxsGIFAp3YeDe0uN X4uJRz+cSWzQ== X-IronPort-AV: E=McAfee;i="6200,9189,9995"; a="202448786" X-IronPort-AV: E=Sophos;i="5.82,331,1613462400"; d="scan'208";a="202448786" 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:36 -0700 IronPort-SDR: 4+KbzqBbW1VaZ5h5UUjni9hs0ZRCbSDXnX5BVZXUyDmzSULMQJ3R3qw1ipJZ6Owg8QqwtYnFmX MNOIXjCIZwQA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,331,1613462400"; d="scan'208";a="479780430" Received: from ray-dev.ccr.corp.intel.com ([10.239.158.87]) by fmsmga002.fm.intel.com with ESMTP; 26 May 2021 01:23:34 -0700 From: "Ni, Ray" To: devel@edk2.groups.io Subject: [PATCH 0/4] Support payload in ELF format Date: Wed, 26 May 2021 16:23:06 +0800 Message-Id: <20210526082310.1597-1-ray.ni@intel.com> X-Mailer: git-send-email 2.31.1.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Per universal payload spec, the payload is in ELF format.=0D The patch set adds toolchain CLANGDWARF for building ELF image and=0D adds a payload loader that can load ELF image. Ray Ni (4): BaseTools: Create CLANGDWARF toolchain MdePkg/UniversalPayload: Add definition for extra info in payload UefiPayloadPkg: Add PayloadLoaderPeim which can load ELF payload PeiCore: Remove assertion when failing to load PE image BaseTools/Conf/build_rule.template | 10 +- BaseTools/Conf/tools_def.template | 98 ++ MdeModulePkg/Core/Pei/Image/Image.c | 5 +- MdePkg/Include/UniversalPayload/ExtraData.h | 28 + .../UniversalPayload/UniversalPayload.h | 38 + MdePkg/MdePkg.dec | 3 + UefiPayloadPkg/PayloadLoaderPeim/ElfLib.h | 122 +++ .../PayloadLoaderPeim/ElfLib/Elf32.h | 252 +++++ .../PayloadLoaderPeim/ElfLib/Elf32Lib.c | 398 +++++++ .../PayloadLoaderPeim/ElfLib/Elf64.h | 254 +++++ .../PayloadLoaderPeim/ElfLib/Elf64Lib.c | 407 ++++++++ .../PayloadLoaderPeim/ElfLib/ElfCommon.h | 983 ++++++++++++++++++ .../PayloadLoaderPeim/ElfLib/ElfLib.c | 499 +++++++++ .../PayloadLoaderPeim/ElfLib/ElfLibInternal.h | 88 ++ .../PayloadLoaderPeim/PayloadLoaderPeim.c | 187 ++++ .../PayloadLoaderPeim/PayloadLoaderPeim.inf | 59 ++ 16 files changed, 3426 insertions(+), 5 deletions(-) create mode 100644 MdePkg/Include/UniversalPayload/ExtraData.h create mode 100644 MdePkg/Include/UniversalPayload/UniversalPayload.h create mode 100644 UefiPayloadPkg/PayloadLoaderPeim/ElfLib.h create mode 100644 UefiPayloadPkg/PayloadLoaderPeim/ElfLib/Elf32.h create mode 100644 UefiPayloadPkg/PayloadLoaderPeim/ElfLib/Elf32Lib.c create mode 100644 UefiPayloadPkg/PayloadLoaderPeim/ElfLib/Elf64.h create mode 100644 UefiPayloadPkg/PayloadLoaderPeim/ElfLib/Elf64Lib.c create mode 100644 UefiPayloadPkg/PayloadLoaderPeim/ElfLib/ElfCommon.h create mode 100644 UefiPayloadPkg/PayloadLoaderPeim/ElfLib/ElfLib.c create mode 100644 UefiPayloadPkg/PayloadLoaderPeim/ElfLib/ElfLibInternal.h create mode 100644 UefiPayloadPkg/PayloadLoaderPeim/PayloadLoaderPeim.c create mode 100644 UefiPayloadPkg/PayloadLoaderPeim/PayloadLoaderPeim.inf --=20 2.31.1.windows.1