Newer
Older
AMI-Aptio-BIOS-Reversed / PurleySktPkg / Me / Sps / Pei / SpsPei / SpsPei.h
@Ajax Dong Ajax Dong 2 days ago 9 KB Restructure the repo
/** @file
  SpsPei.h -- Header for SpsPei

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __SPSPEI_H__
#define __SPSPEI_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
InternalSetMem32_Block(
  VOID
);

EFI_STATUS
EFIAPI
TruncateTo32(
  VOID
);

EFI_STATUS
EFIAPI
ReadIdtr(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
WriteUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
GetTimestampFrequency(
  VOID
);

EFI_STATUS
EFIAPI
IoRead16(
  VOID
);

EFI_STATUS
EFIAPI
IoWrite16(
  VOID
);

EFI_STATUS
EFIAPI
IoRead32(
  VOID
);

EFI_STATUS
EFIAPI
SpsDebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
DebugAssert(
  VOID
);

EFI_STATUS
EFIAPI
GetDebugLevel(
  VOID
);

EFI_STATUS
EFIAPI
PcdGet32(
  VOID
);

EFI_STATUS
EFIAPI
PcdCallbackInit(
  VOID
);

EFI_STATUS
EFIAPI
PcdGetFromProtocol(
  VOID
);

EFI_STATUS
EFIAPI
PchPwrmBaseGet(
  VOID
);

EFI_STATUS
EFIAPI
GetPchSkuType(
  VOID
);

EFI_STATUS
EFIAPI
SetPchMmioRange(
  VOID
);

EFI_STATUS
EFIAPI
PeiServicesLocatePpi(
  VOID
);

EFI_STATUS
EFIAPI
HobIsMatchingGuid(
  VOID
);

EFI_STATUS
EFIAPI
GetMeFs1FromHob(
  VOID
);

EFI_STATUS
EFIAPI
IsSpsFw(
  VOID
);

EFI_STATUS
EFIAPI
IsSpsNormalModeS3(
  VOID
);

EFI_STATUS
EFIAPI
MicroSecondDelaySpin(
  VOID
);

EFI_STATUS
EFIAPI
MicroSecondDelay(
  VOID
);

EFI_STATUS
EFIAPI
WaitForMeNormalOrRecovery(
  VOID
);

EFI_STATUS
EFIAPI
WaitForMeFwInitComplete(
  VOID
);

EFI_STATUS
EFIAPI
WaitForMeResetCounterChange(
  VOID
);

EFI_STATUS
EFIAPI
SetNmBootMode(
  VOID
);

EFI_STATUS
EFIAPI
SpsS3Path(
  VOID
);

EFI_STATUS
EFIAPI
SpsNonS3Path(
  VOID
);

EFI_STATUS
EFIAPI
FinalizeSpsInit(
  VOID
);

EFI_STATUS
EFIAPI
PpiNotifyHeciReady(
  VOID
);

EFI_STATUS
EFIAPI
ExecutePreDidReset(
  VOID
);

EFI_STATUS
EFIAPI
IccSetGetCurrentClockingMode(
  VOID
);

EFI_STATUS
EFIAPI
PeiHeciSetSscAlternate(
  VOID
);

EFI_STATUS
EFIAPI
SpsPeiEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
GetBootMode(
  VOID
);

EFI_STATUS
EFIAPI
SetWatchdogTimer(
  VOID
);

EFI_STATUS
EFIAPI
GUIDs defined in the .data section(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID gHeci1PpiGuid;(
  VOID
);

EFI_STATUS
EFIAPI
descriptors for PPI registration(
  VOID
);

EFI_STATUS
EFIAPI
EFI_PEI_NOTIFY_DESCRIPTOR mS3NotifyDesc;(
  VOID
);

EFI_STATUS
EFIAPI
Wrappers / Internal Helpers(
  VOID
);

EFI_STATUS
EFIAPI
and Assert(
  VOID
);

EFI_STATUS
EFIAPI
0-3: directly interpret(
  VOID
);

EFI_STATUS
EFIAPI
(Value == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
> 3: check if n3_0 is zero (backup from memory)(
  VOID
);

EFI_STATUS
EFIAPI
(n3_0 == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
fallback from memory-mapped register(
  VOID
);

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

EFI_STATUS
EFIAPI
only(
  VOID
);

EFI_STATUS
EFIAPI
Access via PEI PCD Protocol(
  VOID
);

EFI_STATUS
EFIAPI
call-back data structures (used for lazy initialization)(
  VOID
);

EFI_STATUS
EFIAPI
UINT32  mPcdTable[] = { 0 };(
  VOID
);

EFI_STATUS
EFIAPI
table path(
  VOID
);

EFI_STATUS
EFIAPI
= *(UINT32 *)(*(UINT32 *)((UINTN)PcdEntry + 12) +(
  VOID
);

EFI_STATUS
EFIAPI
protocol path(
  VOID
);

EFI_STATUS
EFIAPI
(PcdProtocol->GetSize (PcdGetPtr) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
/ Platform Helpers(
  VOID
);

EFI_STATUS
EFIAPI
LPC device ID from PCH config space at Bus 0, Dev 1F, Func 0(
  VOID
);

EFI_STATUS
EFIAPI
= IoRead16 (GetMeFwHob (31, 2));(
  VOID
);

EFI_STATUS
EFIAPI
PWRM base from the same config space(
  VOID
);

EFI_STATUS
EFIAPI
= 1;(
  VOID
);

EFI_STATUS
EFIAPI
= 2;(
  VOID
);

EFI_STATUS
EFIAPI
(Host Embedded Controller Interface) Access(
  VOID
);

EFI_STATUS
EFIAPI
Firmware HOB Access(
  VOID
);

EFI_STATUS
EFIAPI
path: assert MeFwHob->Group[0].FunNumber == HECI1_DEVICE(
  VOID
);

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

EFI_STATUS
EFIAPI
DWR flow(
  VOID
);

EFI_STATUS
EFIAPI
((*(volatile UINT32 *)(PwrmBase + 300) & 0x8000) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
not yet available; read from HOB directly(
  VOID
);

EFI_STATUS
EFIAPI
= GetMeFs1FromHob ();(
  VOID
);

EFI_STATUS
EFIAPI
FSM state(
  VOID
);

EFI_STATUS
EFIAPI
((MeFs1 & MEFS1_ME_STATE_MASK) == 4) {(
  VOID
);

EFI_STATUS
EFIAPI
}(
  VOID
);

EFI_STATUS
EFIAPI
case 1:   // Debug(
  VOID
);

EFI_STATUS
EFIAPI
return 255;(
  VOID
);

EFI_STATUS
EFIAPI
return 1;(
  VOID
);

EFI_STATUS
EFIAPI
ME firmware state(
  VOID
);

EFI_STATUS
EFIAPI
Building(
  VOID
);

EFI_STATUS
EFIAPI
/ Delay(
  VOID
);

EFI_STATUS
EFIAPI
Message Functions(
  VOID
);

EFI_STATUS
EFIAPI
boot mode for context(
  VOID
);

EFI_STATUS
EFIAPI
= 4;(
  VOID
);

EFI_STATUS
EFIAPI
ME state(
  VOID
);

EFI_STATUS
EFIAPI
((MeStatus & MEFS1_ME_STATE_MASK) - 2) {(
  VOID
);

EFI_STATUS
EFIAPI
GetMeFwHob (0);(
  VOID
);

EFI_STATUS
EFIAPI
(5 - 2 = 3)(
  VOID
);

EFI_STATUS
EFIAPI
for ME firmware init(
  VOID
);

EFI_STATUS
EFIAPI
= WaitForMeFwInitComplete (GetSpsPolicyPpi ());(
  VOID
);

EFI_STATUS
EFIAPI
HECI PPI(
  VOID
);

EFI_STATUS
EFIAPI
= PeiServicesLocatePpi (&gHeci1PpiGuid, (VOID **)&HeciPpi);(
  VOID
);

EFI_STATUS
EFIAPI
and adjust MMIO range(
  VOID
);

EFI_STATUS
EFIAPI
= *(volatile UINT32 *)PCH_MMIO_RANGE_REGISTER;(
  VOID
);

EFI_STATUS
EFIAPI
if END_OF_POST should be sent(
  VOID
);

EFI_STATUS
EFIAPI
(GetHeciPpi (NULL) != NULL &&(
  VOID
);

EFI_STATUS
EFIAPI
flags(
  VOID
);

EFI_STATUS
EFIAPI
SPS policy(
  VOID
);

EFI_STATUS
EFIAPI
= (SPS_POLICY_PPI *)GetSpsPolicyPpi ();(
  VOID
);

EFI_STATUS
EFIAPI
= WaitForMeFwInitComplete (SpsPolicy);(
  VOID
);

EFI_STATUS
EFIAPI
the HECI PPI(
  VOID
);

EFI_STATUS
EFIAPI
(0);(
  VOID
);

EFI_STATUS
EFIAPI
HECI and send ME-BIOS Interface Version request(
  VOID
);

EFI_STATUS
EFIAPI
loop for interface version negotiation(
  VOID
);

EFI_STATUS
EFIAPI
(RetryCount = 0; RetryCount < HECI_MSG_GET_MEBIOS_RETRY; RetryCount++) {(
  VOID
);

EFI_STATUS
EFIAPI
- interface version negotiated(
  VOID
);

EFI_STATUS
EFIAPI
Node Manager (NM) if enabled(
  VOID
);

EFI_STATUS
EFIAPI
((FeatureSet & FEATURE_NODE_MANAGER) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
configured(
  VOID
);

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

EFI_STATUS
EFIAPI
HECI-2(
  VOID
);

EFI_STATUS
EFIAPI
(EFI_ERROR (PeiServicesLocatePpi (&gHeci1PpiGuid, (VOID **)&IccPpi)) ||(
  VOID
);

EFI_STATUS
EFIAPI
ICC clock settings(
  VOID
);

EFI_STATUS
EFIAPI
(IccSetGetCurrentClockingMode (NULL) >= 0) {(
  VOID
);

EFI_STATUS
EFIAPI
ICC clock settings if feature enabled(
  VOID
);

EFI_STATUS
EFIAPI
((FeatureSet & FEATURE_ICC_CLOCK_SETTINGS) != 0 &&(
  VOID
);

EFI_STATUS
EFIAPI
SPS init with HOB publishing(
  VOID
);

EFI_STATUS
EFIAPI
((
  VOID
);

EFI_STATUS
EFIAPI
buffer published in the HOB (16 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
{(
  VOID
);

EFI_STATUS
EFIAPI
the SPS info HOB via PEI services(
  VOID
);

EFI_STATUS
EFIAPI
= (SPS_INFO_HOB *)HobCreateSpsInfo ((
  VOID
);

EFI_STATUS
EFIAPI
SPS info HOB was registered(
  VOID
);

EFI_STATUS
EFIAPI
(HobGetGuid (&gSpsInfoHobGuid) == NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
existing SPS info HOB(
  VOID
);

EFI_STATUS
EFIAPI
= (SPS_INFO_HOB *)HobGetGuid (&gSpsInfoHobGuid);(
  VOID
);

EFI_STATUS
EFIAPI
notify descriptor and PPI pointer in the HOB at known offsets(
  VOID
);

EFI_STATUS
EFIAPI
+35: low byte of NotifyDesc(
  VOID
);

EFI_STATUS
EFIAPI
+36: low byte of Ppi(
  VOID
);

EFI_STATUS
EFIAPI
pre-reset ME state(
  VOID
);

EFI_STATUS
EFIAPI
= *(volatile UINT32 *)(GetMeFwHob (0) + 64);(
  VOID
);

EFI_STATUS
EFIAPI
and send Pre-DID reset MKHI message(
  VOID
);

EFI_STATUS
EFIAPI
reset response(
  VOID
);

EFI_STATUS
EFIAPI
((MkhiMsgBuf[0] & 0x7F00) != 0 ||(
  VOID
);

EFI_STATUS
EFIAPI
for reset counter to change(
  VOID
);

EFI_STATUS
EFIAPI
= WaitForMeResetCounterChange ((
  VOID
);

EFI_STATUS
EFIAPI
for ME to return to Normal or Recovery state(
  VOID
);

EFI_STATUS
EFIAPI
= WaitForMeNormalOrRecovery (&Timeout);(
  VOID
);

EFI_STATUS
EFIAPI
(Integrated Clock Control)(
  VOID
);

EFI_STATUS
EFIAPI
header: signature 0x40000, version, response fields(
  VOID
);

EFI_STATUS
EFIAPI
LocalBuf;(
  VOID
);

EFI_STATUS
EFIAPI
HECI PPI and send ICC command(
  VOID
);

EFI_STATUS
EFIAPI
Entry Point(
  VOID
);

EFI_STATUS
EFIAPI
1: Verify ME firmware is SPS(
  VOID
);

EFI_STATUS
EFIAPI
(IsSpsFw () != 1) {(
  VOID
);

EFI_STATUS
EFIAPI
2: Read boot mode(
  VOID
);

EFI_STATUS
EFIAPI
3: Check pre-DID reset policy(
  VOID
);

EFI_STATUS
EFIAPI
((EFI_D_INFO, " execution\n"));(
  VOID
);

EFI_STATUS
EFIAPI
in recovery mode: re-initialize(
  VOID
);

EFI_STATUS
EFIAPI
((EFI_D_WARN(
  VOID
);

EFI_STATUS
EFIAPI
4: Branch to S3 or non-S3 path(
  VOID
);

EFI_STATUS
EFIAPI
(BootMode == BOOT_MODE_S3_RESUME) {(
  VOID
);

EFI_STATUS
EFIAPI
resume path(
  VOID
);

EFI_STATUS
EFIAPI
((EFI_D_INFO, "[SPS] S3 resume path\n"));(
  VOID
);

EFI_STATUS
EFIAPI
((EFI_D_INFO, "[SPS] Non S3 boot path\n"));(
  VOID
);

EFI_STATUS
EFIAPI
(0, 0, 0, 0, 0);(
  VOID
);

EFI_STATUS
EFIAPI
Entry Point (PEI)(
  VOID
);

EFI_STATUS
EFIAPI
whether bit 7 of the marker byte is set.(
  VOID
);

EFI_STATUS
EFIAPI
(*(CHAR8 *)(GetBootMode () + 1024068) >= 0) {(
  VOID
);

EFI_STATUS
EFIAPI
call: set watchdog timer (1280ms)(
  VOID
);

EFI_STATUS
EFIAPI
();(
  VOID
);

EFI_STATUS
EFIAPI
as initialized(
  VOID
);

EFI_STATUS
EFIAPI
Notify Descriptors (in .data section)(
  VOID
);

EFI_STATUS
EFIAPI
at 0xFFDA68B0 (for S3 path)(
  VOID
);

EFI_STATUS
EFIAPI
= SpsS3Path(
  VOID
);

EFI_STATUS
EFIAPI
mS3NotifyDesc = {(
  VOID
);

EFI_STATUS
EFIAPI
at 0xFFDA68BC (for Non-S3 path)(
  VOID
);

EFI_STATUS
EFIAPI
= PpiNotifyHeciReady(
  VOID
);

EFI_STATUS
EFIAPI
mNonS3NotifyDesc = {(
  VOID
);

#endif /* __SPSPEI_H__ */