/** @file FlashDriverSmm.h - shared declarations for the AMI SMM SPI flash driver. **/ #ifndef __FLASHDRIVERSMM_H__ #define __FLASHDRIVERSMM_H__ #include "../uefi_headers/Uefi.h" EFI_STATUS EFIAPI FlashDriverSmmEntryPoint(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable); EFI_STATUS EFIAPI HobListInit(VOID); EFI_STATUS EFIAPI FlashSmmInit(VOID); EFI_STATUS EFIAPI SmmFlashCompare(IN UINTN CommBufferAddr, IN UINTN CommBufferSize, IN VOID *CommBuffer); EFI_STATUS EFIAPI SmmFlashWrite(IN UINTN FlashAddress, IN UINTN Length); EFI_STATUS EFIAPI SmmFlashRead(IN UINTN Address, IN UINTN Length, IN VOID *Buffer); EFI_STATUS EFIAPI SmmFlashErase(IN UINTN Address, IN UINTN Length, IN VOID *CommBuffer); EFI_STATUS EFIAPI SmmEntryHandler(VOID); EFI_STATUS EFIAPI SmmExitHandler(VOID); EFI_STATUS EFIAPI FlashRead(IN UINTN Address, IN UINTN Length, OUT VOID *Buffer); EFI_STATUS EFIAPI FlashWrite(IN UINTN Address, IN UINTN Length); EFI_STATUS EFIAPI FlashErase(IN UINTN Address, IN UINTN Length, IN UINTN DataAddress); EFI_STATUS EFIAPI FlashCompare(IN UINTN Address, IN UINTN Length, OUT UINT32 *Result); EFI_STATUS EFIAPI SpiCriticalSectionEnter(VOID); EFI_STATUS EFIAPI SpiCriticalSectionExit(VOID); EFI_STATUS EFIAPI SpiOperationComplete(VOID); VOID EFIAPI SpiPreOpCallbacks(VOID); VOID EFIAPI SpiPostOpCallbacks(VOID); EFI_STATUS EFIAPI SpiProbeProtocol(VOID); BOOLEAN EFIAPI ReaJEDEDId(IN UINTN SpiMmioBase, OUT UINT32 *JedecId); UINT32 EFIAPI GetFlashSizeFromJedec(IN UINT32 JedecId); VOID EFIAPI SpiExecuteComman(IN UINT32 Opcode); VOID EFIAPI SpiSetCs(IN UINT8 Enable, IN UINT8 Reset); UINT8 EFIAPI SpiWaitForCycleComplete(VOID); VOID EFIAPI SpiInitRegisters(VOID); BOOLEAN EFIAPI SpiReadData(IN UINT32 Address, IN UINT32 Length, IN UINT32 *Buffer); VOID EFIAPI FlashFvTrackingInit(IN UINTN FlashAddress, IN UINTN Length); VOID EFIAPI FlashFvTrackingTeardown(IN UINTN FlashAddress, IN UINTN Length); VOID EFIAPI CpuPause(VOID); UINTN EFIAPI SetJmpWrapper(OUT VOID *JumpBuffer); VOID EFIAPI LongJmpWrapper(IN VOID *JumpBuffer, IN UINTN Value); #endif /* __FLASHDRIVERSMM_H__ */