Patrick Rudolph d7466862b7 PlatformPayloadFeaturePkg.py: Add Linux support | 1 gadu atpakaļ | |
---|---|---|
.. | ||
Fvb | 1 gadu atpakaļ | |
Include | 1 gadu atpakaļ | |
Library | 1 gadu atpakaļ | |
PchSmiDispatchSmm | 1 gadu atpakaļ | |
PlatformPayloadFeaturePkg.dec | 1 gadu atpakaļ | |
PlatformPayloadFeaturePkg.dsc | 1 gadu atpakaļ | |
PlatformPayloadFeaturePkg.fdf | 1 gadu atpakaļ | |
PlatformPayloadFeaturePkg.py | 1 gadu atpakaļ | |
Readme.md | 1 gadu atpakaļ |
This package provides a common platform payload which is expected to work on most Intel platforms with a bootloader.
Bootloader initialize memory/silicon/platform and payload focus on boot media initializaiton and OS boot. Payload is expected to be re-used on different Platforms.
In the reality, some payload modules have platform dependency (e.g. only for Intel PCH) or bootloader dependency (only for coreboot). These modules would be located in edk2-platform repo.
The generic UEFI payload could be built from EDK2 UefiPayloadPkg in ELF format following universal payload specification. And a Platform Payload could be built from PlatformPayloadFeaturePkg to provide Intel platform specific features (e.g. SPI module, PCH SMM) in FV/FD format. This platform payload could be inserted into universal UEFI payload as an ELF section to generate a full-feature payload.
Use Windows host as example to generate a full-feature payload:
set WORKSPACE=c:\payload set PACKAGES_PATH=%WORKSPACE%\edk2;%WORKSPACE%\edk2-platforms\Features\Intel;%WORKSPACE%\edk2-platforms\Platform\Intel edk2\edksetup.bat
python edk2-platforms\Features\Intel\PlatformPayloadFeaturePkg\PlatformPayloadFeaturePkg.py -t VS2019 -D SMM_SUPPORT=TRUE -DVARIABLE_SUPPORT=NONE -D SMM_VARIABLE=TRUE
python edk2\UefiPayloadPkg\UniversalPayloadBuild.py -t VS2019 -D SMM_SUPPORT=TRUE -DVARIABLE_SUPPORT=NONE python edk2-platforms\Features\Intel\PlatformPayloadFeaturePkg\PlatformPayloadFeaturePkg.py -t VS2019 -D SMM_VARIABLE=TRUE -s
If build succeeds, the final UEFI payload is at Build\UefiPayloadPkgX64\UniversalPayload.elf
Note that standalone feature package build works with «-a X64» or «-a IA32 -a X64» but «-a IA32» is not supported. Note that this does not patch the universal UEFI payload, it only creates a PlatformPayload.fv.
build -p PlatformPayloadFeaturePkg/PlatformPayloadFeaturePkg.dsc -a X64 -a IA32
SMM variable feature configuration
Modules: Currently only SMM variable feature is available. Several build macros are used as below for SMM variable feature modules.
!if $(SMM_VARIABLE) == TRUEPchSmiDispatchSmm
FvbSmm
FaultTolerantWriteSmm
VariableSmm
VariableSmmRuntimeDxe
!endif
Data Flows
SMM variable:
The interface with bootloader are defined in PlatformPayloadFeaturePkg\Include\Guid
SpiFlashInfoGuid.h – SPI related information for SPI flash operation.
NvVariableInfoGuid.h – Variable related information for SPI NV variables.
EDK2 DXE/SMM core from universal UEFI payload would dispatch all the modules from this platform payload.
None implemented
Boot to UEFI shell and verify variable functionality over resets
Verify configuration of PcdPlatformPayloadFeatureEnable and SMM_VARIABLE Boot to UEFI Shell Update a variable Reset the system and verify variable remains updated
Minimal expected
None