@Ajax Dong Ajax Dong authored 2 days ago
117828F1-DA7D-4BC1-8B58-9A954FED5121 Init 2 days ago
217828C1-DA75-5BC1-7B58-91954FED0101 Init 2 days ago
224D6EB4-307F-45BA-9DC3-FE9FC6B38148 Init 2 days ago
4A43824B-4AA0-4F7F-9A4B-0C2102191361 Init 2 days ago
5038E34E-0774-47A0-A5EF-4B94AF1A43DA Init 2 days ago
5038F34E-0774-47A0-A5EF-4B94AF1A43DA Init 2 days ago
794E15D9-BF1B-4568-99AC-DCE207C022E4 Init 2 days ago
AMITSE Init 2 days ago
AcpiPlatform Init 2 days ago
AcpiVTD Init 2 days ago
AhciSmm Init 2 days ago
Aint13 Init 2 days ago
AmiCRBPkg Restructure the repo 2 days ago
AmiChipsetModulePkg/Library/AmiCspLib/ PciTableInit Restructure the repo 2 days ago
AmiCompatibilityPkg Restructure the repo 2 days ago
AmiCryptoPkg Restructure the repo 2 days ago
AmiErrorHandlerMain Init 2 days ago
AmiIntelCpuPkg/Microcode/ MicrocodeUpdate Restructure the repo 2 days ago
AmiIpmiPkg/ Ipmi Restructure the repo 2 days ago
AmiModulePkg Restructure the repo 2 days ago
AmiNetworkPkg Restructure the repo 2 days ago
AmiRedFishApi Init 2 days ago
AmiTcgNvflagSample Init 2 days ago
BmcLanConfig Init 2 days ago
BmcRequestNmi Restructure the repo 2 days ago
BootScriptExecutorDxe Init 2 days ago
Build Restructure the repo 2 days ago
C9352CC3-A354-44E5-8776-B2ED8DD781EC Init 2 days ago
CRBSmm Init 2 days ago
CapsulePei Init 2 days ago
CapsuleRuntimeDxe Init 2 days ago
ConSplitter Init 2 days ago
CpPlatPkg/ Whea Restructure the repo 2 days ago
CpRcPkg Restructure the repo 2 days ago
CpuArchDxe Init 2 days ago
CpuIo2Smm Init 2 days ago
CpuIoPei Init 2 days ago
CryptoPPI Init 2 days ago
CsmDxe Init 2 days ago
CsmVideo Init 2 days ago
DdrtErrorHandler Init 2 days ago
DefaultData Init 2 days ago
DevicePathDxe Init 2 days ago
DxeFrb Init 2 days ago
DxeIpl Init 2 days ago
DxeIpmiLan Init 2 days ago
DxeIpmiUsb Init 2 days ago
DxeSelStatusCode Init 2 days ago
EarlyVideoPei Init 2 days ago
EmcaErrorLog Init 2 days ago
F0E9D620-3E9F-4F6B-8F26-6214FEAB6690 Init 2 days ago
Fat Init 2 days ago
FlashDriverSmm Init 2 days ago
FpgaSocketSetup Init 2 days ago
FpkSetup Restructure the repo 2 days ago
FullShell Init 2 days ago
FwKeyHobPei Init 2 days ago
GetCpuInfo Init 2 days ago
GpioInit Init 2 days ago
GraphicsConsole Init 2 days ago
HeciInit Init 2 days ago
HeciInitDxe Init 2 days ago
HiiInfoEmbedded Init 2 days ago
HttpBootDxe Init 2 days ago
HttpUtilitiesDxe Init 2 days ago
IioCfgUpdateDxeCLX64L Init 2 days ago
IioCfgUpdateDxeLightningRidgeEXECB3 Init 2 days ago
IioCfgUpdateDxeLightningRidgeEXECB4 Init 2 days ago
IioCfgUpdateDxeNeonCityEPECB Init 2 days ago
IioCfgUpdateDxeNeonCityEPRP Init 2 days ago
IntelFrameworkModulePkg/Universal/CpuIoDxe/ CpuIoDxe Restructure the repo 2 days ago
InventoryApp Init 2 days ago
Ip6BmcLanConfig Init 2 days ago
IsPlatformSupportWhea Init 2 days ago
JedecNvDimmSMM Init 2 days ago
LegacyInterrupt Init 2 days ago
LegacySmmSredir Restructure the repo 2 days ago
LenovoServerPkg Restructure the repo 2 days ago
LnvDriverPei Init 2 days ago
LnvDriverSmm Init 2 days ago
LnvPurleyDriverPei Init 2 days ago
LnvPurleyDriverSmm Init 2 days ago
MainErrorHandler Restructure the repo 2 days ago
MdeModulePkg Restructure the repo 2 days ago
MdePkg/ Library Restructure the repo 2 days ago
MeInitPei Init 2 days ago
MePolicyInitDxe Init 2 days ago
MemRas Init 2 days ago
MemorySubClass Init 2 days ago
NvdimmCommon Init 2 days ago
NvramSm/ mm Init 2 days ago
OemErrorLogDxe Init 2 days ago
OemPlatformEarlyPhasePei Init 2 days ago
OemReadyToBootDxe Init 2 days ago
OemSaveSmbiosDxe Init 2 days ago
Ofbd Restructure the repo 2 days ago
OpaPlatCfg Init 2 days ago
OpromUpdateDxeCLX64L Init 2 days ago
OpromUpdateDxeLightningRidgeEXECB1 Init 2 days ago
OpromUpdateDxeLightningRidgeEXECB2 Init 2 days ago
OpromUpdateDxeLightningRidgeEXECB4 Init 2 days ago
OpromUpdateDxeNeonCityEPECB Init 2 days ago
OpromUpdateDxeNeonCityEPRP Init 2 days ago
POSTDataTransfer Init 2 days ago
PartialMirrorHandler Init 2 days ago
PcAtChipsetPkg/PcatRealTimeClockSmm/ PcatRealTimeClockSmm Restructure the repo 2 days ago
PcRtc Init 2 days ago
PchGpioUnlockSmm Init 2 days ago
PchInitDxe Init 2 days ago
PchSerialGpio Init 2 days ago
PchSmbusDxe Init 2 days ago
PciDxeInit Init 2 days ago
PciOutOfResourceSetupPage Init 2 days ago
PciPlatform Init 2 days ago
PcieErrorHandler Init 2 days ago
PerfMonApp Init 2 days ago
PerformanceMeasurementSmm Init 2 days ago
PlatformCpuPolicy Init 2 days ago
PlatformEarlyDxe Restructure the repo 2 days ago
PlatformErrorHandler Restructure the repo 2 days ago
PlatformType Restructure the repo 2 days ago
PpmInitialize Init 2 days ago
PurleyPlatPkg Restructure the repo 2 days ago
PurleyRpPkg Restructure the repo 2 days ago
PurleySktPkg Restructure the repo 2 days ago
RamDiskDxe Init 2 days ago
ReFlashSmm Restructure the repo 2 days ago
RegAccessDxe Init 2 days ago
RegAccessSMM Init 2 days ago
RuntimeDxe Init 2 days ago
RuntimeMemoryHole Restructure the repo 2 days ago
S3NvramSave Init 2 days ago
S3SaveStateDxe Init 2 days ago
SBDXE Init 2 days ago
SaInitPei Init 2 days ago
SataController Init 2 days ago
ScsiBus Init 2 days ago
ScsiDisk Init 2 days ago
SecFlashUpdDXE Init 2 days ago
SecSMIFlash Restructure the repo 2 days ago
SecVariableControl Init 2 days ago
SecureBootDXE Init 2 days ago
SecurityStubDxe Init 2 days ago
SerialMuxControl Init 2 days ago
ServerCommonPkg/Universal/ GetSec Restructure the repo 2 days ago
ServerMgmtSetup Init 2 days ago
Setup Init 2 days ago
SetupConfigUpdateDxeCLX64L Init 2 days ago
SetupConfigUpdateDxeLightningRidgeEXECB1 Init 2 days ago
SetupConfigUpdateDxeLightningRidgeEXECB4 Init 2 days ago
SetupConfigUpdateDxeLightningRidgeEXRP Init 2 days ago
SetupConfigUpdateDxeNeonCityEPECB Init 2 days ago
SetupConfigUpdateDxeNeonCityEPRP Init 2 days ago
SetupConfigUpdateDxeNeonCityFPGA Init 2 days ago
SioDxeInit Init 2 days ago
SlotDataUpdateDxeLightningRidgeEXECB1 Init 2 days ago
SlotDataUpdateDxeLightningRidgeEXECB2 Init 2 days ago
SlotDataUpdateDxeLightningRidgeEXECB3 Init 2 days ago
SlotDataUpdateDxeLightningRidgeEXECB4 Init 2 days ago
SlotDataUpdateDxeLightningRidgeEXRP Init 2 days ago
SlotDataUpdateDxeNeonCityEPECB Init 2 days ago
SlotDataUpdateDxeNeonCityEPRP Init 2 days ago
SlotDataUpdateDxeNeonCityFPGA Init 2 days ago
SmartTimer Init 2 days ago
SmbiosDataUpdateDxeLightningRidgeEXECB2 Init 2 days ago
SmbiosDataUpdateDxeLightningRidgeEXECB3 Init 2 days ago
SmbiosDataUpdateDxeLightningRidgeEXECB4 Init 2 days ago
SmbiosDataUpdateDxeNeonCityEPECB Init 2 days ago
SmbiosDmiEdit Init 2 days ago
SmbiosRpTable Init 2 days ago
SmbiosType39 Init 2 days ago
SmiFlash Restructure the repo 2 days ago
SmiFlashDxe Init 2 days ago
SmmControl Init 2 days ago
SmmHddSecurity Init 2 days ago
SmmLockBox Init 2 days ago
SmmS3SaveState Init 2 days ago
SmmTcgStorageSec Init 2 days ago
SocketSetup Init 2 days ago
SpsAcpiHooks Init 2 days ago
SpsDxe Init 2 days ago
StaticSkuDataDxeCLX64L Init 2 days ago
StaticSkuDataDxeLightningRidgeEXECB1 Init 2 days ago
StaticSkuDataDxeLightningRidgeEXECB3 Init 2 days ago
StaticSkuDataDxeLightningRidgeEXECB4 Init 2 days ago
StaticSkuDataDxeLightningRidgeEXRP Init 2 days ago
StaticSkuDataDxeNeonCityEPECB Init 2 days ago
StaticSkuDataDxeNeonCityEPRP Init 2 days ago
StatusCodeSmm Init 2 days ago
SystemBoardDxe Init 2 days ago
TCMDXE Init 2 days ago
TCMPEI Init 2 days ago
TcgDxe Init 2 days ago
TcgDxeplatform Init 2 days ago
TcgLegacy Init 2 days ago
TcgPeiplatform Init 2 days ago
TcgPlatformSetupPolicy Init 2 days ago
TcgSmm Restructure the repo 2 days ago
TcgStorageSecurity Init 2 days ago
TcoSmi Restructure the repo 2 days ago
TcpDxe Init 2 days ago
TerminalSrc Init 2 days ago
TimestampDxe Init 2 days ago
TlsAuthConfigDxe Init 2 days ago
Tpm20Acpi Init 2 days ago
TpmClearOnRollbackSmm Restructure the repo 2 days ago
TpmNvmeSupport Init 2 days ago
UbaConfigDatabasePei Init 2 days ago
UbaMainPeim Init 2 days ago
Udp4Dxe Init 2 days ago
Udp6Dxe Init 2 days ago
UefiCpuPkg Restructure the repo 2 days ago
UefiPxeBcDxe Init 2 days ago
Uhcd Init 2 days ago
UsbOcUpdateDxeCLX64L Init 2 days ago
UsbOcUpdateDxeLightningRidgeEXECB1 Init 2 days ago
UsbOcUpdateDxeLightningRidgeEXECB3 Init 2 days ago
UsbOcUpdateDxeLightningRidgeEXRP Init 2 days ago
UsbOcUpdateDxeNeonCityEPECB Init 2 days ago
UsbOcUpdateDxeNeonCityEPRP Init 2 days ago
UsbOcUpdateDxeNeonCityFPGA Init 2 days ago
UsbRtSmm Init 2 days ago
VerifyFwBootGuard Restructure the repo 2 days ago
WatchdogTimer Init 2 days ago
WheaErrorInj Restructure the repo 2 days ago
WheaErrorLog Restructure the repo 2 days ago
docs Init 2 days ago
tools Init 2 days ago
uefi_headers Init 2 days ago
README.md Init 2 days ago
SystemInventory_funcs.json Init 2 days ago
SystemInventory_funcs_full.json Init 2 days ago
README.md

Decompiled AMI UEFI BIOS Source

This tree is a cleaned extraction of Lenovo HR650X / Intel Purley AMI UEFI BIOS
modules. It is not a normal vendor source checkout: most directories are
recovered firmware modules with decompiled C, reconstructed headers, IDA
metadata, and analyst-written notes.

Repository Layout

The top level is intentionally flat. Each module directory usually contains:

Artifact Meaning
<Module>.c Decompiled implementation, often with synthetic names such as sub_1234.
<Module>.h Reconstructed types, globals, GUIDs, structures, and prototypes.
<Module>.md Module-specific notes or decompiler output notes.
README.md Human summary of phase, purpose, key functions, dependencies, and platform context.
*.i64, *.idb, *.id0, *.id1, *.id2, *.nam, *.til IDA database artifacts. Keep these with the module that generated them.
*.json, *.csv, *.txt Function inventories, manifests, or analysis sidecars.

Common UEFI phase and role markers in directory names:

  • Pei / PEI: Pre-EFI Initialization modules.
  • Dxe / DXE: Driver Execution Environment modules.
  • Smm / SMM: System Management Mode modules.
  • Ppi: PEI-to-PEI interfaces.
  • Setup, Sku, Slot, Oprom, UsbOc, IioCfg, SmbiosDataUpdate: board,
    SKU, setup-page, option-ROM, or platform-configuration update modules.
  • GUID-named directories: modules where the original symbolic name was missing
    or less useful than the firmware GUID during extraction.

Important anchor modules include:

  • DxeCore/: DXE foundation, protocol database, dispatcher, memory services,
    event services, image loading, and firmware volume access.
  • PeiCore/ and DxeIpl/: early boot core and transition into DXE.
  • PiSmmCore/, PiSmmIpl/, and PiSmmCpuDxeSmm/: SMM infrastructure.
  • Setup/, AMITSE/, ServerMgmtSetup/, and related SetupConfigUpdate*
    modules: setup UI and setup-variable handling.
  • Platform*, Lnv*, SystemBoard*, Oem*, and Sps*: platform and vendor
    integration layers.
  • Tcg*, Tpm*, SecureBootDXE/, and BootGuardPei/: measured boot,
    TPM, secure boot, and Boot Guard related code.
  • Ip*, TcpDxe/, Udp*, Dhcp*, Http*, Tls*, MnpDxe/, SnpDxe/:
    UEFI network stack modules.

Safe Cleanup Workflow

Treat module source as reverse-engineering evidence. Prefer small, reversible
readability improvements and keep provenance visible.

  1. Read the module README.md, <Module>.md, and any sidecar inventories
    before editing code.
  2. Preserve decompiler evidence: do not delete original synthetic symbols,
    magic constants, GUIDs, comments, IDA databases, or extraction manifests
    unless there is a separately recorded replacement.
  3. Rename symbols only when the behavior is supported by local call sites,
    GUID/protocol references, strings, or known EDK II/AMI conventions.
  4. Keep phase boundaries clear. PEI, DXE, SMM, runtime, setup, and option-ROM
    modules often share names but have different execution contexts.
  5. Favor comments that explain firmware intent, protocol contracts, structure
    layouts, and side effects. Avoid comments that merely restate a line of C.
  6. For formatting, review diffs carefully. Decompiled C can contain unusual
    control flow, casts, volatile MMIO, and ABI-sensitive structures.
  7. Do not run broad automated rewrites across the tree. Work module-by-module
    and keep each diff auditable.

Readability Checklist

  • Module README has phase, purpose, platform, key functions, protocols, and
    externally visible variables or GUIDs.
  • Function names distinguish entry points, dispatch callbacks, protocol
    methods, helper routines, and error paths.
  • Header types are grouped by GUID/protocol, HOB, variable, MMIO/register, and
    local state structures.
  • Recovered constants are named after nearby strings, register fields, setup
    variables, or protocol fields when the evidence is clear.
  • Notes call out uncertainty explicitly, especially when behavior is inferred
    from partial decompilation.

Helper Tooling

Run the read-only tree audit from the repository root:

python3 tools/bios_tree_audit.py

The audit prints module counts, artifact counts, phase-name buckets, and modules
that are missing common sidecar files. It does not modify the tree.

Recover original source-layout hints from debug/assert/PDB/source paths:

python3 tools/recover_original_layout.py \
  --json-out docs/original_layout_evidence.json \
  --markdown-out docs/original_layout_recovery.md

The recovery report groups flat extracted modules by the best package paths
visible in DEBUG_VS2015, AutoGen.c, PDB, and source-file evidence. Use it
to guide module-by-module cleanup before attempting any physical tree moves.