|
@@ -19,31 +19,45 @@ universal payload specification. And a Platform Payload could be built from Plat
|
|
|
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.
|
|
|
+
|
|
|
## Firmware Volumes
|
|
|
-* FvPlatformPayload
|
|
|
+* PlatformPayload.fv
|
|
|
|
|
|
## Build Flows
|
|
|
-use windows host as example to generate a full-feature payload:
|
|
|
+Use Windows host as example to generate a full-feature payload:
|
|
|
|
|
|
-** Setup the build env
|
|
|
+* Setup the build env
|
|
|
+<pre>
|
|
|
set WORKSPACE=c:\payload
|
|
|
-set PACKAGES_PATH=%WORKSPACE%\edk2;%WORKSPACE%\edk2-platforms\Features\Intel;
|
|
|
- %WORKSPACE%\edk2-platforms\Platform\Intel
|
|
|
+set PACKAGES_PATH=%WORKSPACE%\edk2;%WORKSPACE%\edk2-platforms\Features\Intel;%WORKSPACE%\edk2-platforms\Platform\Intel
|
|
|
edk2\edksetup.bat
|
|
|
-
|
|
|
-** Build universal UEFI payload with platform Payload
|
|
|
+</pre>
|
|
|
+* Build universal UEFI payload with platform payload
|
|
|
+<pre>
|
|
|
python edk2-platforms\Features\Intel\PlatformPayloadFeaturePkg\PlatformPayloadFeaturePkg.py -t VS2019 -D SMM_SUPPORT=TRUE -DVARIABLE_SUPPORT=NONE -D SMM_VARIABLE=TRUE
|
|
|
-or
|
|
|
+</pre>
|
|
|
+* Build universal UEFI payload then build the platform payload and patch it to the universal UEFI payload
|
|
|
+<pre>
|
|
|
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
|
|
|
+</pre>
|
|
|
|
|
|
- If build success, the final UEFI payload is at Build\UefiPayloadPkgX64\UniversalPayload.elf.
|
|
|
+If build succeeds, the final UEFI payload is at <B>Build\UefiPayloadPkgX64\UniversalPayload.elf</B>
|
|
|
|
|
|
+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.
|
|
|
+<pre>
|
|
|
+build -p PlatformPayloadFeaturePkg/PlatformPayloadFeaturePkg.dsc -a X64 -a IA32
|
|
|
+</pre>
|
|
|
## Features
|
|
|
|
|
|
-1. Modules
|
|
|
-Currently only SMM veriable feature is available.
|
|
|
+1. SMM variable feature configuration
|
|
|
+ * PcdPlatformPayloadFeatureEnable - Enables this feature.
|
|
|
+ * SMM_VARIABLE - TRUE enables the SPI SMM variable feature implementation.
|
|
|
+
|
|
|
+2. Modules: Currently only SMM variable feature is available.
|
|
|
Several build macros are used as below for SMM variable feature modules.
|
|
|
+<pre>
|
|
|
!if $(SMM_VARIABLE) == TRUE
|
|
|
## PchSmiDispatchSmm
|
|
|
## FvbSmm
|
|
@@ -51,11 +65,16 @@ Several build macros are used as below for SMM variable feature modules.
|
|
|
## VariableSmm
|
|
|
## VariableSmmRuntimeDxe
|
|
|
!endif
|
|
|
+</pre>
|
|
|
+
|
|
|
+3. Data Flows
|
|
|
|
|
|
-2. 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.
|
|
|
|
|
|
## Control Flows
|
|
@@ -63,33 +82,19 @@ EDK2 DXE/SMM core from universal UEFI payload would dispatch all the modules
|
|
|
from this platform payload.
|
|
|
|
|
|
## Test Point Results
|
|
|
-*_TODO_*
|
|
|
-The test(s) that can verify porting is complete for the feature.
|
|
|
-
|
|
|
-Each feature must describe at least one test point to verify the feature is successful. If the test point is not
|
|
|
-implemented, this should be stated.
|
|
|
+None implemented
|
|
|
|
|
|
## Functional Exit Criteria
|
|
|
-*_TODO_*
|
|
|
-The testable functionality for the feature.
|
|
|
-
|
|
|
-This section should provide an ordered list of criteria that a board integrator can reference to ensure the feature is
|
|
|
-functional on their board.
|
|
|
+Boot to UEFI shell and verify variable functionality over resets
|
|
|
|
|
|
## Feature Enabling Checklist
|
|
|
-*_TODO_*
|
|
|
-An ordered list of required activities to achieve desired functionality for the feature.
|
|
|
+Verify configuration of PcdPlatformPayloadFeatureEnable and SMM_VARIABLE
|
|
|
+Boot to UEFI Shell
|
|
|
+Update a variable
|
|
|
+Reset the system and verify variable remains updated
|
|
|
|
|
|
## Performance Impact
|
|
|
-A general expectation for the impact on overall boot performance due to using this feature.
|
|
|
-
|
|
|
-This section is expected to provide guidance on:
|
|
|
-* How to estimate performance impact due to the feature
|
|
|
-* How to measure performance impact of the feature
|
|
|
-* How to manage performance impact of the feature
|
|
|
+Minimal expected
|
|
|
|
|
|
## Common Optimizations
|
|
|
-*_TODO_*
|
|
|
-Common size or performance tuning options for this feature.
|
|
|
-
|
|
|
-This section is recommended but not required. If not used, the contents should be left empty.
|
|
|
+None
|