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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __MEUMA_H__
#define __MEUMA_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
WriteUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
IoRead16(
  VOID
);

EFI_STATUS
EFIAPI
IoWrite16(
  VOID
);

EFI_STATUS
EFIAPI
IoRead32(
  VOID
);

EFI_STATUS
EFIAPI
ReadPciCfg16(
  VOID
);

EFI_STATUS
EFIAPI
PcdGet32(
  VOID
);

EFI_STATUS
EFIAPI
PcdGetSize(
  VOID
);

EFI_STATUS
EFIAPI
CompareGuid(
  VOID
);

EFI_STATUS
EFIAPI
ValidateUmaLocation(
  VOID
);

EFI_STATUS
EFIAPI
GetOnBoardMeType(
  VOID
);

EFI_STATUS
EFIAPI
GetMeFs1FromHob(
  VOID
);

EFI_STATUS
EFIAPI
GetPeiPerformance(
  VOID
);

EFI_STATUS
EFIAPI
FindPerformanceLogIndex(
  VOID
);

EFI_STATUS
EFIAPI
IsHeciSkipped(
  VOID
);

EFI_STATUS
EFIAPI
SendHeciMessage(
  VOID
);

EFI_STATUS
EFIAPI
MicroDelay(
  VOID
);

EFI_STATUS
EFIAPI
// ---------------------------------------------------------------------------(
  VOID
);

EFI_STATUS
EFIAPI
PPI descriptor (GUID + EFI_PEI_PPI_DESCRIPTOR) for the ME UMA PPI.(
  VOID
);

EFI_STATUS
EFIAPI
in the .data section at 0xffda3390.(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID  gMeUmaPpiGuid;(
  VOID
);

EFI_STATUS
EFIAPI
actual ME_UMA_PPI structure(
  VOID
);

EFI_STATUS
EFIAPI
/ state byte at 0xffda339c(
  VOID
);

EFI_STATUS
EFIAPI
prototypes(
  VOID
);

EFI_STATUS
EFIAPI
functions (previously sub_*)(
  VOID
);

EFI_STATUS
EFIAPI
actual read goes through the memory-mapped ECAM or I/O CFG mechanism.(
  VOID
);

EFI_STATUS
EFIAPI
construct the address and decode it via the PCI Express library.(
  VOID
);

EFI_STATUS
EFIAPI
Address = (PciCfg.Reg | 0) & 0xFFF;  // simplified: see PciExpressLib(
  VOID
);

EFI_STATUS
EFIAPI
Helpers(
  VOID
);

EFI_STATUS
EFIAPI
to Hob + 24(
  VOID
);

EFI_STATUS
EFIAPI
Parameter Validation(
  VOID
);

EFI_STATUS
EFIAPI
if the ME is in a debug or error mode that skips UMA checking.(
  VOID
);

EFI_STATUS
EFIAPI
(!(UINT8)ModuleEntryPoint (NULL, NULL)) {(
  VOID
);

EFI_STATUS
EFIAPI
UMA size:(
  VOID
);

EFI_STATUS
EFIAPI
= (MeNcMemLowLimit & 0xFFF80000) + 0x80000 - MeNcMemLowBaseAddr(
  VOID
);

EFI_STATUS
EFIAPI
+= MeNcMemHighLimit(
  VOID
);

EFI_STATUS
EFIAPI
= (MeNcMemLowLimit & 0xFFF80000) + 0x80000 - MeNcMemLowBaseAddr;(
  VOID
);

EFI_STATUS
EFIAPI
the UMA parameters from Silicon registers (via PCI config access).(
  VOID
);

EFI_STATUS
EFIAPI
= *(UINT32 *)((UINTN)PciCfgRead (0) + 240);  // offset 0xF0(
  VOID
);

EFI_STATUS
EFIAPI
0xF4(
  VOID
);

EFI_STATUS
EFIAPI
base addresses are zero, skip validation.(
  VOID
);

EFI_STATUS
EFIAPI
(MeNcMemLowBaseAddr == 0 || MeNcMemLowLimit == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
the UMA base addresses match Silicon registers.(
  VOID
);

EFI_STATUS
EFIAPI
(MeNcMemLowBaseAddr != UmaBase || MeNcMemHighBaseAddr != UmaBaseExt) {(
  VOID
);

EFI_STATUS
EFIAPI
UMA size: must not exceed 64 MB, must be even (2 MB aligned).(
  VOID
);

EFI_STATUS
EFIAPI
(MeUmaSizeCalc >> 20 > 64) {(
  VOID
);

EFI_STATUS
EFIAPI
Type Detection(
  VOID
);

EFI_STATUS
EFIAPI
Debug Mode via PCH PMC (DWR flow).(
  VOID
);

EFI_STATUS
EFIAPI
(IsPchDwrFlow ()) {(
  VOID
);

EFI_STATUS
EFIAPI
}(
  VOID
);

EFI_STATUS
EFIAPI
the ME Firmware Status (MEFS) register from PCI config.(
  VOID
);

EFI_STATUS
EFIAPI
= *(UINT32 *)((UINTN)PciCfgRead (0) + 64);  // offset 0x40(
  VOID
);

EFI_STATUS
EFIAPI
back to HOB if MEFS is invalid.(
  VOID
);

EFI_STATUS
EFIAPI
= GetMeFs1FromHob ();(
  VOID
);

EFI_STATUS
EFIAPI
the ME type from the status.(
  VOID
);

EFI_STATUS
EFIAPI
((MeFirmwareStatus & 0xF) == 0xF) {(
  VOID
);

EFI_STATUS
EFIAPI
type(
  VOID
);

EFI_STATUS
EFIAPI
case 2:(
  VOID
);

EFI_STATUS
EFIAPI
default:(
  VOID
);

EFI_STATUS
EFIAPI
not read HOB, use fallback path.(
  VOID
);

EFI_STATUS
EFIAPI
((EFI_D_ERROR, "HECI: GetMeFs1FromHob() Can't read correctly MeFwHob info\n"));(
  VOID
);

EFI_STATUS
EFIAPI
Logging (PEI Performance)(
  VOID
);

EFI_STATUS
EFIAPI
existing HOB data.(
  VOID
);

EFI_STATUS
EFIAPI
fresh HOBs for the performance log and ID array.(
  VOID
);

EFI_STATUS
EFIAPI
Message / PPI Installation(
  VOID
);

EFI_STATUS
EFIAPI
Point(
  VOID
);

EFI_STATUS
EFIAPI
((IoRead32 (1024068) & 0x80) == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
if the system has valid ME firmware (skip on debug/error).(
  VOID
);

EFI_STATUS
EFIAPI
= (IsHeciSkipped () < 0) ? 0 : byte_FFDA339C;(
  VOID
);

EFI_STATUS
EFIAPI
the ME UMA PPI.(
  VOID
);

EFI_STATUS
EFIAPI
= GetPeiServices ();(
  VOID
);

#endif /* __MEUMA_H__ */