Reviewed-by: Heng Luo <heng....@intel.com> > -----Original Message----- > From: mikub...@linux.microsoft.com <mikub...@linux.microsoft.com> > Sent: Friday, October 29, 2021 4:43 AM > To: devel@edk2.groups.io > Cc: Chaganty, Rangasai V <rangasai.v.chaga...@intel.com>; Desimone, > Nathaniel L <nathaniel.l.desim...@intel.com>; Luo, Heng <heng....@intel.com> > Subject: [PATCH v6 31/52] TigerlakeOpenBoardPkg: Remove > SmmSpiFlashCommonLib > > From: Michael Kubacki <michael.kuba...@microsoft.com> > > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3307 > > The library has been consolidated with instances in other Intel silicon > packages > as a single instance in IntelSiliconPkg > > Cc: Sai Chaganty <rangasai.v.chaga...@intel.com> > Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> > Cc: Heng Luo <heng....@intel.com> > Signed-off-by: Michael Kubacki <michael.kuba...@microsoft.com> > Reviewed-by: Nate DeSimone <nathaniel.l.desim...@intel.com> > Reviewed-by: Sai Chaganty <rangasai.v.chaga...@intel.com> > --- > > Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/SpiFla > shCommon.c | 210 -------------------- > > Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/SpiFla > shCommonSmmLib.c | 58 ------ > > Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/SmmS > piFlashCommonLib.inf | 49 ----- > 3 files changed, 317 deletions(-) > > diff --git > a/Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/SpiF > lashCommon.c > b/Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/SpiF > lashCommon.c > deleted file mode 100644 > index f86896dd1ff5..000000000000 > --- > a/Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/SpiF > lashCommon.c > +++ /dev/null > @@ -1,210 +0,0 @@ > -/** @file > - Wrap EFI_SPI_PROTOCOL to provide some library level interfaces > - for module use. > - > - Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > - SPDX-License-Identifier: BSD-2-Clause-Patent -**/ > - > -#include <Library/SpiFlashCommonLib.h> > -#include <Library/IoLib.h> > -#include <Protocol/Spi.h> > - > -PCH_SPI_PROTOCOL *mSpiProtocol; > - > -// > -// Variables for boottime and runtime usage. > -// > -UINTN mBiosAreaBaseAddress = 0; > -UINTN mBiosSize = 0; > -UINTN mBiosOffset = 0; > - > -/** > - Enable block protection on the Serial Flash device. > - > - @retval EFI_SUCCESS Opertion is successful. > - @retval EFI_DEVICE_ERROR If there is any device errors. > - > -**/ > -EFI_STATUS > -EFIAPI > -SpiFlashLock ( > - VOID > - ) > -{ > - return EFI_SUCCESS; > -} > - > -/** > - Read NumBytes bytes of data from the address specified by > - PAddress into Buffer. > - > - @param[in] Address The starting physical address of the read. > - @param[in,out] NumBytes On input, the number of bytes to read. On > output, the number > - of bytes actually read. > - @param[out] Buffer The destination data buffer for the read. > - > - @retval EFI_SUCCESS Operation is successful. > - @retval EFI_DEVICE_ERROR If there is any device errors. > - > -**/ > -EFI_STATUS > -EFIAPI > -SpiFlashRead ( > - IN UINTN Address, > - IN OUT UINT32 *NumBytes, > - OUT UINT8 *Buffer > - ) > -{ > - ASSERT ((NumBytes != NULL) && (Buffer != NULL)); > - if ((NumBytes == NULL) || (Buffer == NULL)) { > - return EFI_INVALID_PARAMETER; > - } > - > - // > - // This function is implemented specifically for those platforms > - // at which the SPI device is memory mapped for read. So this > - // function just do a memory copy for Spi Flash Read. > - // > - CopyMem (Buffer, (VOID *) Address, *NumBytes); > - > - return EFI_SUCCESS; > -} > - > -/** > - Write NumBytes bytes of data from Buffer to the address specified by > - PAddresss. > - > - @param[in] Address The starting physical address of the write. > - @param[in,out] NumBytes On input, the number of bytes to write. On > output, > - the actual number of bytes written. > - @param[in] Buffer The source data buffer for the write. > - > - @retval EFI_SUCCESS Operation is successful. > - @retval EFI_DEVICE_ERROR If there is any device errors. > - @retval EFI_INVALID_PARAMETER Invalid parameter. > - > -**/ > -EFI_STATUS > -EFIAPI > -SpiFlashWrite ( > - IN UINTN Address, > - IN OUT UINT32 *NumBytes, > - IN UINT8 *Buffer > - ) > -{ > - EFI_STATUS Status; > - UINTN Offset; > - UINT32 Length; > - UINT32 RemainingBytes; > - > - ASSERT ((NumBytes != NULL) && (Buffer != NULL)); > - if ((NumBytes == NULL) || (Buffer == NULL)) { > - return EFI_INVALID_PARAMETER; > - } > - > - ASSERT (Address >= mBiosAreaBaseAddress); > - if (Address < mBiosAreaBaseAddress) { > - return EFI_INVALID_PARAMETER; > - } > - > - Offset = Address - mBiosAreaBaseAddress; > - > - ASSERT ((*NumBytes + Offset) <= mBiosSize); > - if ((*NumBytes + Offset) > mBiosSize) { > - return EFI_INVALID_PARAMETER; > - } > - > - Status = EFI_SUCCESS; > - RemainingBytes = *NumBytes; > - > - > - while (RemainingBytes > 0) { > - if (RemainingBytes > SECTOR_SIZE_4KB) { > - Length = SECTOR_SIZE_4KB; > - } else { > - Length = RemainingBytes; > - } > - Status = mSpiProtocol->FlashWrite ( > - mSpiProtocol, > - FlashRegionBios, > - (UINT32) Offset, > - Length, > - Buffer > - ); > - if (EFI_ERROR (Status)) { > - break; > - } > - RemainingBytes -= Length; > - Offset += Length; > - Buffer += Length; > - } > - > - // > - // Actual number of bytes written > - // > - *NumBytes -= RemainingBytes; > - > - return Status; > -} > - > -/** > - Erase the block starting at Address. > - > - @param[in] Address The starting physical address of the block to > be > erased. > - This library assume that caller garantee that > the PAddress > - is at the starting address of this block. > - @param[in] NumBytes On input, the number of bytes of the logical > block > to be erased. > - On output, the actual number of bytes erased. > - > - @retval EFI_SUCCESS. Operation is successful. > - @retval EFI_DEVICE_ERROR If there is any device errors. > - @retval EFI_INVALID_PARAMETER Invalid parameter. > - > -**/ > -EFI_STATUS > -EFIAPI > -SpiFlashBlockErase ( > - IN UINTN Address, > - IN UINTN *NumBytes > - ) > -{ > - EFI_STATUS Status; > - UINTN Offset; > - UINTN RemainingBytes; > - > - ASSERT (NumBytes != NULL); > - if (NumBytes == NULL) { > - return EFI_INVALID_PARAMETER; > - } > - > - ASSERT (Address >= mBiosAreaBaseAddress); > - if (Address < mBiosAreaBaseAddress) { > - return EFI_INVALID_PARAMETER; > - } > - > - Offset = Address - mBiosAreaBaseAddress; > - > - ASSERT ((*NumBytes % SECTOR_SIZE_4KB) == 0); > - if ((*NumBytes % SECTOR_SIZE_4KB) != 0) { > - return EFI_INVALID_PARAMETER; > - } > - > - ASSERT ((*NumBytes + Offset) <= mBiosSize); > - if ((*NumBytes + Offset) > mBiosSize) { > - return EFI_INVALID_PARAMETER; > - } > - > - Status = EFI_SUCCESS; > - RemainingBytes = *NumBytes; > - > - > - Status = mSpiProtocol->FlashErase ( > - mSpiProtocol, > - FlashRegionBios, > - (UINT32) Offset, > - (UINT32) RemainingBytes > - ); > - return Status; > -} > - > diff --git > a/Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/SpiF > lashCommonSmmLib.c > b/Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/SpiF > lashCommonSmmLib.c > deleted file mode 100644 > index 7941b8f8720c..000000000000 > --- > a/Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/SpiF > lashCommonSmmLib.c > +++ /dev/null > @@ -1,58 +0,0 @@ > -/** @file > - SMM Library instance of SPI Flash Common Library Class > - > - Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > - SPDX-License-Identifier: BSD-2-Clause-Patent -**/ > - > -#include <Library/SmmServicesTableLib.h> -#include <Protocol/Spi.h> -#include > <Library/DebugLib.h> > - > -extern PCH_SPI_PROTOCOL *mSpiProtocol; > - > -extern UINTN mBiosAreaBaseAddress; > -extern UINTN mBiosSize; > -extern UINTN mBiosOffset; > - > -/** > - The library constructuor. > - > - The function does the necessary initialization work for this library > - instance. > - > - @param[in] ImageHandle The firmware allocated handle for the UEFI > image. > - @param[in] SystemTable A pointer to the EFI system table. > - > - @retval EFI_SUCCESS The function always return EFI_SUCCESS for > now. > - It will ASSERT on error for debug version. > - @retval EFI_ERROR Please reference LocateProtocol for error > code > details. > -**/ > -EFI_STATUS > -EFIAPI > -SmmSpiFlashCommonLibConstructor ( > - IN EFI_HANDLE ImageHandle, > - IN EFI_SYSTEM_TABLE *SystemTable > - ) > -{ > - EFI_STATUS Status; > - UINT32 BaseAddr; > - UINT32 RegionSize; > - > - mBiosAreaBaseAddress = (UINTN)PcdGet32 (PcdBiosAreaBaseAddress); > - mBiosSize = (UINTN)PcdGet32 (PcdBiosSize); > - > - // > - // Locate the SMM SPI protocol. > - // > - Status = gSmst->SmmLocateProtocol ( > - &gPchSmmSpiProtocolGuid, > - NULL, > - (VOID **) &mSpiProtocol > - ); > - ASSERT_EFI_ERROR (Status); > - > - mSpiProtocol->GetRegionAddress (mSpiProtocol, FlashRegionBios, &BaseAddr, > &RegionSize); > - mBiosOffset = BaseAddr; > - return Status; > -} > diff --git > a/Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/Sm > mSpiFlashCommonLib.inf > b/Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/Sm > mSpiFlashCommonLib.inf > deleted file mode 100644 > index 374f5ea52b98..000000000000 > --- > a/Platform/Intel/TigerlakeOpenBoardPkg/Library/SmmSpiFlashCommonLib/Sm > mSpiFlashCommonLib.inf > +++ /dev/null > @@ -1,49 +0,0 @@ > -## @file > -# SMM Library instance of Spi Flash Common Library Class -# -# Copyright (c) > 2021, Intel Corporation. All rights reserved.<BR> -# SPDX-License-Identifier: > BSD-2-Clause-Patent -# -## > - > -[Defines] > - INF_VERSION = 0x00010017 > - BASE_NAME = SmmSpiFlashCommonLib > - FILE_GUID = 9632D96E-E849-4217-9217-DC500B8AAE47 > - VERSION_STRING = 1.0 > - MODULE_TYPE = DXE_SMM_DRIVER > - LIBRARY_CLASS = SpiFlashCommonLib|DXE_SMM_DRIVER > - CONSTRUCTOR = SmmSpiFlashCommonLibConstructor > -# > -# The following information is for reference only and not required by the > build > tools. > -# > -# VALID_ARCHITECTURES = IA32 X64 > -# > - > -[LibraryClasses] > - IoLib > - MemoryAllocationLib > - BaseLib > - UefiLib > - SmmServicesTableLib > - BaseMemoryLib > - DebugLib > - > -[Packages] > - MdePkg/MdePkg.dec > - MinPlatformPkg/MinPlatformPkg.dec > - TigerlakeSiliconPkg/SiPkg.dec > - > -[Pcd] > - gSiPkgTokenSpaceGuid.PcdBiosAreaBaseAddress ## CONSUMES > - gSiPkgTokenSpaceGuid.PcdBiosSize ## CONSUMES > - > -[Sources] > - SpiFlashCommonSmmLib.c > - SpiFlashCommon.c > - > -[Protocols] > - gPchSmmSpiProtocolGuid ## CONSUMES > - > -[Depex.X64.DXE_SMM_DRIVER] > - gPchSmmSpiProtocolGuid > -- > 2.28.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#82900): https://edk2.groups.io/g/devel/message/82900 Mute This Topic: https://groups.io/mt/86662338/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-