================================================================================
Build And Integration Instructions
2020 Aug 1st
================================================================================

================================================================================
DISCLAIMER
================================================================================
This release note as well as the software described in it is furnished under license
and may only be used or copied in accordance with the terms of the license. The
information in this manual is furnished for informational use only, is subject to
change without notice, and should not be construed as a commitment by Intel Corporation.
Intel Corporation assumes no responsibility or liability for any errors or inaccuracies
that may appear in this document or any software that may be provided in association
with this document.
Except as permitted by such license, no part of this document may be reproduced,
stored in a retrieval system, or transmitted in any form or by any means without
the express written consent of Intel Corporation.

================================================================================
                                     INDEX
================================================================================
A. INTRODUCTION
B. HOW TO BUILD
C. HOW TO INTEGRATE INTO COREBOOT
D. HOW TO INTEGRATE INTO SLIM BOOTLOADER

================================================================================
A. INTRODUCTION
================================================================================
This document provides instructions on how to build UEFI Payload and how to
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

   For pure X64 build:
   > build -a x64 -p UefiPayloadPkg\UefiPayloadPkg.dsc -b <BuildType> -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>

   <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.

================================================================================
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 "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.

================================================================================
D. HOW TO INTEGRATE INTO SLIM BOOTLOADER
================================================================================
Please refer https://slimbootloader.github.io/how-tos/integrate-multiple-payloads.html for below steps.
1. Copy the payload image (UEFIPAYLOAD.fd) into Slim Bootloader source at PayloadPkg\PayloadBins\UefiPld.fd
2. Update config data to make UEFI payload as default payload if required.
3. Build Slim Bootloader with UEFI payload:
   BuildLoader.py build <Platform> -p "OsLoader.efi:LLDR:Lz4;UefiPld.fd:UEFI:Lzma"
