/** @file The header file includes the common header files, defines internal structure and functions used by SpiFlashCommonLib. Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __SPI_FLASH_COMMON_LIB_H__ #define __SPI_FLASH_COMMON_LIB_H__ #include #include #include #include #include #include #include #include #define SECTOR_SIZE_4KB 0x1000 // Common 4kBytes sector size /** 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 ); /** 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 Opertion 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 ); /** 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 Opertion is successful. @retval EFI_DEVICE_ERROR If there is any device errors. **/ EFI_STATUS EFIAPI SpiFlashWrite ( IN UINTN Address, IN OUT UINT32 *NumBytes, IN UINT8 *Buffer ); /** 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. Opertion is successful. @retval EFI_DEVICE_ERROR If there is any device errors. **/ EFI_STATUS EFIAPI SpiFlashBlockErase ( IN UINTN Address, IN UINTN *NumBytes ); #endif