/******************************************************************************* Copyright (C) 2016 Marvell International Ltd. SPDX-License-Identifier: BSD-2-Clause-Patent *******************************************************************************/ #ifndef __MV_SPI_FLASH__ #define __MV_SPI_FLASH__ #include #include extern EFI_GUID gMarvellSpiFlashProtocolGuid; typedef struct _MARVELL_SPI_FLASH_PROTOCOL MARVELL_SPI_FLASH_PROTOCOL; typedef EFI_STATUS (EFIAPI *MV_SPI_FLASH_INIT) ( IN MARVELL_SPI_FLASH_PROTOCOL *This, IN SPI_DEVICE *SpiDev ); typedef EFI_STATUS (EFIAPI *MV_SPI_FLASH_READ_ID) ( IN SPI_DEVICE *SpiDev, IN BOOLEAN UseInRuntime ); typedef EFI_STATUS (EFIAPI *MV_SPI_FLASH_READ) ( IN SPI_DEVICE *SpiDev, IN UINT32 Address, IN UINTN DataByteCount, IN VOID *Buffer ); typedef EFI_STATUS (EFIAPI *MV_SPI_FLASH_WRITE) ( IN SPI_DEVICE *SpiDev, IN UINT32 Address, IN UINTN DataByteCount, IN VOID *Buffer ); typedef EFI_STATUS (EFIAPI *MV_SPI_FLASH_ERASE) ( IN SPI_DEVICE *SpiDev, IN UINTN Address, IN UINTN DataByteCount ); typedef EFI_STATUS (EFIAPI *MV_SPI_FLASH_UPDATE) ( IN SPI_DEVICE *SpiDev, IN UINT32 Address, IN UINTN DataByteCount, IN UINT8 *Buffer ); typedef EFI_STATUS (EFIAPI *MV_SPI_FLASH_UPDATE_WITH_PROGRESS) ( IN SPI_DEVICE *Slave, IN UINT32 Offset, IN UINTN ByteCount, IN UINT8 *Buffer, IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress, OPTIONAL IN UINTN StartPercentage, IN UINTN EndPercentage ); struct _MARVELL_SPI_FLASH_PROTOCOL { MV_SPI_FLASH_INIT Init; MV_SPI_FLASH_READ_ID ReadId; MV_SPI_FLASH_READ Read; MV_SPI_FLASH_WRITE Write; MV_SPI_FLASH_ERASE Erase; MV_SPI_FLASH_UPDATE Update; MV_SPI_FLASH_UPDATE_WITH_PROGRESS UpdateWithProgress; }; #endif // __MV_SPI_FLASH__