Commit Graph

42 Commits

Author SHA1 Message Date
Grandhi 5275a93191 Add ACM3 binary into BIOS region
Signed-off-by: Grandhi <sindhura.grandhi@intel.com>
2019-08-30 16:45:35 -07:00
Raghava Gudla e8d08aacdb Remove using FitHelp.py in StitchIfwi
This patch will remove FitHelp.py dependency from StitchIfwi
and reuses code from IfwiUtility to patch ACM binary.

This patch also fixed some case dependency required for python
in xml file patching. without this fix, fit does not work as
expected.

Signed-off-by: Raghava Gudla <raghava.gudla@intel.com>
2019-08-29 15:08:06 -07:00
Maurice Ma cc46751e0c Fix CfgDataTool issue on some platforms (#294)
CfgDataTool was originally developed for APL. On APL, the CFGDATA
region name is 'CFGD'.  However, on all other platform, the name
is 'CNFG'. This patch modified the script to handle both. And it
fixed #293.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-08-28 10:13:46 -07:00
Maurice Ma 4e13be369f [QEMU] Add repo clean command before building QEMU FSP
This patch run repo clean to remove previous generated files before
starting a new QEMU FSP build.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-08-23 14:10:58 -07:00
Maurice Ma b26a56480c [TOOLS] Misc enhancements for build scripts
Some misc enhancements for build scripts including:
- Adding all required exectuable check for build
- Removng hardcoded Python27 path
- Printing out used python version and path
- Using EDKII stable201905 tag to build QEMU FSP

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-08-23 08:32:49 -07:00
Maurice Ma 9fff1db6aa [TOOLS] Clean up stitching scripts for flash map
This patch cleaned APL and CFL stitching script.
- Shared common code for stitching functions on flash map process
- Converted coding style to snake_case for consistent naming convention

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-08-23 08:21:34 -07:00
Maurice Ma ea38da7599 [TOOLS] Add python3 build support
EDK II build has enabled python3 support. Since SBL has its own scripts,
it is required to port them accordingly to support python3. This patch
added python3 build support for SBL.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-08-22 09:18:52 -07:00
Maurice Ma d9a6a2f211 [TOOLS] Add IFWI helper script
This patch added IfwiUtility.py script to help parse the IFWI layout
and locate and replace components. It can be used to swap component
listed in the SBL flashmap, such as CFGDATA, MRCDATA, ACM, etc. It
supports different IFWI layout.
For exmaple,
APL MRC data flash layout path:
  IFWI/BIOS/NRD/MRCD
CFL MRC data flash layout path:
  IFWI/BIOS/BP0/BPDT/BpdtIbb/MRCD
To determine a compoment flash layout path, please use:
  python IfwiUtility.py view -i IfwiImage.bin

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-08-20 10:12:29 -07:00
Guo Dong 73553318cd Enhance build script to support build flexibility
With this change, customer could copy only board package folder
outside of SBL repo and build it without copying silicon folder.
It could help customer create their own repo and use SBL open
source repo as a submodule.

Signed-off-by: Guo Dong <guo.dong@intel.com>
2019-08-16 07:25:35 -07:00
Guo Dong ed53beb624 Enhance build support for binary downloading
Removing hard code in PrepareBuildComponentBin.py, so it could
support other platforms. And enhance its logic to support to
run in different places.
Moving repo and commit information to driver INF so this script
could reuse code to support different drivers.

Signed-off-by: Guo Dong <guo.dong@intel.com>
2019-08-15 18:09:51 -07:00
Maurice Ma 78e7b0225e Fix FSP and Microcode download path issue
When downloading FSP and Microcode into local tree, it is required
to support board/silicon packages at different locations since the
board/silicon packages might be located outside of the SBL tree pointed
by PLT_SOURCE environment variable. Current code always assumes the
board/silicon is inside SBL tree, and it needs to be fixed. This
patch fixed #269 .

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-08-15 09:24:34 -07:00
Maurice Ma 05e712bcbb [Tools] Add !include support for DLT files
To make it easier to share the most common configuration items in a
DLT file, it is better to support '!include' in DLT file. This patch
added this feature.  It also added examples in QEMU to test this.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-08-13 14:34:08 -07:00
Maurice Ma 944e5b8d2d Break down boot option CFGDATA
The current implementation used a huge array to represent boot options in
a single CFGDATA tag. With this approach, when a different board needs
to modify a single field, the whole array needs to be duplicated in the
CFGDATA. It is not efficient. A better approach is to break the options
into individual boot option CFGDATA tag. It will reduce the overall CFGDATA
in general. This patch implemented this mechanism. A library interface
FillBootOptionListFromCfgData() is provided to convert the CFGDATA into
the required OS_BOOT_OPTION_LIST.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-08-07 14:06:45 -07:00
Maurice Ma ef682b19c3 Switch to use container for EPAYLOAD
This patch enabled container use case for EPAYLOAD loading.
It also switched to use LoadComponent() API for Stage2 and
payload loading. It simplified the code flow. An example in
QEMU was added to demonstrate on how to add a container in
build and load it in Stage2 code.

To define a container layout, it is required to provide
GetContainerList() in BoardConfig.py. Then in stage or payload
code, LoadComponent() can be used to load a component from the
container.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-08-01 15:58:25 -07:00
Maurice Ma 651a189d53 Add GenContainer tool script
This patch added GenContainer.py script to create, extrace, replace,
sign and display a container image. If platform provides
GetContainerList() in BoardConfig.py, the build process will consume
it to create container images.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-07-31 09:31:36 -07:00
Aiden Park bef00bf3f7 Fix invalid CfgDataDef generation in multi-level includes
This issue happens when a template file includes another files
since template dictionary has '!include' line itself instead of
its contents.

Signed-off-by: Aiden Park <aiden.park@intel.com>
2019-07-11 15:13:27 -07:00
Maurice Ma 6b45c53c54 Filter out include DSC files in ConfigEditor open dialog
In ConfigEditor, when open DSC files, many files will show up. It
is expected to only open the CfgDataDef.dsc. This patch changed
the file match pattern to only list *Def.dsc file.  In this way,
user will not make mistake to open some include DSC file.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-06-19 15:39:47 -07:00
Guo Dong 5e10bd1e07 Update BSD license to BSD+Patent license
To align with EDK2, update file license
to use BSD+Patent license

Signed-off-by: Guo Dong <guo.dong@intel.com>
2019-06-13 10:46:49 -07:00
Maurice Ma 84db8526e7 Use FSP INF file to guide FSP binary copy from repo
This patch utilizes information from FspBin.inf to checkout specific
tag from FSP repo and copy files to SBL source tree.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-06-12 13:59:14 -07:00
Maurice Ma 6f8c44b375 Sync up with EDK2 stable tag edk2-stable201905
Synced up MdePkg, IntelFsp2Pkg and BaseTools to EDK2 stable tag
edk2-stable201905.

There are several changes for MdePkg and BaseTools.
MdePkg:
 - Support light print to reduce SBL size
   MdePkg\Library\BasePrintLib\PrintLibInternal.c
   MdePkg\Include\Library\DebugLib.h
 - TCG TPM2 spec changes and remove dependencies
   MdePkg\Include\IndustryStandard\UefiTcgPlatform.h
   MdePkg\Include\IndustryStandard\Tpm2Acpi.h
 - Use old NVM protocol file
   MdePkg\Include\Protocol\NvmExpressPassthru.h
 - Removed unused files

BaseTools:
 - Added LZ4 support
 - Removed unused files

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-06-12 08:29:06 -07:00
Aiden Park f72baff803 [Script] Skip CopyFspBins for unsupported platforms (#182)
Instead of Exception, need to skip FSP copying for all unsupported platforms

Signed-off-by: Aiden Park <aiden.park@intel.com>
2019-06-11 17:21:53 -07:00
Aiden Park ad835d686c Initial baseline for Whiskeylake/Coffeelake platforms support
- Build command (target 'cfl' is common for both WHL/CFL)
  python BuildLoader.py build cfl

- Stitch command
  python Platform/CoffeelakeBoardPkg/Script/StitchLoader.py
  -i <EXISTING_IFWI_IMAGE>
  -o <SBL_IFWI_IMAGE>
  -s Outputs/cfl/SlimBootloader.bin

Signed-off-by: Aiden Park <aiden.park@intel.com>
2019-06-11 15:24:46 -07:00
Raghava Gudla c55eb04d03 Fix error during capsule generation
Signed-off-by: Raghava Gudla <raghava.gudla@intel.com>
2019-05-24 15:58:43 -07:00
Raghava Gudla f489425ba7 Package multiple firmware into single capsule
This patch will update GenCapsuleFirmware.py tool to package
multiple firmware update images into single capsule.

Example:

python GenCapsuleFirmware.py -p BIOS pld1.bin -p <GUID> pld2.bin
	   -p CSME Pld3.bin -p CSMD Pld4.bin -o img.bin -k  TestSigningPrivateKey.pem

The following are the changes made

1) Capsule header format is changed to align with
   EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER
2) Each firmware image in the capsule will have
   EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER
3) BIOS, CSME, CSME Update Driver (CSMD) and CFGData payloads
   can be passed to the tool using their names as suggested in
   example.
4) Unknown payloads can also be passed to the tool with associated
   guid as input.

Signed-off-by: Raghava Gudla <raghava.gudla@intel.com>
2019-05-23 15:35:24 -07:00
Maurice Ma 02771f5fb9 Add payload binary file check in BuildUtility.py
This patch added the additional existence check for payload binary.
If the file does not exist, it will error out.  Also if the binary
is already under build FV folder, skip the unnecessary copy.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2019-04-23 11:11:46 -07:00