Newer
Older
AMI-Aptio-BIOS-Reversed / HeciInit / HeciInit.h
@Ajax Dong Ajax Dong 2 days ago 8 KB Init
/** @file
  HeciInit.h -- Header for HeciInit

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __HECIINIT_H__
#define __HECIINIT_H__

#include "../uefi_headers/Uefi.h"

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
AsmReadIdtr(
  VOID
);

EFI_STATUS
EFIAPI
HeciGetPcd32(
  VOID
);

EFI_STATUS
EFIAPI
HeciGetPcdPtr(
  VOID
);

EFI_STATUS
EFIAPI
HeciCompareGuid(
  VOID
);

EFI_STATUS
EFIAPI
IoRead16(
  VOID
);

EFI_STATUS
EFIAPI
IoWrite16(
  VOID
);

EFI_STATUS
EFIAPI
IoRead32(
  VOID
);

EFI_STATUS
EFIAPI
MemoryRead16(
  VOID
);

EFI_STATUS
EFIAPI
HeciReadVendorId(
  VOID
);

EFI_STATUS
EFIAPI
PciExpressRead8(
  VOID
);

EFI_STATUS
EFIAPI
HeciPciRead32(
  VOID
);

EFI_STATUS
EFIAPI
HeciMicrosecondDelay(
  VOID
);

EFI_STATUS
EFIAPI
HeciGetMbar(
  VOID
);

EFI_STATUS
EFIAPI
HeciGetMbarEx(
  VOID
);

EFI_STATUS
EFIAPI
HeciReset(
  VOID
);

EFI_STATUS
EFIAPI
HeciWaitMeReady(
  VOID
);

EFI_STATUS
EFIAPI
HeciInitialize(
  VOID
);

EFI_STATUS
EFIAPI
HeciIsBusy(
  VOID
);

EFI_STATUS
EFIAPI
HeciReadMsg(
  VOID
);

EFI_STATUS
EFIAPI
HeciReceive(
  VOID
);

EFI_STATUS
EFIAPI
HeciWriteCircularBuf(
  VOID
);

EFI_STATUS
EFIAPI
HeciSendCore(
  VOID
);

EFI_STATUS
EFIAPI
HeciSend(
  VOID
);

EFI_STATUS
EFIAPI
HeciSendwAck(
  VOID
);

EFI_STATUS
EFIAPI
HeciGetMeStatus(
  VOID
);

EFI_STATUS
EFIAPI
HeciGetMeMode(
  VOID
);

EFI_STATUS
EFIAPI
Heci2GetNmStatus(
  VOID
);

EFI_STATUS
EFIAPI
HeciIsDwrDetected(
  VOID
);

EFI_STATUS
EFIAPI
HeciGetMeFs1FromHob(
  VOID
);

EFI_STATUS
EFIAPI
HeciGetOnBoardMeType(
  VOID
);

EFI_STATUS
EFIAPI
HeciLogMeType(
  VOID
);

EFI_STATUS
EFIAPI
PchAcpiBaseGet(
  VOID
);

EFI_STATUS
EFIAPI
PchPwrmBaseGet(
  VOID
);

EFI_STATUS
EFIAPI
Heci2GetMbar(
  VOID
);

EFI_STATUS
EFIAPI
Heci2Initialize(
  VOID
);

EFI_STATUS
EFIAPI
HeciIsSimicsMode(
  VOID
);

EFI_STATUS
EFIAPI
HeciReadBootMode(
  VOID
);

EFI_STATUS
EFIAPI
HeciWriteBootMode(
  VOID
);

EFI_STATUS
EFIAPI
HeciInitBootMode(
  VOID
);

EFI_STATUS
EFIAPI
HeciPciRead8(
  VOID
);

EFI_STATUS
EFIAPI
HeciPciCfgRead(
  VOID
);

EFI_STATUS
EFIAPI
HeciPeimEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
data used by the HECI PEIM(
  VOID
);

EFI_STATUS
EFIAPI
UINT8  mImageGuid[];       // GUID at 0xFFD9FA54(
  VOID
);

EFI_STATUS
EFIAPI
mode flag storage at 0xFFD9FA64(
  VOID
);

EFI_STATUS
EFIAPI
base address(
  VOID
);

EFI_STATUS
EFIAPI
and string utility functions(
  VOID
);

EFI_STATUS
EFIAPI
copy (dest after src): copy backwards(
  VOID
);

EFI_STATUS
EFIAPI
((UINT8 *)Source + Count - 1(
  VOID
);

EFI_STATUS
EFIAPI
Services table access via IDT(
  VOID
);

EFI_STATUS
EFIAPI
(Platform Configuration Database) access(
  VOID
);

EFI_STATUS
EFIAPI
(Hand-Off Block) functions(
  VOID
);

EFI_STATUS
EFIAPI
if (Hob == NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
Express config read(
  VOID
);

EFI_STATUS
EFIAPI
delay via MBAR polling(
  VOID
);

EFI_STATUS
EFIAPI
microseconds to ticks at 3.579545 MHz(
  VOID
);

EFI_STATUS
EFIAPI
= 3579545 * us / 1000000(
  VOID
);

EFI_STATUS
EFIAPI
= (UINT64)3579545 * Microseconds;(
  VOID
);

EFI_STATUS
EFIAPI
get MBAR (HECI-1)(
  VOID
);

EFI_STATUS
EFIAPI
memory space and bus master in PCI config if not already set(
  VOID
);

EFI_STATUS
EFIAPI
((*((UINT8 *)HeciPciRead32 (0, HECI_PCI_CMD_REG_OFFSET) + 4) & 6) != 6) {(
  VOID
);

EFI_STATUS
EFIAPI
reset(
  VOID
);

EFI_STATUS
EFIAPI
ME state - don't reset in certain error states(
  VOID
);

EFI_STATUS
EFIAPI
= *((UINT32 *)HeciPciRead32 (0, HECI_PCI_ME_FS_OFFSET) + 64);(
  VOID
);

EFI_STATUS
EFIAPI
(HIWORD(MeFs1) & 0x0F) == 2 ||             // SPS w/Debug(
  VOID
);

EFI_STATUS
EFIAPI
DEBUG ((EFI_D_ERROR, "[HECI] Wrong ME state, can't execute reset ME FS 0x%x\n", MeFs1));(
  VOID
);

EFI_STATUS
EFIAPI
host reset bits (HRA | ER) if not already set(
  VOID
);

EFI_STATUS
EFIAPI
((HostCsr & HECI_CSR_ER) == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
for host-side reset to complete (RDY cleared)(
  VOID
);

EFI_STATUS
EFIAPI
= 25000;(
  VOID
);

EFI_STATUS
EFIAPI
for ME-side reset ready (RDY set)(
  VOID
);

EFI_STATUS
EFIAPI
wait for ME ready(
  VOID
);

EFI_STATUS
EFIAPI
((Csr & 8) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
((Csr & 0x10) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
if device is present(
  VOID
);

EFI_STATUS
EFIAPI
= MemoryRead16 ((UINT16 *)HeciPciRead32 (0, 0));(
  VOID
);

EFI_STATUS
EFIAPI
MBAR(
  VOID
);

EFI_STATUS
EFIAPI
= HeciGetMbarEx (0);(
  VOID
);

EFI_STATUS
EFIAPI
HIDM boot mode (Boot Type = 0, Boot Target = 0, Mode = SCI)(
  VOID
);

EFI_STATUS
EFIAPI
bus master + memory space(
  VOID
);

EFI_STATUS
EFIAPI
ME state(
  VOID
);

EFI_STATUS
EFIAPI
mode - initialization will be handled later(
  VOID
);

EFI_STATUS
EFIAPI
HeciWaitMeReady ();(
  VOID
);

EFI_STATUS
EFIAPI
for ME interface ready(
  VOID
);

EFI_STATUS
EFIAPI
(HeciWaitMeReady ()) {(
  VOID
);

EFI_STATUS
EFIAPI
host CSR: set IG + RP + HRA(
  VOID
);

EFI_STATUS
EFIAPI
= *(volatile UINT32 *)(Mbar + 4);(
  VOID
);

EFI_STATUS
EFIAPI
check interface busy(
  VOID
);

EFI_STATUS
EFIAPI
message read from circular buffer(
  VOID
);

EFI_STATUS
EFIAPI
if buffer is empty (write pointer == read pointer)(
  VOID
);

EFI_STATUS
EFIAPI
((UINT8)HIWORD (Regs->MeData) == BYTE1 (Regs->MeData)) {(
  VOID
);

EFI_STATUS
EFIAPI
for empty buffer in blocking case(
  VOID
);

EFI_STATUS
EFIAPI
((UINT8)BYTE2 (Regs->MeData) == BYTE1 (Regs->MeData) && !MsgHeader) {(
  VOID
);

EFI_STATUS
EFIAPI
message header(
  VOID
);

EFI_STATUS
EFIAPI
= 1000;(
  VOID
);

EFI_STATUS
EFIAPI
for enough slots to be available(
  VOID
);

EFI_STATUS
EFIAPI
(Timeout = 1000; SlotCount > (UINT8)(HIWORD (Regs->MeData) - BYTE1 (Regs->MeData)); ) {(
  VOID
);

EFI_STATUS
EFIAPI
the message data(
  VOID
);

EFI_STATUS
EFIAPI
(i = 0; i < SlotCount; i++) {(
  VOID
);

EFI_STATUS
EFIAPI
HRA(
  VOID
);

EFI_STATUS
EFIAPI
message receive(
  VOID
);

EFI_STATUS
EFIAPI
message send core(
  VOID
);

EFI_STATUS
EFIAPI
the message header and data(
  VOID
);

EFI_STATUS
EFIAPI
if ME-side ready for data(
  VOID
);

EFI_STATUS
EFIAPI
((Regs->MeData & 8) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
ready - reset and retry(
  VOID
);

EFI_STATUS
EFIAPI
(HeciReset (0)) {(
  VOID
);

EFI_STATUS
EFIAPI
send message(
  VOID
);

EFI_STATUS
EFIAPI
send with acknowledgement(
  VOID
);

EFI_STATUS
EFIAPI
if circular buffer is empty (write ptr == read ptr)(
  VOID
);

EFI_STATUS
EFIAPI
((UINT8)BYTE2 (*(volatile UINT32 *)(Mbar + 12)) == BYTE1 (*(volatile UINT32 *)(Mbar + 12))) {(
  VOID
);

EFI_STATUS
EFIAPI
status / mode detection(
  VOID
);

EFI_STATUS
EFIAPI
*MeStatus = ME_STATUS_NORMAL;(
  VOID
);

EFI_STATUS
EFIAPI
*MeStatus = ME_STATUS_SECBOOT;(
  VOID
);

EFI_STATUS
EFIAPI
if ((MeFs1 & 0xF000) == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
*MeStatus = ME_STATUS_DFX;(
  VOID
);

EFI_STATUS
EFIAPI
*MeStatus = ME_STATUS_DISABLED;(
  VOID
);

EFI_STATUS
EFIAPI
*MeStatus = ME_STATUS_ERROR;(
  VOID
);

EFI_STATUS
EFIAPI
(Disable Warm Reset) detection(
  VOID
);

EFI_STATUS
EFIAPI
type detection(
  VOID
);

EFI_STATUS
EFIAPI
not found or Group[0].FunNumber == 0(
  VOID
);

EFI_STATUS
EFIAPI
(FwHob != NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
DWR first(
  VOID
);

EFI_STATUS
EFIAPI
(HeciIsDwrDetected ()) {(
  VOID
);

EFI_STATUS
EFIAPI
MEFS1 from the HECI device config(
  VOID
);

EFI_STATUS
EFIAPI
= *((UINT32 *)HeciPciRead32 (22, 0) + 64);(
  VOID
);

EFI_STATUS
EFIAPI
available - fall back to HOB(
  VOID
);

EFI_STATUS
EFIAPI
= HeciGetMeFs1FromHob ();(
  VOID
);

EFI_STATUS
EFIAPI
ME type(
  VOID
);

EFI_STATUS
EFIAPI
((MeFs1 & 0x0F) != 0x0F) {(
  VOID
);

EFI_STATUS
EFIAPI
mode(
  VOID
);

EFI_STATUS
EFIAPI
ME_TYPE_DISABLED;(
  VOID
);

EFI_STATUS
EFIAPI
type(
  VOID
);

EFI_STATUS
EFIAPI
((EFI_D_ERROR, "HECI: ME type not recognized (MEFS1: 0x%08X)\n", MeFs1));(
  VOID
);

EFI_STATUS
EFIAPI
ACPI base get(
  VOID
);

EFI_STATUS
EFIAPI
HIDM(
  VOID
);

EFI_STATUS
EFIAPI
space enable(
  VOID
);

EFI_STATUS
EFIAPI
+ Mem(
  VOID
);

EFI_STATUS
EFIAPI
host CSR(
  VOID
);

EFI_STATUS
EFIAPI
mode detection(
  VOID
);

EFI_STATUS
EFIAPI
RTC index 0x4A to check for SIMICS(
  VOID
);

EFI_STATUS
EFIAPI
= __inbyte (0x70);(
  VOID
);

EFI_STATUS
EFIAPI
check through memory-based detection(
  VOID
);

EFI_STATUS
EFIAPI
= (*(volatile UINT8 *)0xFDAF0490 & 2) | 1;(
  VOID
);

EFI_STATUS
EFIAPI
Mode read/write(
  VOID
);

EFI_STATUS
EFIAPI
Express config read (byte)(
  VOID
);

EFI_STATUS
EFIAPI
Entry Point(
  VOID
);

EFI_STATUS
EFIAPI
boot mode tracking(
  VOID
);

EFI_STATUS
EFIAPI
();(
  VOID
);

EFI_STATUS
EFIAPI
for DWR (Disable Warm Reset)(
  VOID
);

EFI_STATUS
EFIAPI
ME type for the current platform(
  VOID
);

EFI_STATUS
EFIAPI
= HeciGetOnBoardMeType ();(
  VOID
);

EFI_STATUS
EFIAPI
HECI-1 interface(
  VOID
);

EFI_STATUS
EFIAPI
(0, HECI_PCI_CMD_REG_OFFSET) + 20 = 0;(
  VOID
);

#endif /* __HECIINIT_H__ */