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]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to