Newer
Older
AMI-Aptio-BIOS-Reversed / LenovoServerPkg / IntelPhyCard / IntelPhyCard / IntelPhyCard.h
#ifndef __INTELPHYCARD_H__
#define __INTELPHYCARD_H__

#include <Uefi.h>

extern EFI_HANDLE            gImageHandle;
extern EFI_SYSTEM_TABLE     *gSystemTable;
extern EFI_BOOT_SERVICES    *gBS;
extern EFI_RUNTIME_SERVICES *gRT;

EFI_STATUS
EFIAPI
ModuleEntryPoint (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  );

__int64 IntelPhyCardDriverInit(__int64 ImageHandle, __int64 a2);

__int64 ProvisionOcpCard(void);
void  UpdateOcpCardStatus(void);
char  GetOcpTypeCStatus(void);

char  __fastcall ProgramSpiFlashPage(__int64 a1, __int64 a2, _DWORD *a3);
char  __fastcall DetectAdestoMicronAtmelFlash(__int64 a1, __int64 *a2);
char  __fastcall DetectXmcWinbondAmicMxicFlash(__int64 a1, __int64 *a2);
char  __fastcall DetectSst25lfFlash(__int64 a1, __int64 *a2);
char  __fastcall DetectEsmtAndSst25vfFlash(__int64 a1, __int64 *a2);
signed __int64 __fastcall EraseSpiFlashSector(int a1);
__int64 __fastcall GetSpiFlashSizeFromJedecId(unsigned int a1);
char  __fastcall IdentifySpiFlash(__int64 a1, int *p_n24608);
char  __fastcall VerifyFlashPageBuffer(__int64 a1, __int64 a2, unsigned int n2, char a4);
unsigned __int64 __fastcall CalculateFlashAddressRange(int a1, unsigned int *a2);
__int64 __fastcall FlashCommandStatusControl(char a1, char a2);
char *__fastcall MemMove(char *dst, char *src, unsigned __int64 n);

__int64 GetPcdProtocol(void);
__int64 __fastcall DebugPrint(__int64 a1, const char *a2, ...);
__int64 __fastcall AssertHandler(__int64 a1, __int64 a2, __int64 a3);
__int64 __fastcall ResolveSpiControllerProtocol(__int64 a1);
__int64 __fastcall PciExpressAddress(__int64 a1);
unsigned __int32 __fastcall IoRead32Wrapper(unsigned __int16 Port);
__int64 __fastcall CpuidWrapper(unsigned int _RAX_1, _DWORD *a2, _DWORD *a3, _DWORD *a4, _DWORD *a5);

extern UINT64  qword_4A20;   // PciExpress MMIO base
extern UINT64  qword_4AD0;   // Flash base address
extern UINT64  qword_4B50;   // gST (System Table)
extern UINT64  qword_4B58;   // gBS (Boot Services)
extern UINT64  qword_4B68;   // gRT (Runtime Services)
extern UINT64  qword_4B78;   // PCD protocol
extern UINT64  qword_4B80;   // gDS (DXE Services)
extern UINT64  qword_4B88;   // mMmPciBase
extern UINT64  qword_4B98;   // PciExpress base address
extern UINT64  qword_4B40;   // Protocol handle
extern UINT64  qword_4C00;   // Flash size
extern UINT64  qword_4C10;   // Flash info
extern UINT64  qword_4C18;   // Flash info
extern UINT64  qword_4C28;   // SPI controller protocol
extern UINT32  n24608;       // Flash JEDEC ID
extern UINT32  n0x1000000;   // Flash total size
extern UINT32  dword_4CC0;   // MAC address (bytes 0-3)
extern UINT16  word_4CC4;    // MAC address (bytes 4-5)
extern UINT8   byte_4AA8;    // Flag byte
extern UINT8   byte_4AE4;    // Flag byte
extern UINT8   byte_4AFC;    // Flag byte
extern UINT8   byte_4C08;    // Flag byte

#endif /* __INTELPHYCARD_H__ */