Newer
Older
AMI-Aptio-BIOS-Reversed / AmiCRBPkg / Chipset / SB / SBDXE / SBDXE.h
@Ajax Dong Ajax Dong 2 days ago 12 KB Full restructure
/** @file
  SBDXE.h -- Header for SBDXE

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __SBDXE_H__
#define __SBDXE_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
GetPcdProtocol(
  VOID
);

EFI_STATUS
EFIAPI
SbdInstallPcieSegBusTable(
  VOID
);

EFI_STATUS
EFIAPI
SbdAssert(
  VOID
);

EFI_STATUS
EFIAPI
SbdDebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
GetPciExpressBaseAddress(
  VOID
);

EFI_STATUS
EFIAPI
GetPchSku(
  VOID
);

EFI_STATUS
EFIAPI
GetPchStepping(
  VOID
);

EFI_STATUS
EFIAPI
XhciWrite32(
  VOID
);

EFI_STATUS
EFIAPI
XhciRead32(
  VOID
);

EFI_STATUS
EFIAPI
XhciDisablePort(
  VOID
);

EFI_STATUS
EFIAPI
UsbPerPortDisableCallback(
  VOID
);

EFI_STATUS
EFIAPI
SaveBootScriptToLockBox(
  VOID
);

EFI_STATUS
EFIAPI
SetBootScriptLockBoxAttributes(
  VOID
);

EFI_STATUS
EFIAPI
InitBootScriptTable(
  VOID
);

EFI_STATUS
EFIAPI
BootScriptReadyToLockNotify(
  VOID
);

EFI_STATUS
EFIAPI
BootScriptCloseNotify(
  VOID
);

EFI_STATUS
EFIAPI
CloseBootScriptTable(
  VOID
);

EFI_STATUS
EFIAPI
BootScriptContextCloseNotify(
  VOID
);

EFI_STATUS
EFIAPI
InitializeDxeServices(
  VOID
);

EFI_STATUS
EFIAPI
LocateSmmCommunicationProtocol(
  VOID
);

EFI_STATUS
EFIAPI
InitializeLibGlobals(
  VOID
);

EFI_STATUS
EFIAPI
SBDxeInitialize(
  VOID
);

EFI_STATUS
EFIAPI
SBDxeEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
PciExpressRead32(
  VOID
);

EFI_STATUS
EFIAPI
PciExpressWrite32(
  VOID
);

EFI_STATUS
EFIAPI
IoRead16(
  VOID
);

EFI_STATUS
EFIAPI
IoWrite16(
  VOID
);

EFI_STATUS
EFIAPI
IoRead32(
  VOID
);

EFI_STATUS
EFIAPI
IoWrite32(
  VOID
);

EFI_STATUS
EFIAPI
IoRead8(
  VOID
);

EFI_STATUS
EFIAPI
IoWrite8(
  VOID
);

EFI_STATUS
EFIAPI
MemZero(
  VOID
);

EFI_STATUS
EFIAPI
Data(
  VOID
);

EFI_STATUS
EFIAPI
gImageHandle       = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
list pointer (from DXE HOB library)(
  VOID
);

EFI_STATUS
EFIAPI
*gHobList  = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
(MM PCI base) from DxeMmPciBaseLib(
  VOID
);

EFI_STATUS
EFIAPI
*gPciUsra  = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
Base Address (from PCD)(
  VOID
);

EFI_STATUS
EFIAPI
gPciExpressBaseAddr = 0;(
  VOID
);

EFI_STATUS
EFIAPI
stepping / SKU global state(
  VOID
);

EFI_STATUS
EFIAPI
gPchStepping = 3;    ///< Initial state; determined at first call(
  VOID
);

EFI_STATUS
EFIAPI
Script / S3 state(
  VOID
);

EFI_STATUS
EFIAPI
gBootScriptTable     = 0;(
  VOID
);

EFI_STATUS
EFIAPI
USB port disable state: set to TRUE after first callback(
  VOID
);

EFI_STATUS
EFIAPI
gXhciPortDisableDone = FALSE;(
  VOID
);

EFI_STATUS
EFIAPI
protocol, SMM Communication protocol(
  VOID
);

EFI_STATUS
EFIAPI
*gPcdProtocol         = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
via SMM PCI base protocol(
  VOID
);

EFI_STATUS
EFIAPI
VOID  *mPciUsra = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
Definitions(
  VOID
);

EFI_STATUS
EFIAPI
gPchRcConfigGuid            = { 0x6350F689, 0x6EF9, 0x4B9A, { 0x87, 0xA0, 0xBB, 0xF6, 0x4D, 0x35, 0x08, 0xED }};(
  VOID
);

EFI_STATUS
EFIAPI
for PiSmmCommunicationRegionTable (for SMM LockBox)(
  VOID
);

EFI_STATUS
EFIAPI
gSmmCommRegionGuid          = { 0x8E7BE0F9, 0x3D41, 0x42D9, { 0x9F, 0xFF, 0xAC, 0xC0, 0x88, 0xC2, 0xC8, 0x32 }};(
  VOID
);

EFI_STATUS
EFIAPI
Prototypes (local)(
  VOID
);

EFI_STATUS
EFIAPI
EFI_STATUS(
  VOID
);

EFI_STATUS
EFIAPI
helper: ASSERT macro with message(
  VOID
);

EFI_STATUS
EFIAPI
SKU Detection(
  VOID
);

EFI_STATUS
EFIAPI
LPC/eSPI device ID from PCI config space (Bus 0, Dev 31, Func 0, offset 2)(
  VOID
);

EFI_STATUS
EFIAPI
= IoRead16 (PCI_EXPRESS_LIB_ADDRESS (0, 31, 0, 0x02));(
  VOID
);

EFI_STATUS
EFIAPI
if device ID falls in the PCH-H range(
  VOID
);

EFI_STATUS
EFIAPI
(((LpcDevId + 24128) & 0xFF70) == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
is PCH-H (SKU 1)(
  VOID
);

EFI_STATUS
EFIAPI
= 1;(
  VOID
);

EFI_STATUS
EFIAPI
is PCH-LP (SKU 2)(
  VOID
);

EFI_STATUS
EFIAPI
= 2;(
  VOID
);

EFI_STATUS
EFIAPI
Stepping Detection(
  VOID
);

EFI_STATUS
EFIAPI
the PCH RID (Revision ID) from PCI config(
  VOID
);

EFI_STATUS
EFIAPI
the base address for PCH info from the PchInfoLib(
  VOID
);

EFI_STATUS
EFIAPI
= PciExpressRead32 ((
  VOID
);

EFI_STATUS
EFIAPI
the LPC device ID for stepping decode(
  VOID
);

EFI_STATUS
EFIAPI
stepping based on Device ID + Rev ID(
  VOID
);

EFI_STATUS
EFIAPI
(((LpcDeviceId + 24128) & 0xFF70) == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
(RevId) {(
  VOID
);

EFI_STATUS
EFIAPI
case 0x10:(
  VOID
);

EFI_STATUS
EFIAPI
case 0x20:(
  VOID
);

EFI_STATUS
EFIAPI
case 0x30:(
  VOID
);

EFI_STATUS
EFIAPI
case 0x31:(
  VOID
);

EFI_STATUS
EFIAPI
default:(
  VOID
);

EFI_STATUS
EFIAPI
((UINT16)(LpcDeviceId + 25280) <= 8) {(
  VOID
);

EFI_STATUS
EFIAPI
/ LP D0(
  VOID
);

EFI_STATUS
EFIAPI
/ LP D1(
  VOID
);

EFI_STATUS
EFIAPI
/ LP D2(
  VOID
);

EFI_STATUS
EFIAPI
/ LP D3(
  VOID
);

EFI_STATUS
EFIAPI
none of the above, check for D/E stepping(
  VOID
);

EFI_STATUS
EFIAPI
(((LpcDeviceId + 24128) & 0xFF70) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
the RTC CMOS register for stepping hints(
  VOID
);

EFI_STATUS
EFIAPI
} else if (RevId == 2) {(
  VOID
);

EFI_STATUS
EFIAPI
} else if (RevId == 3) {(
  VOID
);

EFI_STATUS
EFIAPI
} else if (RevId == 4) {(
  VOID
);

EFI_STATUS
EFIAPI
} else if (RevId == 5) {(
  VOID
);

EFI_STATUS
EFIAPI
} else if (RevId == 6) {(
  VOID
);

EFI_STATUS
EFIAPI
} else {(
  VOID
);

EFI_STATUS
EFIAPI
}(
  VOID
);

EFI_STATUS
EFIAPI
Per-Port Disable Logic(
  VOID
);

EFI_STATUS
EFIAPI
is already disabled, nothing to do.(
  VOID
);

EFI_STATUS
EFIAPI
port disable(
  VOID
);

EFI_STATUS
EFIAPI
(IsSSPort) {(
  VOID
);

EFI_STATUS
EFIAPI
SS ports, set Port Disable + Reset(
  VOID
);

EFI_STATUS
EFIAPI
(XhciBar, PortBase, 0x8000FE00);(
  VOID
);

EFI_STATUS
EFIAPI
up to 3 seconds (3000 * 1ms)(
  VOID
);

EFI_STATUS
EFIAPI
(Timeout = 0; Timeout < 3000; Timeout++) {(
  VOID
);

EFI_STATUS
EFIAPI
HS ports, set Port Reset + Port Disable(
  VOID
);

EFI_STATUS
EFIAPI
(XhciBar, PortBase, 0x210);(
  VOID
);

EFI_STATUS
EFIAPI
up to 200ms (200 * 1ms)(
  VOID
);

EFI_STATUS
EFIAPI
(Timeout = 0; Timeout < 200; Timeout++) {(
  VOID
);

EFI_STATUS
EFIAPI
PCH SKU for port count and register layout(
  VOID
);

EFI_STATUS
EFIAPI
= GetPchSku ();(
  VOID
);

EFI_STATUS
EFIAPI
PchRcConfiguration variable from runtime services(
  VOID
);

EFI_STATUS
EFIAPI
= sizeof (PortConfig);(
  VOID
);

EFI_STATUS
EFIAPI
XHCI BAR(
  VOID
);

EFI_STATUS
EFIAPI
= 0xA0010;  // EFI_PCI_IO_ATTRIBUTE_MEMORY(
  VOID
);

EFI_STATUS
EFIAPI
= PciExpressRead32 (PCI_EXPRESS_LIB_ADDRESS (0, 20, 0, 0x10));(
  VOID
);

EFI_STATUS
EFIAPI
64-bit BAR if needed(
  VOID
);

EFI_STATUS
EFIAPI
((PciExpressRead32 (PCI_EXPRESS_LIB_ADDRESS (0, 20, 0, 0x10)) & 0x06) == 0x04) {(
  VOID
);

EFI_STATUS
EFIAPI
current HS PDO, SS PDO, and SSPE values(
  VOID
);

EFI_STATUS
EFIAPI
= XhciRead32 (XhciBar, XHCI_HSPDO_OFS);(
  VOID
);

EFI_STATUS
EFIAPI
HS (USB 2.0) ports(
  VOID
);

EFI_STATUS
EFIAPI
(PortIndex = 0; PortIndex < MaxHsPorts; PortIndex++) {(
  VOID
);

EFI_STATUS
EFIAPI
wants port disabled(
  VOID
);

EFI_STATUS
EFIAPI
&= ~DisableMask;(
  VOID
);

EFI_STATUS
EFIAPI
wants port enabled(
  VOID
);

EFI_STATUS
EFIAPI
|= DisableMask;(
  VOID
);

EFI_STATUS
EFIAPI
SS (USB 3.0) ports(
  VOID
);

EFI_STATUS
EFIAPI
(PortIndex = 0; PortIndex < MaxSsPorts; PortIndex++) {(
  VOID
);

EFI_STATUS
EFIAPI
SSPE value(
  VOID
);

EFI_STATUS
EFIAPI
(PortConfig[1254] != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
SS ports explicitly managed(
  VOID
);

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

EFI_STATUS
EFIAPI
SSPE from SS PDO(
  VOID
);

EFI_STATUS
EFIAPI
= SsPdo;(
  VOID
);

EFI_STATUS
EFIAPI
back the PDO and SSPE registers(
  VOID
);

EFI_STATUS
EFIAPI
((DEBUG_INFO, "Write back Xhci HS PDO value: %x to HS PDO register\n", HsPdo));(
  VOID
);

EFI_STATUS
EFIAPI
physically disable each port that was marked for disable(
  VOID
);

EFI_STATUS
EFIAPI
HS port needs to be disabled(
  VOID
);

EFI_STATUS
EFIAPI
(PortIndex < 12) {(
  VOID
);

EFI_STATUS
EFIAPI
SS port needs to be disabled(
  VOID
);

EFI_STATUS
EFIAPI
Script Support(
  VOID
);

EFI_STATUS
EFIAPI
SMM communication buffer for LockBox save(
  VOID
);

EFI_STATUS
EFIAPI
= &LocalBuffer[0];(
  VOID
);

EFI_STATUS
EFIAPI
the LockBox communication buffer:(
  VOID
);

EFI_STATUS
EFIAPI
(BufferPtr, &gBootScriptContextGuid, sizeof (EFI_GUID));(
  VOID
);

EFI_STATUS
EFIAPI
*((UINT64 *)&BufferPtr[24]) = (UINT64)-1;(
  VOID
);

EFI_STATUS
EFIAPI
*((UINT32 *)&BufferPtr[36]) = 48;    // Header size(
  VOID
);

EFI_STATUS
EFIAPI
LockBox communication buffer for SetAttributes command(
  VOID
);

EFI_STATUS
EFIAPI
version(
  VOID
);

EFI_STATUS
EFIAPI
size(
  VOID
);

EFI_STATUS
EFIAPI
CommSize = 64;(
  VOID
);

EFI_STATUS
EFIAPI
Boot Script Initialization(
  VOID
);

EFI_STATUS
EFIAPI
runtime memory page for the boot script table(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->AllocatePages (AllocateAnyPages, EfiRuntimeServicesData, 1, &PcdValue);(
  VOID
);

EFI_STATUS
EFIAPI
the PCD value for the boot script table address(
  VOID
);

EFI_STATUS
EFIAPI
(PcdBootScriptTableAddress, PcdValue);(
  VOID
);

EFI_STATUS
EFIAPI
that the boot script table is ready(
  VOID
);

EFI_STATUS
EFIAPI
= PcdValue;(
  VOID
);

EFI_STATUS
EFIAPI
notification for DxeSmmReadyToLock(
  VOID
);

EFI_STATUS
EFIAPI
((
  VOID
);

EFI_STATUS
EFIAPI
event notification(
  VOID
);

EFI_STATUS
EFIAPI
the boot script table(
  VOID
);

EFI_STATUS
EFIAPI
the current boot script data to LockBox(
  VOID
);

EFI_STATUS
EFIAPI
LockBox attributes(
  VOID
);

EFI_STATUS
EFIAPI
();(
  VOID
);

EFI_STATUS
EFIAPI
for subsequent boot script close events(
  VOID
);

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

EFI_STATUS
EFIAPI
close event callbacks for S3 resume paths(
  VOID
);

EFI_STATUS
EFIAPI
cleanup callbacks(
  VOID
);

EFI_STATUS
EFIAPI
the new table to the LockBox(
  VOID
);

EFI_STATUS
EFIAPI
the PCD to the locked value(
  VOID
);

EFI_STATUS
EFIAPI
(PcdBootScriptTableAddress, gBootScriptTable);(
  VOID
);

EFI_STATUS
EFIAPI
Segment Bus Table Setup(
  VOID
);

EFI_STATUS
EFIAPI
the number of PCIe segments from PCD(
  VOID
);

EFI_STATUS
EFIAPI
= GetPcdProtocolPtr ();(
  VOID
);

EFI_STATUS
EFIAPI
and initialize the bus table(
  VOID
);

EFI_STATUS
EFIAPI
= AllocateZeroPool (NumSegments);(
  VOID
);

EFI_STATUS
EFIAPI
the PCH-specific installation routine(
  VOID
);

EFI_STATUS
EFIAPI
config base(
  VOID
);

EFI_STATUS
EFIAPI
Express Base Address Initialization(
  VOID
);

EFI_STATUS
EFIAPI
Service Table and HOB List Discovery(
  VOID
);

EFI_STATUS
EFIAPI
Communication Protocol Discovery(
  VOID
);

EFI_STATUS
EFIAPI
Constructor-Style Init(
  VOID
);

EFI_STATUS
EFIAPI
UEFI core services(
  VOID
);

EFI_STATUS
EFIAPI
= ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
DXE services table and HOB list from configuration table(
  VOID
);

EFI_STATUS
EFIAPI
Driver Initialization(
  VOID
);

EFI_STATUS
EFIAPI
(ImageHandle, SystemTable);(
  VOID
);

EFI_STATUS
EFIAPI
driver uses the simpler callback registration model.(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->LocateProtocol ((
  VOID
);

EFI_STATUS
EFIAPI
protocol may not be available yet; we try again in callbacks.(
  VOID
);

EFI_STATUS
EFIAPI
= NULL;(
  VOID
);

EFI_STATUS
EFIAPI
= GetPchStepping ();(
  VOID
);

EFI_STATUS
EFIAPI
used to enable write-combining for PCIe MMIO range(
  VOID
);

EFI_STATUS
EFIAPI
PCIe ECAM (enhanced configuration access mechanism)(
  VOID
);

EFI_STATUS
EFIAPI
(PcdGet16 (PcdPciExpressBaseAddress), 0x500);(
  VOID
);

EFI_STATUS
EFIAPI
= (GetPchSku () == 2);(
  VOID
);

EFI_STATUS
EFIAPI
(((TimeoutValue + 357 - IoRead32 (PcdGet16 (PcdAcpiBaseAddress))) & 0x800000) == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
(IsPchLp) {(
  VOID
);

EFI_STATUS
EFIAPI
= InitBootScriptTable (&gBootScriptTable);(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->CreateEvent ((
  VOID
);

EFI_STATUS
EFIAPI
Entry Point(
  VOID
);

EFI_STATUS
EFIAPI
the main initialization routine(
  VOID
);

EFI_STATUS
EFIAPI
= SBDxeInitialize (ImageHandle, SystemTable);(
  VOID
);

EFI_STATUS
EFIAPI
/ Debug Helpers(
  VOID
);

EFI_STATUS
EFIAPI
Express MMIO Read/Write Helpers (used for chipset access)(
  VOID
);

EFI_STATUS
EFIAPI
Port Helpers(
  VOID
);

EFI_STATUS
EFIAPI
aligned copy for speed when possible.(
  VOID
);

EFI_STATUS
EFIAPI
back to byte copy for tail bytes.(
  VOID
);

EFI_STATUS
EFIAPI
((Src < Dest) && ((UINT8 *)Src + Count - 1 >= (UINT8 *)Dest)) {(
  VOID
);

EFI_STATUS
EFIAPI
(Dest, Src, Count);(
  VOID
);

#endif /* __SBDXE_H__ */