summaryrefslogtreecommitdiff
path: root/UefiPayloadPkg/BuildAndIntegrationInstructions.txt
diff options
context:
space:
mode:
authorGuo Dong <guo.dong@intel.com>2020-09-12 16:31:14 -0700
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2020-12-02 23:10:22 +0000
commit7c4ab1c2ef60a4690177d2361f8dd44d7d7df7f8 (patch)
tree80c5f10e2a80c005141851f8a2a7a076244dfc5e /UefiPayloadPkg/BuildAndIntegrationInstructions.txt
parent9fb629edd75e1ae1e7f4e85b0876107a7180899b (diff)
downloadedk2-7c4ab1c2ef60a4690177d2361f8dd44d7d7df7f8.zip
edk2-7c4ab1c2ef60a4690177d2361f8dd44d7d7df7f8.tar.gz
edk2-7c4ab1c2ef60a4690177d2361f8dd44d7d7df7f8.tar.bz2
UefiPayloadPkg: Remove PEI phase from Payload
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3100 It is not necessary to have a PEI phase in the UEFI payload since no specific PEI task is required. This patch adds a UefiPayloadEntry driver to get UEFI Payload required information from the bootloaders, convert them into a HOB list, load DXE core and transfer control to it. Here is the change details: 1) Removed PEI phase, including Peicore, BlSupportPei, SecCore, etc. 2) Added UefiPayloadEntry driver. this is the only driver before DXE core. 3) Added Pure X64 support, dropped Pure IA32 (Could add later if required) 64bit payload with 32bit entry point is still supported. 4) Use one DSC file UefiPayloadPkg.dsc to support X64 and IA32X64 build. Removed UefiPayloadIa32.dsc and UefiPayloadIa32X64.dsc Tested with SBL and coreboot on QEMU. Signed-off-by: Guo Dong <guo.dong@intel.com> Reviewed-by: Maurice Ma <maurice.ma@intel.com> Reviewed-by: Benjamin You <benjamin.you@intel.com>
Diffstat (limited to 'UefiPayloadPkg/BuildAndIntegrationInstructions.txt')
-rw-r--r--UefiPayloadPkg/BuildAndIntegrationInstructions.txt32
1 files changed, 15 insertions, 17 deletions
diff --git a/UefiPayloadPkg/BuildAndIntegrationInstructions.txt b/UefiPayloadPkg/BuildAndIntegrationInstructions.txt
index 2cacd48..7512486 100644
--- a/UefiPayloadPkg/BuildAndIntegrationInstructions.txt
+++ b/UefiPayloadPkg/BuildAndIntegrationInstructions.txt
@@ -1,6 +1,6 @@
================================================================================
Build And Integration Instructions
-2019 March 27th
+2020 Aug 1st
================================================================================
================================================================================
@@ -35,27 +35,25 @@ integrate it into coreboot or Slim Bootloader firmware.
B. HOW TO BUILD
================================================================================
1. Run the below two commands in windows command prompt window:
- edksetup.bat
+ > edksetup.bat
- For debug ia32 build:
- build -a IA32 -p UefiPayloadPkg\UefiPayloadPkgIa32.dsc -b DEBUG -t <ToolChain> -D BOOTLOADER=<Bootloader>
+ For pure X64 build:
+ > build -a x64 -p UefiPayloadPkg\UefiPayloadPkg.dsc -b <BuildType> -t <ToolChain>
+ -D BOOTLOADER=<Bootloader>
- For release ia32 build:
- build -a IA32 -p UefiPayloadPkg\UefiPayloadPkgIa32.dsc -b RELEASE -t <ToolChain> -D BOOTLOADER=<Bootloader>
+ For X64 build with IA32 entry point:
+ > build -a IA32 -a X64 -p UefiPayloadPkg\UefiPayloadPkg.dsc -b <BuildType> -t <ToolChain>
+ -D BOOTLOADER=<Bootloader>
- For debug X64 build:
- build -a IA32 -a X64 -p UefiPayloadPkg\UefiPayloadPkgIa32X64.dsc -b DEBUG -t <ToolChain> -D BOOTLOADER=<Bootloader>
-
- For release X64 build:
- build -a IA32 -a X64 -p UefiPayloadPkg\UefiPayloadPkgIa32X64.dsc -b RELEASE -t <ToolChain> -D BOOTLOADER=<Bootloader>
-
- <ToolChain> is the EDK II build environment on your host. Currently it was tested
- with VS2015x86 toolchain.
+ <BuildType> support 'DEBUG', 'RELEASE' and 'NOOPT'.
+ <ToolChain> is the EDK II build environment on your host. Tested with VS2015x86 toolchain.
<Bootloader> could be "SBL" for Slim Bootloader and "COREBOOT" for coreboot.
Refer to https://github.com/tianocore/tianocore.github.io/wiki/UDK2018-How-to-Build for
details about EDK II build steps.
+ NOTE: Pure 32bit UEFI payload support could be added if required later.
+
2. If build is successfully, the payload image (UEFIPAYLOAD.fd) will be generated inside the
folder of Build\UefiPayloadPkg.
@@ -65,9 +63,9 @@ C. HOW TO INTEGRATE INTO COREBOOT
1. Copy the payload image (UEFIPAYLOAD.fd) into the top-level directory of Coreboot source tree.
2. Run "make menuconfig" in linux console to start Coreboot configuration surface.
3. In the Payload section,
- 1) Choose "An ELF executable payload" for the option of "Add a payload".
- 2) Type the path of payload image for the option of "Payload path and filename".
- 3) Select the option of "Use LZMA compression for payloads".
+ 1) Choose "Tianocore Payload" for the option of "Add a payload".
+ 2) Update the path of payload image for the option of "Tianocore binary".
+ 3) Choose "UEFIPayload" for the option of "Tianocore Payload".
4. If the graphics console is required in UEFI payload, enable framebuffer initialization in coreboot.
This could be done by enabling native graphics or using VGA BIOS option rom.
5. Build the coreboot firmware image.