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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __TPMSMBIOSDXE_H__
#define __TPMSMBIOSDXE_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
TpmDxeTcgCallback(
  VOID
);

EFI_STATUS
EFIAPI
TpmDxeTrEECallback(
  VOID
);

EFI_STATUS
EFIAPI
CpuPause(
  VOID
);

EFI_STATUS
EFIAPI
ReadTsc(
  VOID
);

EFI_STATUS
EFIAPI
EnableInterrupts(
  VOID
);

EFI_STATUS
EFIAPI
DisableInterrupts(
  VOID
);

EFI_STATUS
EFIAPI
ReadEflags(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
AsciiStrLen(
  VOID
);

EFI_STATUS
EFIAPI
IoWrite16(
  VOID
);

EFI_STATUS
EFIAPI
IoRead32(
  VOID
);

EFI_STATUS
EFIAPI
PciExpressBaseAddress(
  VOID
);

EFI_STATUS
EFIAPI
CompareGuid(
  VOID
);

EFI_STATUS
EFIAPI
IsTpm20(
  VOID
);

EFI_STATUS
EFIAPI
Tpm2GetCapability(
  VOID
);

EFI_STATUS
EFIAPI
TpmSmbiosPopulate(
  VOID
);

EFI_STATUS
EFIAPI
GetTpmSupportHobData(
  VOID
);

EFI_STATUS
EFIAPI
InternalFreePool(
  VOID
);

EFI_STATUS
EFIAPI
DebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
DebugAssert(
  VOID
);

EFI_STATUS
EFIAPI
InitializeTpmSmbios(
  VOID
);

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
TpmSmbiosDxeEntry(
  VOID
);

EFI_STATUS
EFIAPI
Definitions(
  VOID
);

EFI_STATUS
EFIAPI
gEfiSmbiosProtocolGuid    = { 0x0B30D3F9, 0xD8F0, 0x432A, { 0x90, 0x1C, 0x29, 0xC7, 0x41, 0x06, 0xA6, 0xE8 } };(
  VOID
);

EFI_STATUS
EFIAPI
from UEFI Boot/Runtime Services Table Library(
  VOID
);

EFI_STATUS
EFIAPI
gImageHandle = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
Global Variables (mapped from .data section)(
  VOID
);

EFI_STATUS
EFIAPI
should be renamed as understanding of their purpose improves.(
  VOID
);

EFI_STATUS
EFIAPI
ImageHandle passed to the driver entry point (saved for later use).(
  VOID
);

EFI_STATUS
EFIAPI
SystemTable pointer (saved for module-internal use).(
  VOID
);

EFI_STATUS
EFIAPI
BootServices pointer (extracted from SystemTable).(
  VOID
);

EFI_STATUS
EFIAPI
RuntimeServices pointer (extracted from SystemTable).(
  VOID
);

EFI_STATUS
EFIAPI
Vendor ID (from TPM capabilities).(
  VOID
);

EFI_STATUS
EFIAPI
Specification Version: Major (LO byte), Minor (HI byte).(
  VOID
);

EFI_STATUS
EFIAPI
Firmware Version 1.(
  VOID
);

EFI_STATUS
EFIAPI
Firmware Version 2.(
  VOID
);

EFI_STATUS
EFIAPI
Characteristics flags (bitfield).(
  VOID
);

EFI_STATUS
EFIAPI
value.(
  VOID
);

EFI_STATUS
EFIAPI
2.0 vendor string length.(
  VOID
);

EFI_STATUS
EFIAPI
Vendor ID to Name Lookup Table(
  VOID
);

EFI_STATUS
EFIAPI
by 12-byte entries: VendorId (UINT32), NamePointer (CHAR8*)(
  VOID
);

EFI_STATUS
EFIAPI
VendorIdMap[17] = {(
  VOID
);

EFI_STATUS
EFIAPI
{ 0x49465820, "Infineon"   },  // 0x2C98: 0x49465820 (IFX\0)(
  VOID
);

EFI_STATUS
EFIAPI
{ 0x534C4230, "SLB0"       },  // 0x2CBC(
  VOID
);

EFI_STATUS
EFIAPI
{ 0x53545320, "STM"        },  // 0x2CD4: 0x53545320 (STS\0)(
  VOID
);

EFI_STATUS
EFIAPI
{ 0x57454320, "WEC"        },  // 0x2CEC: 0x57454320 (WEC\0)(
  VOID
);

EFI_STATUS
EFIAPI
(duplicate)(
  VOID
);

EFI_STATUS
EFIAPI
{ 0x4D534654, "MSFT"       },  // 0x2D1C(
  VOID
);

EFI_STATUS
EFIAPI
{ 0x4E544300, "NTC"        },  // 0x2D34 (duplicate)(
  VOID
);

EFI_STATUS
EFIAPI
Device ID comparison table (address 0x2D50).(
  VOID
);

EFI_STATUS
EFIAPI
by IsTpm20() to compare device IDs at FED40000.(
  VOID
);

EFI_STATUS
EFIAPI
qword_2D50[3];(
  VOID
);

EFI_STATUS
EFIAPI
protocol pointer (queried via gBS->LocateProtocol).(
  VOID
);

EFI_STATUS
EFIAPI
qword_2D60 = 0;(
  VOID
);

EFI_STATUS
EFIAPI
protocol pointer.(
  VOID
);

EFI_STATUS
EFIAPI
qword_2D68 = 0;(
  VOID
);

EFI_STATUS
EFIAPI
qword_2D70 = 0;(
  VOID
);

EFI_STATUS
EFIAPI
support HOB data pointer (retrieved from HOB list).(
  VOID
);

EFI_STATUS
EFIAPI
qword_2D78 = 0;(
  VOID
);

EFI_STATUS
EFIAPI
library output protocol (for DebugPrint/DebugAssert).(
  VOID
);

EFI_STATUS
EFIAPI
qword_2DA0 = 0;(
  VOID
);

EFI_STATUS
EFIAPI
qword_2DA8 = 0;(
  VOID
);

EFI_STATUS
EFIAPI
list pointer.(
  VOID
);

EFI_STATUS
EFIAPI
qword_2DB0 = 0;(
  VOID
);

EFI_STATUS
EFIAPI
Express memory-mapped base address.(
  VOID
);

EFI_STATUS
EFIAPI
qword_2DB8 = 0;(
  VOID
);

EFI_STATUS
EFIAPI
2.0 GET_CAPABILITY response buffer at 0x2DD0.(
  VOID
);

EFI_STATUS
EFIAPI
qword_2DD0[2];(
  VOID
);

EFI_STATUS
EFIAPI
GET_CAPABILITY response buffer at 0x2EF0.(
  VOID
);

EFI_STATUS
EFIAPI
qword_2EF0[2];(
  VOID
);

EFI_STATUS
EFIAPI
notification callback context.(
  VOID
);

EFI_STATUS
EFIAPI
qword_2FF0[2];(
  VOID
);

EFI_STATUS
EFIAPI
1.2 GET_CAPABILITY response buffer at 0x3000.(
  VOID
);

EFI_STATUS
EFIAPI
unk_3000[26];(
  VOID
);

EFI_STATUS
EFIAPI
registration keys (for gBS->RegisterProtocolNotify).(
  VOID
);

EFI_STATUS
EFIAPI
unk_3100[2];  // TrEE registration(
  VOID
);

EFI_STATUS
EFIAPI
registration(
  VOID
);

EFI_STATUS
EFIAPI
n25 = 25;(
  VOID
);

EFI_STATUS
EFIAPI
used as TPM2 firmware version indicator(
  VOID
);

EFI_STATUS
EFIAPI
n513 = 513;(
  VOID
);

EFI_STATUS
EFIAPI
declaration of local helpers(
  VOID
);

EFI_STATUS
EFIAPI
operation wrappers(
  VOID
);

EFI_STATUS
EFIAPI
= &Source[Length - 1];(
  VOID
);

EFI_STATUS
EFIAPI
= Length;(
  VOID
);

EFI_STATUS
EFIAPI
the buffer in aligned 8-byte chunks, then the remainder(
  VOID
);

EFI_STATUS
EFIAPI
(Buffer, 0, 8 * (Length >> 3));(
  VOID
);

EFI_STATUS
EFIAPI
read / string length helpers(
  VOID
);

EFI_STATUS
EFIAPI
wrapper(
  VOID
);

EFI_STATUS
EFIAPI
list and TPM support HOB retrieval(
  VOID
);

EFI_STATUS
EFIAPI
HOB retrieval (raw HOB walk)(
  VOID
);

EFI_STATUS
EFIAPI
the HOB list from the end(
  VOID
);

EFI_STATUS
EFIAPI
= (UINTN)HobStart;(
  VOID
);

/// walk the HOB data entries
EFI_STATUS
EFIAPI
matching GUID(
  VOID
);

EFI_STATUS
EFIAPI
= *(INT16 **)(HobPtr + 16);(
  VOID
);

EFI_STATUS
EFIAPI
1.2 / 2.0 detection(
  VOID
);

EFI_STATUS
EFIAPI
capability retrieval(
  VOID
);

EFI_STATUS
EFIAPI
the TPM2_GET_CAPABILITY command buffer(
  VOID
);

EFI_STATUS
EFIAPI
(big-endian TPM_ST_NO_SESSIONS needs byte swap)(
  VOID
);

EFI_STATUS
EFIAPI
MSW(
  VOID
);

EFI_STATUS
EFIAPI
LSW(
  VOID
);

EFI_STATUS
EFIAPI
count = 1(
  VOID
);

EFI_STATUS
EFIAPI
the command via the TCG protocol's HashLogExtendEvent(
  VOID
);

EFI_STATUS
EFIAPI
similar submit-to-tpm interface(
  VOID
);

EFI_STATUS
EFIAPI
= ((EFI_TCG_PROTOCOL *)TpmProtocol)->SubmitCommand ((
  VOID
);

EFI_STATUS
EFIAPI
= ((UINT32)((UINT16)__ROL2__((UINT16)(qword_3010 >> 16), 8) |(
  VOID
);

EFI_STATUS
EFIAPI
TPM info to output structure(
  VOID
);

EFI_STATUS
EFIAPI
(TpmInfo, &unk_3000, sizeof (unk_3000));(
  VOID
);

EFI_STATUS
EFIAPI
= ((UINT32)((UINT16)__ROL2__((UINT16)(qword_2DE0 >> 16), 8) |(
  VOID
);

EFI_STATUS
EFIAPI
(TpmInfo, &qword_2DD0, sizeof (unk_3000));(
  VOID
);

EFI_STATUS
EFIAPI
callback processing(
  VOID
);

EFI_STATUS
EFIAPI
the TCG protocol if not already found(
  VOID
);

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

EFI_STATUS
EFIAPI
TPM capability info (route to TPM 1.2 or 2.0 path)(
  VOID
);

EFI_STATUS
EFIAPI
(IsTpm20 ()) {(
  VOID
);

EFI_STATUS
EFIAPI
vendor ID and firmware version from capability response(
  VOID
);

EFI_STATUS
EFIAPI
= *(UINT64 *)&TpmInfoBuf;(
  VOID
);

EFI_STATUS
EFIAPI
vendor ID is nonzero, populate TPM data(
  VOID
);

EFI_STATUS
EFIAPI
(!(VendorId >> 48)) {(
  VOID
);

EFI_STATUS
EFIAPI
with raw(
  VOID
);

EFI_STATUS
EFIAPI
configuration type based on PCD settings(
  VOID
);

EFI_STATUS
EFIAPI
PCD for platform-specific configuration flags(
  VOID
);

EFI_STATUS
EFIAPI
= (void *)GetPcdProtocol ();(
  VOID
);

EFI_STATUS
EFIAPI
} else if (((EFI_PCD_PROTOCOL *)TcgProtocol)->Get8 (215)) {(
  VOID
);

EFI_STATUS
EFIAPI
} else {(
  VOID
);

EFI_STATUS
EFIAPI
}(
  VOID
);

EFI_STATUS
EFIAPI
TCG protocol structure(
  VOID
);

EFI_STATUS
EFIAPI
= 25;(
  VOID
);

EFI_STATUS
EFIAPI
TrEE protocol(
  VOID
);

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

EFI_STATUS
EFIAPI
another protocol (SMBIOS?)(
  VOID
);

EFI_STATUS
EFIAPI
= ((EFI_BOOT_SERVICES *)qword_2D88)->LocateProtocol ((
  VOID
);

EFI_STATUS
EFIAPI
TPM support HOB data(
  VOID
);

EFI_STATUS
EFIAPI
= GetTpmSupportHobData ();(
  VOID
);

EFI_STATUS
EFIAPI
TPM capability (capability size = 28 bytes at offset 0)(
  VOID
);

EFI_STATUS
EFIAPI
global TPM variables(
  VOID
);

EFI_STATUS
EFIAPI
= *(UINT32 *)(TpmInfoBuf.Tpm12Data + 22);(
  VOID
);

EFI_STATUS
EFIAPI
configuration type from PCD(
  VOID
);

EFI_STATUS
EFIAPI
= (VOID *)GetPcdProtocol ();(
  VOID
);

EFI_STATUS
EFIAPI
} else if (((EFI_PCD_PROTOCOL *)PcdProtocol)->Get8 (215)) {(
  VOID
);

EFI_STATUS
EFIAPI
TPM 1.2/2.0 flag(
  VOID
);

EFI_STATUS
EFIAPI
TrEE protocol structure(
  VOID
);

EFI_STATUS
EFIAPI
SMBIOS table population(
  VOID
);

EFI_STATUS
EFIAPI
caller of progress(
  VOID
);

EFI_STATUS
EFIAPI
(SmbiosHandle != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
SMBIOS protocol(
  VOID
);

EFI_STATUS
EFIAPI
= (EFI_SMBIOS_PROTOCOL *)qword_2D60;(
  VOID
);

EFI_STATUS
EFIAPI
proceed for SMBIOS 3.x and later(
  VOID
);

EFI_STATUS
EFIAPI
(((EFI_SMBIOS_PROTOCOL *)SmbiosProtocol)->MajorVersion <= 3 &&(
  VOID
);

EFI_STATUS
EFIAPI
existing SMBIOS records for an existing TPM record (type 43)(
  VOID
);

EFI_STATUS
EFIAPI
= (EFI_SMBIOS_HANDLE)(-2);(
  VOID
);

EFI_STATUS
EFIAPI
existing TPM record(
  VOID
);

EFI_STATUS
EFIAPI
= SmbiosProtocol->Remove (SmbiosProtocol, SmbiosHandle2);(
  VOID
);

EFI_STATUS
EFIAPI
PCD settings for TPM characteristics(
  VOID
);

EFI_STATUS
EFIAPI
TPM version string(
  VOID
);

EFI_STATUS
EFIAPI
= "HON HAI";(
  VOID
);

EFI_STATUS
EFIAPI
string length from capability(
  VOID
);

EFI_STATUS
EFIAPI
string lengths(
  VOID
);

EFI_STATUS
EFIAPI
= AsciiStrLen (TpmVersionStr);(
  VOID
);

EFI_STATUS
EFIAPI
up vendor name from vendor ID(
  VOID
);

EFI_STATUS
EFIAPI
= VendorIdStr;(
  VOID
);

EFI_STATUS
EFIAPI
and zero the table buffer(
  VOID
);

EFI_STATUS
EFIAPI
= InternalAllocatePool (EfiBootServicesData, FinalSize + 2);(
  VOID
);

EFI_STATUS
EFIAPI
TPM device info into the buffer(
  VOID
);

EFI_STATUS
EFIAPI
(FinalTable, "TPM 2.0", byte_2C61);(
  VOID
);

EFI_STATUS
EFIAPI
the SMBIOS record(
  VOID
);

EFI_STATUS
EFIAPI
the allocated buffer(
  VOID
);

EFI_STATUS
EFIAPI
(FinalTable);(
  VOID
);

EFI_STATUS
EFIAPI
support HOB data retrieval(
  VOID
);

EFI_STATUS
EFIAPI
GUID HOB entries from SystemTable(
  VOID
);

EFI_STATUS
EFIAPI
= (UINT8 *)GetTpmSupportHob ((
  VOID
);

EFI_STATUS
EFIAPI
protocol access(
  VOID
);

EFI_STATUS
EFIAPI
allocation helpers(
  VOID
);

EFI_STATUS
EFIAPI
output helpers(
  VOID
);

EFI_STATUS
EFIAPI
debug level from CMOS(
  VOID
);

EFI_STATUS
EFIAPI
(0x70, (__inbyte (0x70) & 0x80) | 0x4B);(
  VOID
);

EFI_STATUS
EFIAPI
error level(
  VOID
);

EFI_STATUS
EFIAPI
(DebugLevel == 1) {(
  VOID
);

EFI_STATUS
EFIAPI
boot/runtime services initialization(
  VOID
);

EFI_STATUS
EFIAPI
globals(
  VOID
);

EFI_STATUS
EFIAPI
= ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
HOB list(
  VOID
);

EFI_STATUS
EFIAPI
();(
  VOID
);

EFI_STATUS
EFIAPI
PCI Express base address from PCD(
  VOID
);

EFI_STATUS
EFIAPI
= (UINTN)((EFI_PCD_PROTOCOL *)GetPcdProtocol ())->Get32 (5);(
  VOID
);

EFI_STATUS
EFIAPI
PCI express is enabled, enable memory-mapped I/O(
  VOID
);

EFI_STATUS
EFIAPI
((INT8)PciExpressBaseAddress (1024068) >= 0) {(
  VOID
);

EFI_STATUS
EFIAPI
interrupt state, disable interrupts, and perform TSC delay(
  VOID
);

EFI_STATUS
EFIAPI
= (ReadEflags () & 0x200) != 0;(
  VOID
);

EFI_STATUS
EFIAPI
for approximately 357 TSC ticks (short delay loop)(
  VOID
);

EFI_STATUS
EFIAPI
= (StartTsc + 357) & 0x800000;(
  VOID
);

EFI_STATUS
EFIAPI
interrupt state(
  VOID
);

EFI_STATUS
EFIAPI
(InterruptsWereEnabled) {(
  VOID
);

EFI_STATUS
EFIAPI
entry point(
  VOID
);

EFI_STATUS
EFIAPI
ImageHandle for callback use(
  VOID
);

EFI_STATUS
EFIAPI
= (UINTN)ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
(gBS->LocateProtocol (&gEfiTrEEProtocolGuid, NULL, &qword_2D68) != EFI_SUCCESS) {(
  VOID
);

EFI_STATUS
EFIAPI
(gBS->LocateProtocol (&gEfiTcgProtocolGuid, NULL, &qword_2D70) != EFI_SUCCESS) {(
  VOID
);

#endif /* __TPMSMBIOSDXE_H__ */