/** @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.<BR>
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
**/
|
|
#ifndef __SPI_FLASH_COMMON_LIB_H__
|
#define __SPI_FLASH_COMMON_LIB_H__
|
|
#include <Uefi.h>
|
#include <Library/BaseLib.h>
|
#include <Library/PcdLib.h>
|
#include <Library/DebugLib.h>
|
#include <Library/BaseMemoryLib.h>
|
#include <Library/MemoryAllocationLib.h>
|
#include <Library/UefiDriverEntryPoint.h>
|
#include <Library/UefiBootServicesTableLib.h>
|
|
#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
|