You've already forked documentation
mirror of
https://github.com/Dasharo/documentation.git
synced 2026-03-06 15:26:51 -08:00
- Make footer copyright year update automatically - Add clarification about EPLD region - Add heading to build tool doc - Clean up warnings about section links, length of underlines, etc. - Adjust whitespace in Build System doc - Fix reference to key management section Signed-off-by: Atharva Lele <atharva.lele@intel.com>
114 lines
3.1 KiB
ReStructuredText
114 lines
3.1 KiB
ReStructuredText
.. _build-tool:
|
|
|
|
Build Tool
|
|
-----------
|
|
|
|
Introduction
|
|
^^^^^^^^^^^^
|
|
|
|
``BuildLoader.py`` compiles source code with all the *magics* to generate output image(s). It provides two subcommands: build and clean.
|
|
|
|
|
|
You can build |SPN| with the following options:
|
|
|
|
* Build for a supported target
|
|
* Debug or release build
|
|
* Use debug image of FSP
|
|
* Change your payload files
|
|
* Attach a version data structure of your own
|
|
|
|
Usage
|
|
^^^^^
|
|
|
|
Command Syntax::
|
|
|
|
python BuildLoader.py <subcommand> <target> <options>
|
|
|
|
<subcommand> : build or build_dsc or clean
|
|
<target> : board name (e.g. apl, qemu, etc.)
|
|
|
|
|
|
Windows and Linux share the same command line options as follows. For example, for ``build`` subcommand::
|
|
|
|
usage: BuildLoader.py build [-h] [-r] [-v] [-fp FSPPATH] [-fd] [-p PAYLOAD] board
|
|
|
|
positional arguments:
|
|
board Board Name (apl, qemu, etc.)
|
|
|
|
optional arguments:
|
|
-h, --help Show this help message and exit
|
|
-r, --release Release build
|
|
-v, --usever Use board version file
|
|
-fp FSPPATH FSP binary path relative to FspBin in Silicon folder
|
|
-fd, --fspdebug Use debug FSP binary
|
|
-p PAYLOAD, --payload PAYLOAD Payload file name
|
|
|
|
|
|
For a list of platforms supported::
|
|
|
|
python BuildLoader.py build ?
|
|
|
|
|
|
If build is successful, ``Outputs`` folder will contain the build binaries. One of the output files will be ``Stitch_Components.zip`` which will be used in the stitching step.
|
|
|
|
|
|
|SPN| supports a single image supporting up to 32 board configurations for the same type of board or platform. To add multi-board support, see :ref:`configuration-feature`.
|
|
|
|
Working
|
|
^^^^^^^
|
|
|
|
The overall flow of the build process is shown below:
|
|
|
|
* Environment initialization
|
|
* Early build initialization
|
|
|
|
* Toolchains and dependencies are verified
|
|
* BaseTools are compiled
|
|
|
|
* Board build hook: ``pre-build: before``
|
|
|
|
* Create build directory
|
|
* Generate dlt file from CfgData
|
|
|
|
* Pre-build:
|
|
|
|
* Make sure SBL signing keys exist
|
|
* Build or grab FSP
|
|
* Create Firmware Interface Table (FIT)
|
|
* Create Bootloader Version Info file
|
|
* Create VBT
|
|
* Create DSC file for build
|
|
* Rebase FSP
|
|
* Create config data
|
|
* Build reset vector // Note - clarify
|
|
|
|
* Board build hook: ``pre-build:after``
|
|
|
|
* User can specify if any processing needs to be done at this point and can add relevant functionality to this build hook
|
|
|
|
* Call EDK-II's ``build`` command
|
|
|
|
* Board build hook: ``post-build: before``
|
|
|
|
* User can specify if any processing needs to be done at this point and can add relevant functionality to this build hook
|
|
|
|
* Post-build:
|
|
|
|
* Generate binaries for:
|
|
|
|
* UEFI Variable Storage
|
|
* ACM and Diagnostic ACM
|
|
* MRC Training Data
|
|
* Bootloader Variable storage
|
|
* Microcode
|
|
* Payload and EPayload
|
|
* FW Update
|
|
|
|
* Generate container images
|
|
* Patch stages
|
|
* Create redundant components
|
|
* Stitch
|
|
|
|
* Board build hook: ``post-build: after``
|
|
|
|
* User can specify if any processing needs to be done at this point and can add relevant functionality to this build hook |