+++ /dev/null
-/*++\r
-\r
- Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
- \r\r
- SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
- \r\r
-\r
-\r
- Flash device library class header file.\r
-\r
- Flash Device Library common type, MACRO and API definition. The basic idea for\r
- this library is to provide API to abstract the different between flash\r
- technology (SPI, FWH etc..), flash controller (SPI host controller on\r
- ICH, MMIO type access for FWH), flash chip (programming command, method\r
- of status checking). This library class can be consumed by drivers or applications\r
- such as Firmware Volume Block driver, Flash Update application. These driver\r
- can be written in a generic manner so that they are more easy to be\r
- ported to other platforms.\r
-\r
- This library can be build on a set of APIs which can touch flash controller, flash\r
- chip directly for a platform with simple flash device configuration.\r
-\r
- For a platform with complex flash device configuration, this library can be built\r
- on the Flash Device Operate Library. Please see the header file for that library\r
- class for detailed usage.\r
-\r
-**/\r
-\r
-#ifndef __FLASHDEVICE_LIB_H__\r
-#define __FLASHDEVICE_LIB_H__\r
-\r
-/**\r
- Read NumBytes bytes of data from the address specified by\r
- PAddress into Buffer.\r
-\r
- @param[in] PAddress The starting physical address of the read.\r
- @param[in,out] NumBytes On input, the number of bytes to read. On output, the number\r
- of bytes actually read.\r
- @param[out] Buffer The destination data buffer for the read.\r
-\r
- @retval EFI_SUCCESS. Opertion is successful.\r
- @retval EFI_DEVICE_ERROR If there is any device errors.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-LibFvbFlashDeviceRead (\r
- IN UINTN PAddress,\r
- IN OUT UINTN *NumBytes,\r
- OUT UINT8 *Buffer\r
- );\r
-\r
-/**\r
- Write NumBytes bytes of data from Buffer to the address specified by\r
- PAddresss.\r
-\r
- @param[in] PAddress The starting physical address of the write.\r
- @param[in,out] NumBytes On input, the number of bytes to write. On output,\r
- the actual number of bytes written.\r
- @param[in] Buffer The source data buffer for the write.\r
-\r
- @retval EFI_SUCCESS. Opertion is successful.\r
- @retval EFI_DEVICE_ERROR If there is any device errors.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-LibFvbFlashDeviceWrite (\r
- IN UINTN PAddress,\r
- IN OUT UINTN *NumBytes,\r
- IN UINT8 *Buffer\r
- );\r
-\r
-/**\r
- Erase the block staring at PAddress.\r
-\r
- @param[in] PAddress The starting physical address of the region to be erased.\r
- @param[in] LbaLength The length of the region to be erased. This parameter is necessary\r
- as the physical block size on a flash device could be different than\r
- the logical block size of Firmware Volume Block protocol. Erase on\r
- flash chip is always performed block by block. Therefore, the ERASE\r
- operation to a logical block is converted a number of ERASE operation\r
- (or a partial erase) on the hardware.\r
-\r
- @retval EFI_SUCCESS. Opertion is successful.\r
- @retval EFI_DEVICE_ERROR If there is any device errors.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-LibFvbFlashDeviceBlockErase (\r
- IN UINTN PAddress,\r
- IN UINTN LbaLength\r
-);\r
-\r
-/**\r
- Lock or unlock the block staring at PAddress.\r
-\r
- @param[in] PAddress The starting physical address of region to be (un)locked.\r
- @param[in] LbaLength The length of the region to be (un)locked. This parameter is necessary\r
- as the physical block size on a flash device could be different than\r
- the logical block size of Firmware Volume Block protocol. (Un)Lock on\r
- flash chip is always performed block by block. Therefore, the (Un)Lock\r
- operation to a logical block is converted a number of (Un)Lock operation\r
- (or a partial erase) on the hardware.\r
- @param[in] Lock TRUE to lock. FALSE to unlock.\r
-\r
- @retval EFI_SUCCESS. Opertion is successful.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-LibFvbFlashDeviceBlockLock (\r
- IN UINTN PAddress,\r
- IN UINTN LbaLength,\r
- IN BOOLEAN Lock\r
-);\r
-\r
-#endif\r
-\r
-\r