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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __PEIIPMIBMCINITIALIZE_H__
#define __PEIIPMIBMCINITIALIZE_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
GetReportStatusCode(
  VOID
);

EFI_STATUS
EFIAPI
ReportStatusCode(
  VOID
);

EFI_STATUS
EFIAPI
DebugAssert(
  VOID
);

EFI_STATUS
EFIAPI
IoRead32(
  VOID
);

EFI_STATUS
EFIAPI
IoRead16(
  VOID
);

EFI_STATUS
EFIAPI
ReadIdtr(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
ReadPcd32(
  VOID
);

EFI_STATUS
EFIAPI
GetPcd32(
  VOID
);

EFI_STATUS
EFIAPI
GetPcd32Plus(
  VOID
);

EFI_STATUS
EFIAPI
CmosRead8(
  VOID
);

EFI_STATUS
EFIAPI
PchGetSku(
  VOID
);

EFI_STATUS
EFIAPI
PchIsAccessibleByPcr(
  VOID
);

EFI_STATUS
EFIAPI
PchPcrWrite(
  VOID
);

EFI_STATUS
EFIAPI
PchGetDecodeRanges(
  VOID
);

EFI_STATUS
EFIAPI
MicroSecondDelay(
  VOID
);

EFI_STATUS
EFIAPI
MicroSecondDelayEx(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsWriteByte(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsReadByte(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsWaitForIbf(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsFlush(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsCheckWriteReady(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsWaitForObf(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsSendMessage(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsReceiveMessage(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsSendData(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsReadData(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsSendCommand(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsGetResponse(
  VOID
);

EFI_STATUS
EFIAPI
BmcDoIpmiCmd(
  VOID
);

EFI_STATUS
EFIAPI
BmcParseResponseCode(
  VOID
);

EFI_STATUS
EFIAPI
PchDecodeRangeSetup(
  VOID
);

EFI_STATUS
EFIAPI
PchDecodeRangeProg(
  VOID
);

EFI_STATUS
EFIAPI
PchDecodeRangeGet(
  VOID
);

EFI_STATUS
EFIAPI
PchDecodeRangeSet(
  VOID
);

EFI_STATUS
EFIAPI
CheckPowerFailure(
  VOID
);

EFI_STATUS
EFIAPI
DecodeBmcBaseAddress(
  VOID
);

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
BmcProcessSoftErrorChar(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsBuildAndSend(
  VOID
);

EFI_STATUS
EFIAPI
BootGuardCheckTpm(
  VOID
);

EFI_STATUS
EFIAPI
BootGuardGetTpmRevision(
  VOID
);

EFI_STATUS
EFIAPI
ConstructorModule(
  VOID
);

EFI_STATUS
EFIAPI
LocatePcdPpi(
  VOID
);

EFI_STATUS
EFIAPI
data references from .rdata / .data segments(
  VOID
);

EFI_STATUS
EFIAPI
UINT32               gPeiServicesIdt;          // PPI GUID data(
  VOID
);

EFI_STATUS
EFIAPI
variable GUID(
  VOID
);

EFI_STATUS
EFIAPI
decode ranges array(
  VOID
);

EFI_STATUS
EFIAPI
global reference data(
  VOID
);

EFI_STATUS
EFIAPI
assert / report helper(
  VOID
);

EFI_STATUS
EFIAPI
UINT32(
  VOID
);

EFI_STATUS
EFIAPI
status code with debug message (ReportStatusCodeEx via PPI)(
  VOID
);

EFI_STATUS
EFIAPI
ReportStatusCode ((
  VOID
);

EFI_STATUS
EFIAPI
print macro using ReportStatusCode(
  VOID
);

EFI_STATUS
EFIAPI
VOID(
  VOID
);

EFI_STATUS
EFIAPI
operations (from BaseMemoryLib)(
  VOID
);

EFI_STATUS
EFIAPI
= (UINT8 *)DestinationBuffer + Length - 1;(
  VOID
);

EFI_STATUS
EFIAPI
= Length >> 2;(
  VOID
);

EFI_STATUS
EFIAPI
wrapper (with bounds checks)(
  VOID
);

EFI_STATUS
EFIAPI
VOID *(
  VOID
);

EFI_STATUS
EFIAPI
with overflow check(
  VOID
);

EFI_STATUS
EFIAPI
Port access (abstracted)(
  VOID
);

EFI_STATUS
EFIAPI
32-bit IO port (aligned check)(
  VOID
);

EFI_STATUS
EFIAPI
IoRead32 ((
  VOID
);

EFI_STATUS
EFIAPI
16-bit IO port (alignment check)(
  VOID
);

EFI_STATUS
EFIAPI
IoRead16 ((
  VOID
);

EFI_STATUS
EFIAPI
IoWrite16 ((
  VOID
);

EFI_STATUS
EFIAPI
/ PEI Services table pointer via IDT(
  VOID
);

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

EFI_STATUS
EFIAPI
of HOB list(
  VOID
);

EFI_STATUS
EFIAPI
check placeholder(
  VOID
);

EFI_STATUS
EFIAPI
GUID using ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
read of 64-bit(
  VOID
);

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

EFI_STATUS
EFIAPI
get wrappers(
  VOID
);

EFI_STATUS
EFIAPI
GetPcd32 ((
  VOID
);

EFI_STATUS
EFIAPI
/ RTC Debug Level(
  VOID
);

EFI_STATUS
EFIAPI
debug error level from CMOS(
  VOID
);

EFI_STATUS
EFIAPI
GetDebugLevel ((
  VOID
);

EFI_STATUS
EFIAPI
SKU Detection(
  VOID
);

EFI_STATUS
EFIAPI
UINT8(
  VOID
);

EFI_STATUS
EFIAPI
PCR Register Access (MMIO)(
  VOID
);

EFI_STATUS
EFIAPI
PCR PID 0xAF - LPC?(
  VOID
);

EFI_STATUS
EFIAPI
(Sku == PCH_SKU_LBG) {(
  VOID
);

EFI_STATUS
EFIAPI
PCR PID 0xAE(
  VOID
);

EFI_STATUS
EFIAPI
PCR PID 0xAD(
  VOID
);

EFI_STATUS
EFIAPI
PCR PID 0xAC(
  VOID
);

EFI_STATUS
EFIAPI
PCR PID 0x90(
  VOID
);

EFI_STATUS
EFIAPI
0xB1 - root?(
  VOID
);

EFI_STATUS
EFIAPI
case(
  VOID
);

EFI_STATUS
EFIAPI
Write via MMIO or SBI(
  VOID
);

EFI_STATUS
EFIAPI
PchPcrWrite ((
  VOID
);

EFI_STATUS
EFIAPI
Cycle Decoding - IPMI IO Range Configuration(
  VOID
);

EFI_STATUS
EFIAPI
IPMI base from PCH cycle decode registers(
  VOID
);

EFI_STATUS
EFIAPI
EFI_STATUS(
  VOID
);

EFI_STATUS
EFIAPI
the 4 decode range registers from PCH(
  VOID
);

EFI_STATUS
EFIAPI
(Index = 0; Index < PCH_DECODE_RANGE_COUNT; Index++) {(
  VOID
);

EFI_STATUS
EFIAPI
MicroSecondDelay ((
  VOID
);

EFI_STATUS
EFIAPI
Hz prescale(
  VOID
);

EFI_STATUS
EFIAPI
for ACPI timer delta to equal the requested microseconds(
  VOID
);

EFI_STATUS
EFIAPI
= MicroSeconds + (IoRead32 (0x508) & 0xFFFFFF);(
  VOID
);

EFI_STATUS
EFIAPI
microseconds to ACPI timer ticks then call MicroSecondDelay(
  VOID
);

EFI_STATUS
EFIAPI
MicroSecondDelayEx ((
  VOID
);

EFI_STATUS
EFIAPI
BMC Interface Layer(
  VOID
);

EFI_STATUS
EFIAPI
write byte: abstracted for IO vs memory mapped(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsWriteByte ((
  VOID
);

EFI_STATUS
EFIAPI
read byte: abstracted for IO vs memory mapped(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsReadByte ((
  VOID
);

EFI_STATUS
EFIAPI
for IBF (Input Buffer Full) to clear(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsWaitForIbf ((
  VOID
);

EFI_STATUS
EFIAPI
Abort / Flush(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsFlush ((
  VOID
);

EFI_STATUS
EFIAPI
for IBF to clear(
  VOID
);

EFI_STATUS
EFIAPI
(TRUE) {(
  VOID
);

EFI_STATUS
EFIAPI
GET_STATUS to command register(
  VOID
);

EFI_STATUS
EFIAPI
(BmcPrivate->InterfaceType, BmcPrivate->DataReg, IPMI_KCS_CTRL_GET_STATUS);(
  VOID
);

EFI_STATUS
EFIAPI
status from command register(
  VOID
);

EFI_STATUS
EFIAPI
(BmcPrivate->InterfaceType == BMC_INTERFACE_TYPE_IO) {(
  VOID
);

EFI_STATUS
EFIAPI
0 to command register (clear)(
  VOID
);

EFI_STATUS
EFIAPI
(BmcPrivate->InterfaceType, BmcPrivate->CommandReg, 0);(
  VOID
);

EFI_STATUS
EFIAPI
status response(
  VOID
);

EFI_STATUS
EFIAPI
((Status & IPMI_KCS_STATUS_CD) == 0x40) {(
  VOID
);

EFI_STATUS
EFIAPI
response: wait for OBF and read data(
  VOID
);

EFI_STATUS
EFIAPI
= BmcPrivate->Timeout;(
  VOID
);

EFI_STATUS
EFIAPI
status - retry(
  VOID
);

EFI_STATUS
EFIAPI
(++Retries >= BMC_MAX_RETRY) {(
  VOID
);

EFI_STATUS
EFIAPI
for final OBF(
  VOID
);

EFI_STATUS
EFIAPI
KCS status for write readiness(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsCheckWriteReady ((
  VOID
);

EFI_STATUS
EFIAPI
mode: use DataReg / CommandReg directly(
  VOID
);

EFI_STATUS
EFIAPI
falls through to main KCS handler(
  VOID
);

EFI_STATUS
EFIAPI
mapped: pointer in BmcPrivate->CommandReg(
  VOID
);

EFI_STATUS
EFIAPI
for OBF (Output Buffer Full)(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsWaitForObf ((
  VOID
);

EFI_STATUS
EFIAPI
Send Message (command phase)(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsSendMessage ((
  VOID
);

EFI_STATUS
EFIAPI
function writes the KCS message body using the WRITE_START / WRITE_END protocol(
  VOID
);

EFI_STATUS
EFIAPI
is the context pointer offset, CmdDataSize is the number of bytes to send(
  VOID
);

EFI_STATUS
EFIAPI
in BmcKcsSendData/BmcKcsSendCommand(
  VOID
);

EFI_STATUS
EFIAPI
Receive Message (response phase)(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsReceiveMessage ((
  VOID
);

EFI_STATUS
EFIAPI
function reads the KCS response using the READ protocol(
  VOID
);

EFI_STATUS
EFIAPI
is called after WRITE_START to send data bytes, then WRITE_END to finalize(
  VOID
);

EFI_STATUS
EFIAPI
Read data bytes from BMC(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsReadData ((
  VOID
);

EFI_STATUS
EFIAPI
response data bytes(
  VOID
);

EFI_STATUS
EFIAPI
KCS Full Command/Response (NetFn/Lun/Cmd + data)(
  VOID
);

EFI_STATUS
EFIAPI
KCS: Send command with data and get response(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsSendCommand ((
  VOID
);

EFI_STATUS
EFIAPI
KCS Get Response(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsGetResponse ((
  VOID
);

EFI_STATUS
EFIAPI
IPMI command via KCS(
  VOID
);

EFI_STATUS
EFIAPI
BmcDoIpmiCmd ((
  VOID
);

EFI_STATUS
EFIAPI
completion code from KCS response (BMC-specific codepage char)(
  VOID
);

EFI_STATUS
EFIAPI
when completion code indicates a character that maps to a known error(
  VOID
);

EFI_STATUS
EFIAPI
response code 0x7E-0xBF ranges for error parsing(
  VOID
);

EFI_STATUS
EFIAPI
Decode Range Programming for IPMI IO Base(
  VOID
);

EFI_STATUS
EFIAPI
IPMI IO decode range in PCH(
  VOID
);

EFI_STATUS
EFIAPI
PchDecodeRangeSetup ((
  VOID
);

EFI_STATUS
EFIAPI
if IPMI range (0xCA0) already decoded(
  VOID
);

EFI_STATUS
EFIAPI
if this range covers 0xCA0 or 0xCB0(
  VOID
);

EFI_STATUS
EFIAPI
((BaseIo <= IPMI_IO_BASE_DEFAULT &&(
  VOID
);

EFI_STATUS
EFIAPI
existing decode(
  VOID
);

EFI_STATUS
EFIAPI
range found. Check if it fully covers IPMI IO.(
  VOID
);

EFI_STATUS
EFIAPI
(BaseIo <= IPMI_IO_BASE_DEFAULT && DecodeSize >= 0x10) {(
  VOID
);

EFI_STATUS
EFIAPI
to extend or create new range.(
  VOID
);

EFI_STATUS
EFIAPI
decode size and base address.(
  VOID
);

EFI_STATUS
EFIAPI
= BaseIo + DecodeSize;(
  VOID
);

EFI_STATUS
EFIAPI
= DecodeSize - BaseIo (adjusted)(
  VOID
);

EFI_STATUS
EFIAPI
through to program the decode(
  VOID
);

EFI_STATUS
EFIAPI
range found covering IPMI. Check if any free range available.(
  VOID
);

EFI_STATUS
EFIAPI
= PchDecodeFindFreeRange (Ranges);(
  VOID
);

EFI_STATUS
EFIAPI
for free slot by scanning (some ranges may not have base)(
  VOID
);

EFI_STATUS
EFIAPI
platform policy(
  VOID
);

EFI_STATUS
EFIAPI
(MEMORY[PCH_PCR_LPC_IPMI_REG] >= 0) {(
  VOID
);

EFI_STATUS
EFIAPI
= n3232 | (((n16 - 1) & 0xFC) << 16) | 1(
  VOID
);

EFI_STATUS
EFIAPI
bytes for IPMI(
  VOID
);

EFI_STATUS
EFIAPI
= (n16 - 1) & 0xFC(
  VOID
);

EFI_STATUS
EFIAPI
= BaseIo | ((DecodeSize & 0xFC) << 16) | 1(
  VOID
);

EFI_STATUS
EFIAPI
the decode range register(
  VOID
);

EFI_STATUS
EFIAPI
via PCR(
  VOID
);

EFI_STATUS
EFIAPI
= BaseIo | (((DecodeSize - 1) & 0xFC) << 16) | 1(
  VOID
);

EFI_STATUS
EFIAPI
to PCR decode register(
  VOID
);

EFI_STATUS
EFIAPI
the PCH decode range for IPMI(
  VOID
);

EFI_STATUS
EFIAPI
PchDecodeRangeProg ((
  VOID
);

EFI_STATUS
EFIAPI
index from base(
  VOID
);

EFI_STATUS
EFIAPI
PCH PCR cycle decode register(
  VOID
);

EFI_STATUS
EFIAPI
PchDecodeRangeGet ((
  VOID
);

EFI_STATUS
EFIAPI
PchDecodeRangeSet ((
  VOID
);

EFI_STATUS
EFIAPI
PCH register base(
  VOID
);

EFI_STATUS
EFIAPI
*(
  VOID
);

EFI_STATUS
EFIAPI
Failure Detection(
  VOID
);

EFI_STATUS
EFIAPI
BMC Base Address via PCH cycle decoding registers(
  VOID
);

EFI_STATUS
EFIAPI
Entry Point(
  VOID
);

EFI_STATUS
EFIAPI
PEI Services revision(
  VOID
);

EFI_STATUS
EFIAPI
= (PEI_SERVICES **)GetPeiServices ();(
  VOID
);

EFI_STATUS
EFIAPI
if PCD needs to be set up (bit 7 of byte 1024068)(
  VOID
);

EFI_STATUS
EFIAPI
((*(volatile INT8 *)((UINTN)GetPeiPcdPpi () + 1024068) & 0x80) == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
setup variable PPI(
  VOID
);

EFI_STATUS
EFIAPI
= (*PeiServices)->LocatePpi ((
  VOID
);

EFI_STATUS
EFIAPI
ServerSetup variable(
  VOID
);

EFI_STATUS
EFIAPI
= 1072;(
  VOID
);

EFI_STATUS
EFIAPI
BMC private data structure(
  VOID
);

EFI_STATUS
EFIAPI
= (BMC_PRIVATE_DATA *)AllocateZeroPoolCheck (336);(
  VOID
);

EFI_STATUS
EFIAPI
initialization functions from table(
  VOID
);

EFI_STATUS
EFIAPI
= 0;(
  VOID
);

EFI_STATUS
EFIAPI
BMC private structure(
  VOID
);

EFI_STATUS
EFIAPI
function pointers for IPMI KCS transport(
  VOID
);

EFI_STATUS
EFIAPI
be filled by init code(
  VOID
);

EFI_STATUS
EFIAPI
initialization at address 0xFFE5B7EF(
  VOID
);

EFI_STATUS
EFIAPI
Init Function Table (referenced from .rdata at funcs_FFE5BB6C)(
  VOID
);

EFI_STATUS
EFIAPI
CONST(
  VOID
);

EFI_STATUS
EFIAPI
BMC decode(
  VOID
);

EFI_STATUS
EFIAPI
};(
  VOID
);

EFI_STATUS
EFIAPI
Soft Error Character Handling(
  VOID
);

EFI_STATUS
EFIAPI
a character from the BMC response (soft error)(
  VOID
);

EFI_STATUS
EFIAPI
of known completion code characters(
  VOID
);

EFI_STATUS
EFIAPI
completion code characters(
  VOID
);

EFI_STATUS
EFIAPI
Send Command: Build message and send via KCS(
  VOID
);

EFI_STATUS
EFIAPI
KCS command frame and send via KCS transport(
  VOID
);

EFI_STATUS
EFIAPI
BmcKcsBuildAndSend ((
  VOID
);

EFI_STATUS
EFIAPI
Guard TPM Detection and Initialization(
  VOID
);

EFI_STATUS
EFIAPI
if Boot Guard TPM requires action(
  VOID
);

EFI_STATUS
EFIAPI
BootGuardCheckTpm ((
  VOID
);

EFI_STATUS
EFIAPI
Boot Guard TPM revision(
  VOID
);

EFI_STATUS
EFIAPI
BootGuardGetTpmRevision ((
  VOID
);

EFI_STATUS
EFIAPI
Constructor: ASSERT for PEIM entry point conditions(
  VOID
);

EFI_STATUS
EFIAPI
global PEI services pointer (from IDT-based lookup)(
  VOID
);

EFI_STATUS
EFIAPI
**gPS;(
  VOID
);

EFI_STATUS
EFIAPI
Access for PEI Phase (using PCD PPI)(
  VOID
);

#endif /* __PEIIPMIBMCINITIALIZE_H__ */