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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __PEIFRB_H__
#define __PEIFRB_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
DebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
RTC I/O ports and register indices(
  VOID
);

EFI_STATUS
EFIAPI
timeout status memory-mapped IO address(
  VOID
);

EFI_STATUS
EFIAPI
variable byte offsets(
  VOID
);

EFI_STATUS
EFIAPI
enable flag at offset 6 in ServerSetup data(
  VOID
);

EFI_STATUS
EFIAPI
multiplier byte at offset 7(
  VOID
);

EFI_STATUS
EFIAPI
function table offsets (IA32 flat model)(
  VOID
);

EFI_STATUS
EFIAPI
default timeout: 3600 * 100ms = 360 seconds = 6 minutes(
  VOID
);

EFI_STATUS
EFIAPI
unit = 100ms(
  VOID
);

EFI_STATUS
EFIAPI
FRB configuration structure (6 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
struct {(
  VOID
);

EFI_STATUS
EFIAPI
external declarations (defined in .data section of the PE32)(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID  gEfiFirmwareVolumeBlock2ProtocolGuid;(
  VOID
);

EFI_STATUS
EFIAPI
PPI descriptor (installed before exit)(
  VOID
);

EFI_STATUS
EFIAPI
EFI_PEI_PPI_DESCRIPTOR  gPeiFrbPpiDescriptor;(
  VOID
);

EFI_STATUS
EFIAPI
prototypes(
  VOID
);

EFI_STATUS
EFIAPI
EFIAPI(
  VOID
);

EFI_STATUS
EFIAPI
the PEI Services revision(
  VOID
);

EFI_STATUS
EFIAPI
((*PeiServices)->Hdr.Revision < PEI_SERVICES_REVISION) {(
  VOID
);

EFI_STATUS
EFIAPI
FRB config structure: enabled=TRUE, all zeros(
  VOID
);

EFI_STATUS
EFIAPI
= TRUE;(
  VOID
);

EFI_STATUS
EFIAPI
the AMI PlatformSetup PPI(
  VOID
);

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

EFI_STATUS
EFIAPI
FRB setup configuration from ServerSetup NVRAM variable(
  VOID
);

EFI_STATUS
EFIAPI
((INT32)SystemTable, &FrbCfg, &FrbEnabled);(
  VOID
);

EFI_STATUS
EFIAPI
FRB: set reset type bits to cold reset(
  VOID
);

EFI_STATUS
EFIAPI
timeout value from ServerSetup(
  VOID
);

EFI_STATUS
EFIAPI
FRB, preserve timeout(
  VOID
);

EFI_STATUS
EFIAPI
FRB config to NVRAM via platform setup PPI (SetVariable #36)(
  VOID
);

EFI_STATUS
EFIAPI
= 0;(
  VOID
);

EFI_STATUS
EFIAPI
the FRB reset-pending variable (SetVariable #34)(
  VOID
);

EFI_STATUS
EFIAPI
FRB PPI to notify subsequent PEIMs(
  VOID
);

EFI_STATUS
EFIAPI
(*PeiServices)->InstallPpi ((
  VOID
);

EFI_STATUS
EFIAPI
not enabled in ServerSetup(
  VOID
);

EFI_STATUS
EFIAPI
EFI_INVALID_PARAMETER;(
  VOID
);

EFI_STATUS
EFIAPI
Firmware Volume Block 2 protocol to access NVRAM(
  VOID
);

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

EFI_STATUS
EFIAPI
not available: assert and report error(
  VOID
);

EFI_STATUS
EFIAPI
(0x80000000, "\nASSERT_EFI_ERROR (Status = %r)\n", Status);(
  VOID
);

EFI_STATUS
EFIAPI
ServerSetup variable (expect max 1072 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
= 1072;(
  VOID
);

EFI_STATUS
EFIAPI
FRB enable flag (byte offset 6 in ServerSetup data)(
  VOID
);

EFI_STATUS
EFIAPI
timeout: 10 * byte at offset 7(
  VOID
);

EFI_STATUS
EFIAPI
= FRB_TIMEOUT_SCALE * (INT32)*(UINT32 *)&VarData[FRB_VAR_TIMEOUT_BYTE];(
  VOID
);

EFI_STATUS
EFIAPI
EFI_PEI_DEBUG2_PPI(
  VOID
);

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

EFI_STATUS
EFIAPI
print assert if reset type allows it(
  VOID
);

EFI_STATUS
EFIAPI
((INT32 (__cdecl *)(INT32, const CHAR8 *, CHAR8 *))Result)((
  VOID
);

EFI_STATUS
EFIAPI
bit 7 of CMOS index, set index to Status Register A (0x4A)(
  VOID
);

EFI_STATUS
EFIAPI
= IoRead8 (RTC_INDEX_PORT);(
  VOID
);

EFI_STATUS
EFIAPI
the reset type value from CMOS data port(
  VOID
);

EFI_STATUS
EFIAPI
= IoRead8 (RTC_DATA_PORT);(
  VOID
);

EFI_STATUS
EFIAPI
the reset type:(
  VOID
);

EFI_STATUS
EFIAPI
= Power-on (cold start)(
  VOID
);

EFI_STATUS
EFIAPI
= Warm reset via FRB timeout logic(
  VOID
);

EFI_STATUS
EFIAPI
((UINT8)ResetValue <= 3) {(
  VOID
);

EFI_STATUS
EFIAPI
interpretation for values 0-3(
  VOID
);

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

EFI_STATUS
EFIAPI
= EFI_WARN_RESET_COLD? No, actually this is EFI_WARN_RESET_WARM(
  VOID
);

EFI_STATUS
EFIAPI
value: if ResetValue != 1 -> cold reset(
  VOID
);

EFI_STATUS
EFIAPI
0x80000004;            // FRB reset: warm(
  VOID
);

EFI_STATUS
EFIAPI
/ FRB reset: cold(
  VOID
);

EFI_STATUS
EFIAPI
= &((CHAR8 *)Source)[Count - 1];(
  VOID
);

EFI_STATUS
EFIAPI
= Count & 3;(
  VOID
);

#endif /* __PEIFRB_H__ */