[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