[edk2-devel] [edk2-platforms][PATCH v1 1/1] IntelSiliconPkg/SpiFvbService: Add support for VariableFlashInfoLib
Michael Kubacki
mikuback at linux.microsoft.com
Fri Apr 29 20:08:53 UTC 2022
Please help review this patch when possible.
Thanks,
Michael
On 4/22/2022 10:02 AM, Michael Kubacki wrote:
> Reminder to review this patch.
>
>
> On 4/18/2022 7:43 PM, Michael Kubacki wrote:
>> From: Michael Kubacki <michael.kubacki at microsoft.com>
>>
>> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3478
>>
>> Adds support for getting the variable flash information from
>> VariableFlashInfoLib. This library abstracts the source of flash
>> information so platforms could expect the information to come
>> from a different source in the library implementation than the
>> PCDs previously used as the information source in this module.
>>
>> In particular, the library allows Standalone MM platforms to
>> dynamically pass the information behind the library API.
>>
>> Cc: Rangasai V Chaganty <rangasai.v.chaganty at intel.com>
>> Cc: Ray Ni <ray.ni at intel.com>
>> Cc: Nate DeSimone <nathaniel.l.desimone at intel.com>
>> Signed-off-by: Michael Kubacki <michael.kubacki at microsoft.com>
>> ---
>>
>> Notes:
>> Depends on https://bugzilla.tianocore.org/show_bug.cgi?id=3479
>> to complete
>>
>>
>> Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/FvbInfo.c
>> | 120 +++++++++++++-------
>>
>> Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceCommon.c
>> | 93 +++++++++++++--
>>
>> Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceMm.c
>> | 28 ++++-
>>
>> Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceCommon.h
>> | 18 ++-
>>
>> Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceSmm.inf
>> | 6 +-
>>
>> Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.inf
>> | 6 +-
>>
>> Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc
>> | 7 ++
>> 7 files changed, 215 insertions(+), 63 deletions(-)
>>
>> diff --git
>> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/FvbInfo.c
>> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/FvbInfo.c
>> index 7f2678fa9e5a..5e78c1ce0c14 100644
>> --- a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/FvbInfo.c
>> +++ b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/FvbInfo.c
>> @@ -3,6 +3,7 @@
>> These data is intent to decouple FVB driver with FV header.
>> Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
>> +Copyright (c) Microsoft Corporation.<BR>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>> **/
>> @@ -11,51 +12,84 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>> #define FIRMWARE_BLOCK_SIZE 0x10000
>> #define FVB_MEDIA_BLOCK_SIZE FIRMWARE_BLOCK_SIZE
>> -
>> -#define NV_STORAGE_BASE_ADDRESS
>> FixedPcdGet32(PcdFlashNvStorageVariableBase)
>> -#define SYSTEM_NV_BLOCK_NUM
>> ((FixedPcdGet32(PcdFlashNvStorageVariableSize)+
>> FixedPcdGet32(PcdFlashNvStorageFtwWorkingSize) +
>> FixedPcdGet32(PcdFlashNvStorageFtwSpareSize))/ FVB_MEDIA_BLOCK_SIZE)
>> -
>> typedef struct {
>> EFI_PHYSICAL_ADDRESS BaseAddress;
>> EFI_FIRMWARE_VOLUME_HEADER FvbInfo;
>> EFI_FV_BLOCK_MAP_ENTRY End[1];
>> } EFI_FVB2_MEDIA_INFO;
>> -//
>> -// This data structure contains a template of all correct FV headers,
>> which is used to restore
>> -// Fv header if it's corrupted.
>> -//
>> -EFI_FVB2_MEDIA_INFO mPlatformFvbMediaInfo[] = {
>> - //
>> - // Systen NvStorage FVB
>> - //
>> - {
>> - NV_STORAGE_BASE_ADDRESS,
>> - {
>> - {0,}, //ZeroVector[16]
>> - EFI_SYSTEM_NV_DATA_FV_GUID,
>> - FVB_MEDIA_BLOCK_SIZE * SYSTEM_NV_BLOCK_NUM,
>> - EFI_FVH_SIGNATURE,
>> - 0x0004feff, // check MdePkg/Include/Pi/PiFirmwareVolume.h for
>> details on EFI_FVB_ATTRIBUTES_2
>> - sizeof (EFI_FIRMWARE_VOLUME_HEADER) + sizeof
>> (EFI_FV_BLOCK_MAP_ENTRY),
>> - 0, //CheckSum which will be calucated dynamically.
>> - 0, //ExtHeaderOffset
>> - {0,}, //Reserved[1]
>> - 2, //Revision
>> - {
>> - {
>> - SYSTEM_NV_BLOCK_NUM,
>> - FVB_MEDIA_BLOCK_SIZE,
>> - }
>> - }
>> - },
>> - {
>> - {
>> - 0,
>> - 0
>> - }
>> - }
>> +/**
>> + Returns FVB media information for NV variable storage.
>> +
>> + @return FvbMediaInfo A pointer to an instance of FVB
>> media info produced by this function.
>> + The buffer is allocated
>> internally to this function and it is the caller's
>> + responsibility to free the memory
>> +
>> +**/
>> +typedef
>> +EFI_STATUS
>> +(*FVB_MEDIA_INFO_GENERATOR)(
>> + OUT EFI_FVB2_MEDIA_INFO *FvbMediaInfo
>> + );
>> +
>> +/**
>> + Returns FVB media information for NV variable storage.
>> +
>> + @return FvbMediaInfo A pointer to an instance of FVB
>> media info produced by this function.
>> + The buffer is allocated
>> internally to this function and it is the caller's
>> + responsibility to free the memory
>> +
>> +**/
>> +EFI_STATUS
>> +GenerateNvStorageFvbMediaInfo (
>> + OUT EFI_FVB2_MEDIA_INFO *FvbMediaInfo
>> + )
>> +{
>> + UINT32 NvBlockNum;
>> + UINT32 TotalNvVariableStorageSize;
>> + EFI_PHYSICAL_ADDRESS NvStorageBaseAddress;
>> + EFI_FIRMWARE_VOLUME_HEADER FvbInfo = {
>> +
>> {0,}, //ZeroVector[16]
>> +
>> EFI_SYSTEM_NV_DATA_FV_GUID, //FileSystemGuid
>> +
>> 0, //FvLength
>> +
>> EFI_FVH_SIGNATURE, //Signature
>> +
>> 0x0004feff, //Attributes
>> + sizeof
>> (EFI_FIRMWARE_VOLUME_HEADER) + //HeaderLength
>> + sizeof
>> (EFI_FV_BLOCK_MAP_ENTRY),
>> +
>> 0, //Checksum
>> +
>> 0, //ExtHeaderOffset
>> +
>> {0,}, //Reserved[1]
>> +
>> 2, //Revision
>> +
>> { //BlockMap[1]
>> + {0,0}
>> + }
>> + };
>> +
>> + if (FvbMediaInfo == NULL) {
>> + return EFI_INVALID_PARAMETER;
>> }
>> +
>> + ZeroMem (FvbMediaInfo, sizeof (*FvbMediaInfo));
>> +
>> + GetVariableFvInfo (&NvStorageBaseAddress,
>> &TotalNvVariableStorageSize);
>> + if ((NvStorageBaseAddress == 0) || (TotalNvVariableStorageSize ==
>> 0)) {
>> + return EFI_UNSUPPORTED;
>> + }
>> +
>> + NvBlockNum = TotalNvVariableStorageSize / FVB_MEDIA_BLOCK_SIZE;
>> +
>> + FvbInfo.FvLength = (UINT64)(NvBlockNum * FVB_MEDIA_BLOCK_SIZE);
>> + FvbInfo.BlockMap[0].NumBlocks = NvBlockNum;
>> + FvbInfo.BlockMap[0].Length = FVB_MEDIA_BLOCK_SIZE;
>> +
>> + FvbMediaInfo->BaseAddress = NvStorageBaseAddress;
>> + CopyMem (&FvbMediaInfo->FvbInfo, &FvbInfo, sizeof (FvbInfo));
>> +
>> + return EFI_SUCCESS;
>> +}
>> +
>> +FVB_MEDIA_INFO_GENERATOR mFvbMediaInfoGenerators[] = {
>> + GenerateNvStorageFvbMediaInfo
>> };
>> EFI_STATUS
>> @@ -64,12 +98,16 @@ GetFvbInfo (
>> OUT EFI_FIRMWARE_VOLUME_HEADER **FvbInfo
>> )
>> {
>> + EFI_STATUS Status;
>> + EFI_FVB2_MEDIA_INFO FvbMediaInfo;
>> UINTN Index;
>> EFI_FIRMWARE_VOLUME_HEADER *FvHeader;
>> - for (Index = 0; Index < sizeof (mPlatformFvbMediaInfo) / sizeof
>> (EFI_FVB2_MEDIA_INFO); Index++) {
>> - if (mPlatformFvbMediaInfo[Index].BaseAddress == FvBaseAddress) {
>> - FvHeader = &mPlatformFvbMediaInfo[Index].FvbInfo;
>> + for (Index = 0; Index < ARRAY_SIZE (mFvbMediaInfoGenerators);
>> Index++) {
>> + Status = mFvbMediaInfoGenerators[Index](&FvbMediaInfo);
>> + ASSERT_EFI_ERROR (Status);
>> + if (!EFI_ERROR (Status) && (FvbMediaInfo.BaseAddress ==
>> FvBaseAddress)) {
>> + FvHeader = &FvbMediaInfo.FvbInfo;
>> //
>> // Update the checksum value of FV header.
>> diff --git
>> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceCommon.c
>> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceCommon.c
>>
>> index dab818e98087..942abf95a64f 100644
>> ---
>> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceCommon.c
>>
>> +++
>> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceCommon.c
>>
>> @@ -3,6 +3,7 @@
>> which are compliant with the Intel(R) Serial Flash Interface
>> Compatibility Specification.
>> Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
>> +Copyright (c) Microsoft Corporation.<BR>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>> **/
>> @@ -25,12 +26,6 @@ FV_INFO mPlatformFvBaseAddress[] = {
>> {0, 0}
>> };
>> -FV_INFO mPlatformDefaultBaseAddress[] = {
>> - {0, 0}, // {FixedPcdGet32(PcdFlashNvStorageVariableBase),
>> FixedPcdGet32(PcdFlashNvStorageVariableSize)},
>> - {0, 0}, // {FixedPcdGet32(PcdFlashMicrocodeFvBase),
>> FixedPcdGet32(PcdFlashMicrocodeFvSize)},
>> - {0, 0}
>> -};
>> -
>> FV_MEMMAP_DEVICE_PATH mFvMemmapDevicePathTemplate = {
>> {
>> {
>> @@ -530,6 +525,85 @@ FvbSetVolumeAttributes (
>> return EFI_SUCCESS;
>> }
>> +/**
>> + Get the total size of the firmware volume on flash used for
>> variable store operations.
>> +
>> + @param[out] BaseAddress Base address of the variable store
>> firmware volume.
>> + @param[out] Length Length in bytes of the firmware
>> volume used for variable store operations.
>> +
>> +**/
>> +VOID
>> +GetVariableFvInfo (
>> + OUT EFI_PHYSICAL_ADDRESS *BaseAddress,
>> + OUT UINT32 *Length
>> + )
>> +{
>> + EFI_STATUS Status;
>> + EFI_PHYSICAL_ADDRESS NvBaseAddress;
>> + EFI_PHYSICAL_ADDRESS NvVariableBaseAddress;
>> + UINT64 Length64;
>> + UINT32 NvStoreLength;
>> + UINT32 FtwSpareLength;
>> + UINT32 FtwWorkingLength;
>> + UINT32 TotalLength;
>> +
>> + TotalLength = 0;
>> + Status = EFI_SUCCESS;
>> +
>> + if ((BaseAddress == NULL) || (Length == NULL)) {
>> + ASSERT ((BaseAddress != NULL) && (Length != NULL));
>> + return;
>> + }
>> + *BaseAddress = 0;
>> + *Length = 0;
>> +
>> + Status = GetVariableFlashNvStorageInfo (&NvBaseAddress, &Length64);
>> + if (!EFI_ERROR (Status)) {
>> + NvVariableBaseAddress = NvBaseAddress;
>> + // Stay within the current UINT32 size assumptions in the
>> variable stack.
>> + Status = SafeUint64ToUint32 (Length64, &NvStoreLength);
>> + }
>> + if (EFI_ERROR (Status)) {
>> + ASSERT_EFI_ERROR (Status);
>> + return;
>> + }
>> +
>> + Status = GetVariableFlashFtwSpareInfo (&NvBaseAddress, &Length64);
>> + if (!EFI_ERROR (Status)) {
>> + // Stay within the current UINT32 size assumptions in the
>> variable stack.
>> + Status = SafeUint64ToUint32 (Length64, &FtwSpareLength);
>> + }
>> + if (EFI_ERROR (Status)) {
>> + ASSERT_EFI_ERROR (Status);
>> + return;
>> + }
>> +
>> + Status = GetVariableFlashFtwWorkingInfo (&NvBaseAddress, &Length64);
>> + if (!EFI_ERROR (Status)) {
>> + // Stay within the current UINT32 size assumptions in the
>> variable stack.
>> + Status = SafeUint64ToUint32 (Length64, &FtwWorkingLength);
>> + }
>> + if (EFI_ERROR (Status)) {
>> + ASSERT_EFI_ERROR (Status);
>> + return;
>> + }
>> +
>> + Status = SafeUint32Add (NvStoreLength, FtwSpareLength, &TotalLength);
>> + if (EFI_ERROR (Status)) {
>> + ASSERT_EFI_ERROR (Status);
>> + return;
>> + }
>> +
>> + Status = SafeUint32Add (TotalLength, FtwWorkingLength, &TotalLength);
>> + if (EFI_ERROR (Status)) {
>> + ASSERT_EFI_ERROR (Status);
>> + return;
>> + }
>> +
>> + *BaseAddress = NvVariableBaseAddress;
>> + *Length = TotalLength;
>> +}
>> +
>> /**
>> Check the integrity of firmware volume header
>> @@ -545,7 +619,12 @@ IsFvHeaderValid (
>> IN CONST EFI_FIRMWARE_VOLUME_HEADER *FvHeader
>> )
>> {
>> - if (FvBase == PcdGet32(PcdFlashNvStorageVariableBase)) {
>> + EFI_PHYSICAL_ADDRESS NvStorageFvBaseAddress;
>> + UINT32 NvStorageSize;
>> +
>> + GetVariableFvInfo (&NvStorageFvBaseAddress, &NvStorageSize);
>> +
>> + if (FvBase == NvStorageFvBaseAddress) {
>> if (CompareMem (&FvHeader->FileSystemGuid,
>> &gEfiSystemNvDataFvGuid, sizeof(EFI_GUID)) != 0 ) {
>> return FALSE;
>> }
>> diff --git
>> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceMm.c
>> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceMm.c
>>
>> index 42a0828c6fae..a1b4514a0b3a 100644
>> ---
>> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceMm.c
>>
>> +++
>> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceMm.c
>>
>> @@ -113,15 +113,31 @@ FvbInitialize (
>> UINT32 MaxLbaSize;
>> UINT32 BytesWritten;
>> UINTN BytesErased;
>> + UINT64 NvStorageFvSize;
>> +
>> + Status = GetVariableFlashNvStorageInfo (&BaseAddress,
>> &NvStorageFvSize);
>> + if (EFI_ERROR (Status)) {
>> + ASSERT_EFI_ERROR (Status);
>> + DEBUG ((DEBUG_ERROR, "[%a] - An error ocurred getting variable
>> info - %r.\n", __FUNCTION__, Status));
>> + return;
>> + }
>> +
>> + // Stay within the current UINT32 size assumptions in the variable
>> stack.
>> + Status = SafeUint64ToUint32 (BaseAddress,
>> &mPlatformFvBaseAddress[0].FvBase);
>> + if (EFI_ERROR (Status)) {
>> + ASSERT_EFI_ERROR (Status);
>> + DEBUG ((DEBUG_ERROR, "[%a] - 64-bit variable storage base address
>> not supported.\n", __FUNCTION__));
>> + return;
>> + }
>> + Status = SafeUint64ToUint32 (NvStorageFvSize,
>> &mPlatformFvBaseAddress[0].FvSize);
>> + if (EFI_ERROR (Status)) {
>> + ASSERT_EFI_ERROR (Status);
>> + DEBUG ((DEBUG_ERROR, "[%a] - 64-bit variable storage size not
>> supported.\n", __FUNCTION__));
>> + return;
>> + }
>> - mPlatformFvBaseAddress[0].FvBase =
>> PcdGet32(PcdFlashNvStorageVariableBase);
>> - mPlatformFvBaseAddress[0].FvSize =
>> PcdGet32(PcdFlashNvStorageVariableSize);
>> mPlatformFvBaseAddress[1].FvBase = PcdGet32(PcdFlashMicrocodeFvBase);
>> mPlatformFvBaseAddress[1].FvSize = PcdGet32(PcdFlashMicrocodeFvSize);
>> - mPlatformDefaultBaseAddress[0].FvBase =
>> PcdGet32(PcdFlashNvStorageVariableBase);
>> - mPlatformDefaultBaseAddress[0].FvSize =
>> PcdGet32(PcdFlashNvStorageVariableSize);
>> - mPlatformDefaultBaseAddress[1].FvBase =
>> PcdGet32(PcdFlashMicrocodeFvBase);
>> - mPlatformDefaultBaseAddress[1].FvSize =
>> PcdGet32(PcdFlashMicrocodeFvSize);
>> //
>> // We will only continue with FVB installation if the
>> diff --git
>> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceCommon.h
>> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceCommon.h
>>
>> index e9d69e985814..7b0908b03fdc 100644
>> ---
>> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceCommon.h
>>
>> +++
>> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceCommon.h
>>
>> @@ -2,6 +2,7 @@
>> Common source definitions used in serial flash drivers
>> Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
>> +Copyright (c) Microsoft Corporation.<BR>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>> **/
>> @@ -12,6 +13,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>> #include <Guid/EventGroup.h>
>> #include <Guid/FirmwareFileSystem2.h>
>> #include <Guid/SystemNvDataGuid.h>
>> +#include <Pi/PiFirmwareVolume.h>
>> #include <Protocol/DevicePath.h>
>> #include <Protocol/FirmwareVolumeBlock.h>
>> @@ -24,6 +26,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>> #include <Library/PcdLib.h>
>> #include <Library/DevicePathLib.h>
>> #include <Library/HobLib.h>
>> +#include <Library/VariableFlashInfoLib.h>
>> +#include <Library/SafeIntLib.h>
>> #include <Library/SpiFlashCommonLib.h>
>> @@ -148,11 +152,23 @@ GetFvbInfo (
>> OUT EFI_FIRMWARE_VOLUME_HEADER **FvbInfo
>> );
>> +/**
>> + Get the total size of the firmware volume on flash used for
>> variable store operations.
>> +
>> + @param[out] BaseAddress Base address of the variable store
>> firmware volume.
>> + @param[out] Length Length in bytes of the firmware
>> volume used for variable store operations.
>> +
>> +**/
>> +VOID
>> +GetVariableFvInfo (
>> + OUT EFI_PHYSICAL_ADDRESS *BaseAddress,
>> + OUT UINT32 *Length
>> + );
>> +
>> extern FVB_GLOBAL mFvbModuleGlobal;
>> extern FV_MEMMAP_DEVICE_PATH mFvMemmapDevicePathTemplate;
>> extern FV_PIWG_DEVICE_PATH mFvPIWGDevicePathTemplate;
>> extern EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL mFvbProtocolTemplate;
>> extern FV_INFO mPlatformFvBaseAddress[];
>> -extern FV_INFO mPlatformDefaultBaseAddress[];
>> #endif
>> diff --git
>> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceSmm.inf
>> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceSmm.inf
>>
>> index bf1306f00201..0cfa3f909bdf 100644
>> ---
>> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceSmm.inf
>>
>> +++
>> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceSmm.inf
>>
>> @@ -32,8 +32,10 @@ [LibraryClasses]
>> BaseLib
>> UefiBootServicesTableLib
>> UefiDriverEntryPoint
>> + SafeIntLib
>> SpiFlashCommonLib
>> MmServicesTableLib
>> + VariableFlashInfoLib
>> [Packages]
>> MdePkg/MdePkg.dec
>> @@ -41,10 +43,6 @@ [Packages]
>> IntelSiliconPkg/IntelSiliconPkg.dec
>> [Pcd]
>> - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase ##
>> CONSUMES
>> - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize ##
>> CONSUMES
>> - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize ##
>> CONSUMES
>> - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize ##
>> CONSUMES
>> gIntelSiliconPkgTokenSpaceGuid.PcdFlashMicrocodeFvBase ##
>> CONSUMES
>> gIntelSiliconPkgTokenSpaceGuid.PcdFlashMicrocodeFvSize ##
>> CONSUMES
>> diff --git
>> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.inf
>> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.inf
>>
>> index b66233968247..152cf0036fdb 100644
>> ---
>> a/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.inf
>>
>> +++
>> b/Silicon/Intel/IntelSiliconPkg/Feature/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.inf
>>
>> @@ -31,8 +31,10 @@ [LibraryClasses]
>> MemoryAllocationLib
>> PcdLib
>> MmServicesTableLib
>> + SafeIntLib
>> SpiFlashCommonLib
>> StandaloneMmDriverEntryPoint
>> + VariableFlashInfoLib
>> [Packages]
>> MdePkg/MdePkg.dec
>> @@ -40,10 +42,6 @@ [Packages]
>> IntelSiliconPkg/IntelSiliconPkg.dec
>> [Pcd]
>> - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase ##
>> CONSUMES
>> - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize ##
>> CONSUMES
>> - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize ##
>> CONSUMES
>> - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize ##
>> CONSUMES
>> gIntelSiliconPkgTokenSpaceGuid.PcdFlashMicrocodeFvBase ##
>> CONSUMES
>> gIntelSiliconPkgTokenSpaceGuid.PcdFlashMicrocodeFvSize ##
>> CONSUMES
>> diff --git a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc
>> b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc
>> index 1e826a080f28..170eb480ada1 100644
>> --- a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc
>> +++ b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc
>> @@ -40,9 +40,11 @@ [LibraryClasses]
>>
>> PeiGetVtdPmrAlignmentLib|IntelSiliconPkg/Library/PeiGetVtdPmrAlignmentLib/PeiGetVtdPmrAlignmentLib.inf
>>
>>
>> TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
>>
>> MicrocodeLib|UefiCpuPkg/Library/MicrocodeLib/MicrocodeLib.inf
>> + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
>>
>> SpiFlashCommonLib|IntelSiliconPkg/Library/SpiFlashCommonLibNull/SpiFlashCommonLibNull.inf
>>
>>
>> UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
>>
>>
>> UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
>>
>> +
>> VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf
>>
>> [LibraryClasses.common.PEIM]
>> PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
>> @@ -63,11 +65,16 @@ [LibraryClasses.common.DXE_DRIVER]
>>
>> MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
>>
>> [LibraryClasses.common.DXE_SMM_DRIVER]
>> + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
>> + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
>>
>> MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
>>
>>
>> MmServicesTableLib|MdePkg/Library/MmServicesTableLib/MmServicesTableLib.inf
>>
>>
>> SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
>>
>> + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
>> +
>> UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
>>
>> [LibraryClasses.common.MM_STANDALONE]
>> +
>> HobLib|StandaloneMmPkg/Library/StandaloneMmHobLib/StandaloneMmHobLib.inf
>>
>> MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf
>>
>>
>> MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLib.inf
>>
>>
>> StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf
>>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89449): https://edk2.groups.io/g/devel/message/89449
Mute This Topic: https://groups.io/mt/90551843/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