[edk2-devel] [edk2-platforms: PATCH v4] IntelSiliconPkg/SpiFvbServiceSmm: Support Additional NVS region.
Chiu, Chasel
chasel.chiu at intel.com
Thu Feb 9 18:37:57 UTC 2023
Thanks for promptly reviewing and good suggestions Michael, Isaac!
I have merged this patch: https://github.com/tianocore/edk2-platforms/commit/88d44c563d9fd5c95be93e706f9420352ee4c053
Thanks,
Chasel
> -----Original Message-----
> From: Oram, Isaac W <isaac.w.oram at intel.com>
> Sent: Thursday, February 9, 2023 10:34 AM
> To: Chiu, Chasel <chasel.chiu at intel.com>; devel at edk2.groups.io
> Cc: S, Ashraf Ali <ashraf.ali.s at intel.com>; Chaganty, Rangasai V
> <rangasai.v.chaganty at intel.com>; Ni, Ray <ray.ni at intel.com>; Kubacki,
> Michael <michael.kubacki at microsoft.com>
> Subject: RE: [edk2-platforms: PATCH v4] IntelSiliconPkg/SpiFvbServiceSmm:
> Support Additional NVS region.
>
> Reviewed-by: Isaac Oram <isaac.w.oram at intel.com>
>
> -----Original Message-----
> From: Chiu, Chasel <chasel.chiu at intel.com>
> Sent: Thursday, February 9, 2023 10:27 AM
> To: devel at edk2.groups.io
> Cc: Chiu, Chasel <chasel.chiu at intel.com>; S, Ashraf Ali <ashraf.ali.s at intel.com>;
> Oram, Isaac W <isaac.w.oram at intel.com>; Chaganty, Rangasai V
> <rangasai.v.chaganty at intel.com>; Ni, Ray <ray.ni at intel.com>; Kubacki,
> Michael <michael.kubacki at microsoft.com>
> Subject: [edk2-platforms: PATCH v4] IntelSiliconPkg/SpiFvbServiceSmm: Support
> Additional NVS region.
>
> Platform may implement an additional NVS region following Regular variable
> region and in this case SpiFvbService should include both region size when
> calculating the total NVS region size.
>
> The PcdFlashNvStorageAdditionalSize is for compatible with legacy usages that
> should be deprecated. The new usage model should define separate regions
> without implicit connections to UEFI Variable or FTW regions.
>
> Example NVS flash map for such legacy usage:
> Note: PcdFlashNvStorageAdditionalSize is equal to platform
> PcdFlashFvNvStorageEventLogSize.
>
> ---------------
> |UEFI Variable|
> ---------------
> |EventLog | <= this is Additional NVS region
> ---------------
> |FTW Working |
> ---------------
> |FTW Spare |
> ---------------
>
> Cc: Ashraf Ali S <ashraf.ali.s at intel.com>
> Cc: Isaac Oram <isaac.w.oram at intel.com>
> Cc: Rangasai V Chaganty <rangasai.v.chaganty at intel.com>
> Cc: Ray Ni <ray.ni at intel.com>
> Cc: Michael Kubacki <michael.kubacki at microsoft.com>
> Signed-off-by: Chasel Chiu <chasel.chiu at intel.com>
> Reviewed-by: Michael Kubacki <michael.kubacki at microsoft.com>
> ---
>
> Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceCommon
> .c | 22 ++++++++++++++++++++++
> Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceSmm.inf
> | 7 ++++---
> Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec | 11
> +++++++++++
> 3 files changed, 37 insertions(+), 3 deletions(-)
>
> diff --git
> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceComm
> on.c
> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceComm
> on.c
> index 942abf95a6..fcdc715263 100644
> ---
> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceComm
> on.c
> +++ b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbSe
> +++ rviceCommon.c
> @@ -568,6 +568,28 @@ GetVariableFvInfo (
> return; } + //+ // GetVariableFlashNvStorageInfo () only reports regular
> variable region information,+ // if platform implemented an additional NVS
> region following the regular variable region,+ // then both region size should be
> included as overall NVS region size.+ //+ // The below
> PcdFlashNvStorageAdditionalSize is for compatible with legacy usages that
> should be deprecated.+ // The new usage model should define separate regions
> without implicit connections to UEFI Variable or FTW regions.+ //+ // Example
> NVS flash map for such legacy usage:+ // Note:
> PcdFlashNvStorageAdditionalSize is equal to platform
> PcdFlashFvNvStorageEventLogSize.+ // ---------------+ // |UEFI Variable|+ // -
> --------------+ // |EventLog | <= this is Additional NVS region+ // ---------------
> + // |FTW Working |+ // ---------------+ // |FTW Spare |+ // ---------------+
> //+ NvStoreLength += PcdGet32 (PcdFlashNvStorageAdditionalSize);+ Status =
> GetVariableFlashFtwSpareInfo (&NvBaseAddress, &Length64); if (!EFI_ERROR
> (Status)) { // Stay within the current UINT32 size assumptions in the variable
> stack.diff --git
> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceSmm.in
> f
> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceSmm.in
> f
> index 73049eceb2..f4009d8d8c 100644
> ---
> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceSmm.in
> f
> +++ b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbSe
> +++ rviceSmm.inf
> @@ -43,9 +43,10 @@
> IntelSiliconPkg/IntelSiliconPkg.dec [Pcd]-
> gIntelSiliconPkgTokenSpaceGuid.PcdFlashMicrocodeFvBase ## CONSUMES-
> gIntelSiliconPkgTokenSpaceGuid.PcdFlashMicrocodeFvSize ## CONSUMES-
> gIntelSiliconPkgTokenSpaceGuid.PcdFlashVariableStoreType ##
> SOMETIMES_CONSUMES+
> gIntelSiliconPkgTokenSpaceGuid.PcdFlashMicrocodeFvBase ##
> CONSUMES+ gIntelSiliconPkgTokenSpaceGuid.PcdFlashMicrocodeFvSize
> ## CONSUMES+ gIntelSiliconPkgTokenSpaceGuid.PcdFlashVariableStoreType
> ## SOMETIMES_CONSUMES+
> gIntelSiliconPkgTokenSpaceGuid.PcdFlashNvStorageAdditionalSize ##
> CONSUMES [Sources] FvbInfo.cdiff --git
> a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec
> b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec
> index 63dae756ad..d73a51ca52 100644
> --- a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec
> +++ b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec
> @@ -194,3 +194,14 @@
> # Other value: reserved for future use.<BR> # @Prompt Flash Variable Store
> type.
> gIntelSiliconPkgTokenSpaceGuid.PcdFlashVariableStoreType|0x00|UINT8|0x000
> 0000E++ ## Declares Additional NVS Region Size.<BR><BR>+ # Platform may
> implement a Regular variable region and an additional region, which will require
> this PCD+ # to tell SpiFvbService to include both regions.+ # Note: This PCD is
> for compatible with legacy usages that should be deprecated.+ # The new
> usage model should define separate regions without implicit connections to
> UEFI Variable or FTW regions.<BR>+ # Example legacy usage is to set this PCD
> equal to platform PcdFlashFvNvStorageEventLogSize.+ # 0: No additional NVS
> region.<BR>+ # non-zero: The size of an additional NVS region following the
> Regular variable region.<BR>+ # @Prompt Additional NVS Region Size.+
> gIntelSiliconPkgTokenSpaceGuid.PcdFlashNvStorageAdditionalSize|0x00000000|
> UINT32|0x0000000F--
> 2.35.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#99928): https://edk2.groups.io/g/devel/message/99928
Mute This Topic: https://groups.io/mt/96859489/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list