From: "Guo Dong" <guo.dong@intel.com>
To: "Oram, Isaac W" <isaac.w.oram@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Chaganty, Rangasai V" <rangasai.v.chaganty@intel.com>,
"Desimone, Nathaniel L" <nathaniel.l.desimone@intel.com>,
"Gao, Liming" <gaoliming@byosoft.com.cn>,
"Ni, Ray" <ray.ni@intel.com>
Subject: Re: [edk2-devel][edk2-platforms][PATCH V1 3/3] PlatformPayloadFeaturePkg: Update contents to match feature conventions
Date: Fri, 12 Aug 2022 22:54:36 +0000 [thread overview]
Message-ID: <CY5PR11MB6260DE82DFE63D4ADE3E563E9E679@CY5PR11MB6260.namprd11.prod.outlook.com> (raw)
In-Reply-To: <493b7ee0cf43c74837db79e0d660011500c99cff.1660171324.git.isaac.w.oram@intel.com>
Reviewed-by: Guo Dong <guo.dong@intel.com>
-----Original Message-----
From: Oram, Isaac W <isaac.w.oram@intel.com>
Sent: Wednesday, August 10, 2022 3:47 PM
To: devel@edk2.groups.io
Cc: Oram, Isaac W <isaac.w.oram@intel.com>; Chaganty, Rangasai V <rangasai.v.chaganty@intel.com>; Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Ni, Ray <ray.ni@intel.com>; Dong, Guo <guo.dong@intel.com>
Subject: [edk2-devel][edk2-platforms][PATCH V1 3/3] PlatformPayloadFeaturePkg: Update contents to match feature conventions
Rename gPlatformPayloadPkgTokenSpaceGuid to gPlatformPayloadFeaturePkgTokenSpaceGuid
Rename PcdPayloadPackageFeatureEnable to PcdPlatformPayloadFeatureEnable
Update Readme including format improvements
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Guo Dong <guo.dong@intel.com>
Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
.../AdvancedFeaturePkg/AdvancedFeaturePkg.dsc | 2 +-
.../Include/AdvancedFeatures.dsc | 2 +-
.../Include/AdvancedFeaturesPcd.dsc | 2 +-
.../AdvancedFeaturePkg/Include/PostMemory.fdf | 2 +- .../AdvancedFeaturePkg/Include/PreMemory.fdf | 2 +- .../PlatformPayloadFeaturePkg/Fvb/FvbSmm.inf | 2 +-
.../PlatformPayloadFeaturePkg.dec | 6 +-
.../Intel/PlatformPayloadFeaturePkg/Readme.md | 73 ++++++++++---------
8 files changed, 48 insertions(+), 43 deletions(-)
diff --git a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
index df8e678ae8..236c5570ca 100644
--- a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
@@ -84,7 +84,7 @@
#
# Individual features
#
- gPlatformPayloadPkgTokenSpaceGuid.PcdPayloadPackageFeatureEnable |TRUE
+
+ gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdPlatformPayloadFeatureEnab
+ le |TRUE
#
# PCD that are required to be set by the build target should be configured here for test purposes diff --git a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
index 6a80546592..804aab89bc 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
@@ -79,6 +79,6 @@
#
# Individual features
#
-!if gPlatformPayloadPkgTokenSpaceGuid.PcdPayloadPackageFeatureEnable == TRUE
+!if
+gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdPlatformPayloadFeatureEnabl
+e == TRUE
!include PlatformPayloadFeaturePkg/Include/PlatformPayloadFeature.dsc
!endif
diff --git a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
index 08f258a48c..0af5a8bfbc 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
@@ -82,7 +82,7 @@
gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable |FALSE
gVirtualKeyboardFeaturePkgTokenSpaceGuid.PcdVirtualKeyboardFeatureEnable |FALSE
- gPlatformPayloadPkgTokenSpaceGuid.PcdPayloadPackageFeatureEnable |FALSE
+
+ gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdPlatformPayloadFeatureEnab
+ le |FALSE
#
# There seems to be some build parsing odd behavior that requires this PCD to be specified even though diff --git a/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf b/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf
index 66032ba117..349bdcc491 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf
+++ b/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf
@@ -80,6 +80,6 @@
#
# Individual features
#
-!if gPlatformPayloadPkgTokenSpaceGuid.PcdPayloadPackageFeatureEnable == TRUE
+!if
+gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdPlatformPayloadFeatureEnabl
+e == TRUE
!include PlatformPayloadFeaturePkg/Include/PostMemory.fdf
!endif
diff --git a/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf b/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf
index 9cd6de833b..b991a5aabf 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf
+++ b/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf
@@ -80,6 +80,6 @@
#
# Individual features
#
-!if gPlatformPayloadPkgTokenSpaceGuid.PcdPayloadPackageFeatureEnable == TRUE
+!if
+gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdPlatformPayloadFeatureEnabl
+e == TRUE
!include PlatformPayloadFeaturePkg/Include/PreMemory.fdf
!endif
diff --git a/Features/Intel/PlatformPayloadFeaturePkg/Fvb/FvbSmm.inf b/Features/Intel/PlatformPayloadFeaturePkg/Fvb/FvbSmm.inf
index f973465cba..a692d9bf41 100644
--- a/Features/Intel/PlatformPayloadFeaturePkg/Fvb/FvbSmm.inf
+++ b/Features/Intel/PlatformPayloadFeaturePkg/Fvb/FvbSmm.inf
@@ -60,7 +60,7 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
- gPlatformPayloadPkgTokenSpaceGuid.PcdNvsDataFile
+ gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdNvsDataFile
[Depex]
TRUE
diff --git a/Features/Intel/PlatformPayloadFeaturePkg/PlatformPayloadFeaturePkg.dec b/Features/Intel/PlatformPayloadFeaturePkg/PlatformPayloadFeaturePkg.dec
index 78d36f12eb..f02c5f70ca 100644
--- a/Features/Intel/PlatformPayloadFeaturePkg/PlatformPayloadFeaturePkg.dec
+++ b/Features/Intel/PlatformPayloadFeaturePkg/PlatformPayloadFeaturePkg
+++ .dec
@@ -21,7 +21,7 @@
#
## Defines the token space for the Payload platform Package PCDs.
#
- gPlatformPayloadPkgTokenSpaceGuid = {0xa375ddc6, 0x74fb, 0x4de1, {0x82, 0x6d, 0xa3, 0x10, 0xa3, 0x3b, 0x89, 0x77}}
+ gPlatformPayloadFeaturePkgTokenSpaceGuid = {0xa375ddc6, 0x74fb,
+ 0x4de1, {0x82, 0x6d, 0xa3, 0x10, 0xa3, 0x3b, 0x89, 0x77}}
#
# SPI variable support
@@ -41,9 +41,9 @@
[PcdsFeatureFlag]
## Feature enabling control
# @Prompt Enable payload platform FV common for most Intel platforms
- gPlatformPayloadPkgTokenSpaceGuid.PcdPayloadPackageFeatureEnable|FALSE|BOOLEAN|0x00000001
+
+ gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdPlatformPayloadFeatureEnab
+ le|FALSE|BOOLEAN|0x00000001
[PcdsFixedAtBuild, PcdsPatchableInModule]
## FFS filename to find the default variable initial data file.
# @Prompt FFS Name of variable initial data file
- gPlatformPayloadPkgTokenSpaceGuid.PcdNvsDataFile |{ 0x1a, 0xf1, 0xb1, 0xae, 0x42, 0xcc, 0xcf, 0x4e, 0xac, 0x60, 0xdb, 0xab, 0xf6, 0xca, 0x69, 0xe6 }|VOID*|0x00000025
+ gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdNvsDataFile |{ 0x1a,
+ 0xf1, 0xb1, 0xae, 0x42, 0xcc, 0xcf, 0x4e, 0xac, 0x60, 0xdb, 0xab,
+ 0xf6, 0xca, 0x69, 0xe6 }|VOID*|0x00000025
diff --git a/Features/Intel/PlatformPayloadFeaturePkg/Readme.md b/Features/Intel/PlatformPayloadFeaturePkg/Readme.md
index 1067196388..9cdb26285c 100644
--- a/Features/Intel/PlatformPayloadFeaturePkg/Readme.md
+++ b/Features/Intel/PlatformPayloadFeaturePkg/Readme.md
@@ -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\Inte
+l;%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
--
2.36.1.windows.1
next prev parent reply other threads:[~2022-08-12 22:54 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-10 22:46 [edk2-devel][edk2-platforms][PATCH V1 0/3] Update PlatformPayloadPkg to match feature conventions Oram, Isaac W
2022-08-10 22:46 ` [edk2-devel][edk2-platforms][PATCH V1 1/3] PlatformPayloadPkg: Fix AdvancedFeaturePkg build issue Oram, Isaac W
2022-08-12 17:41 ` Chaganty, Rangasai V
2022-08-12 22:53 ` Guo Dong
2022-08-10 22:46 ` [edk2-devel][edk2-platforms][PATCH V1 2/3] PlatformPayloadPkg: Rename to match other feature conventions Oram, Isaac W
2022-08-12 21:55 ` Chaganty, Rangasai V
2022-08-12 22:51 ` Guo Dong
2022-08-10 22:46 ` [edk2-devel][edk2-platforms][PATCH V1 3/3] PlatformPayloadFeaturePkg: Update contents to match " Oram, Isaac W
2022-08-12 22:54 ` Guo Dong [this message]
2022-08-16 21:31 ` Chaganty, Rangasai V
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CY5PR11MB6260DE82DFE63D4ADE3E563E9E679@CY5PR11MB6260.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox