# Subsystem Behaviour Map

This map groups the recovered BIOS modules by externally visible behaviour. It
is intended as a navigation aid for analysis, not as a claim that every module
in the firmware has been fully reconstructed.

## Boot Core and Dispatch

| Behaviour | Evidence |
| --- | --- |
| PEI dispatcher, PEI services, PPI database, HOB creation, memory init | `MdeModulePkg/Core/Pei/PeiMain/PeiCore/README.md` |
| PEI-to-DXE transfer, DXE Core discovery, LZMA decompression, x64 page tables | `MdeModulePkg/Core/DxeIplPeim/README.md` |
| DXE services, protocol/handle database, memory, image loading, event/timer, dispatcher | `MdeModulePkg/Core/Dxe/SectionExtraction/CoreSectionExtraction/README.md` |
| SMM IPL, SMRAM allocation, SMM communication, SMM Core loading | `MdeModulePkg/Core/PiSmmCore/PiSmmIpl/README.md` |
| SMM Core SMST services and SMI handler dispatch | `MdeModulePkg/Core/PiSmmCore/PiSmmCore/README.md` |

## Security, Measurement, and Update Control

| Behaviour | Evidence |
| --- | --- |
| Intel Boot Guard PEI hash verification of firmware-volume segments | `PurleyPlatPkg/BootGuard/ExtendBtGSupportToDxe/Pei/BootGuardPei/README.md` |
| TPM 2.0 DXE protocol, PCR extend, event log, TPM ACPI update | `AmiModulePkg/TCG2/Common/TcgDxe/Tcg2Dxe/README.md` |
| TPM/TCG PEI and platform setup policy | `AmiModulePkg/TCG2/Common/TcgPei/TcgPei/README.md`, `AmiModulePkg/TCG2/Common/TcgPlatformSetupPolicy/README.md` |
| Secure Boot variable provisioning and `SetupMode` handling | `AmiModulePkg/SecureBoot/SecureBootDXE/README.md` |
| SMM TCG storage-security path | `AmiModulePkg/TcgStorageSecurity/SmmTcgStorageSec/README.md` |
| Flash and secure-flash update paths | `AmiModulePkg/Flash/SmiFlash/README.md`, `AmiModulePkg/SecureFlash/SecSMIFlash/README.md` |
| Crypto service initialization | `AmiCryptoPkg/CryptoLib/CryptLibInitRun/README.md`, `AmiCryptoPkg/CryptoSMM/README.md` |

## BMC, IPMI, and Out-of-Band Management

| Behaviour | Evidence |
| --- | --- |
| PEI BMC/IPMI initialization | `AmiIpmiPkg/Ipmi/PeiIpmiInitialize/PeiIpmiBmcInitialize/PeiIpmiBmcInitialize/README.md` |
| DXE KCS transport, BMC self-test, Type 42/SPMI records, boot flags | `AmiIpmiPkg/Ipmi/IpmiInitialize/DxeIpmiBmcInitialize/DxeIpmiBmcInitialize/README.md` |
| SMM IPMI initialization | `AmiIpmiPkg/Ipmi/SmmIpmiBmcInitialize/README.md` |
| SEL/status-code forwarding | `AmiIpmiPkg/Ipmi/DxeSelStatusCode/README.md`, `AmiIpmiPkg/Ipmi/PeiSelStatusCode/PeiSelStatusCode/README.md` |
| BMC event-log handling | `AmiIpmiPkg/Ipmi/BmcElog/BmcElog/README.md`, `AmiIpmiPkg/Ipmi/SmmBmcElog/README.md` |
| BMC LAN/IPMI network setup | `AmiNetworkPkg/UefiNetworkStack/Ipv4/BmcLanConfig/README.md`, `AmiNetworkPkg/UefiNetworkStack/Ipv6/Ip6BmcLanConfig/README.md` |
| Lenovo inventory collection for management consumers | `LenovoServerPkg/SystemInventory/SystemInventory/README.md`, `LenovoServerPkg/InventoryApp/README.md` |

## Setup, HII, and Boot Option Policy

| Behaviour | Evidence |
| --- | --- |
| AMI Aptio setup UI, menu database parsing, rendering, hotkeys | `AmiTsePkg/EDK/MiniSetup/AMITSE/README.md` |
| Boot-option management and UEFI boot variables | `AmiTsePkg/EDK/MiniSetup/AMITSE/README.md` |
| Lenovo setup variable and HII infrastructure | `LenovoServerPkg/Setup/README.md` |
| Server management setup pages | `LenovoServerPkg/ServerMgmtSetup/README.md` |
| Socket setup pages | `LenovoServerPkg/SocketSetup/README.md` |
| Setup defaults | `LenovoServerPkg/SetupDefaults/SetupDefaultLoad/README.md` |
| SKU/riser/board-specific setup updates | `PurleyRpPkg/Uba/UbaMain/Dxe/TypeNeonCityEPRP/SetupConfigUpdateDxe/README.md` and sibling `Type*/SetupConfigUpdateDxe` modules |
| Network, NVMe, PCI, TPM, FPGA setup pages | `AmiNetworkPkg/UefiNetworkStack/Common/NetworkStackSetupScreen/README.md`, `AmiModulePkg/Nvme/NvmeDynamicSetup/README.md`, `AmiModulePkg/PCI/PciOutOfResourceSetupPage/README.md`, `PurleySktPkg/Dxe/FpgaInit/FpgaSocketSetup/README.md` |

## Silicon, Board, and SKU Initialization

| Behaviour | Evidence |
| --- | --- |
| PCH/south-cluster PEI silicon init | `PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/README.md`, `PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInit/README.md` |
| PCH DXE/SMM init | `PurleySktPkg/SouthClusterLbg/PchInit/Dxe/PchInitDxe/README.md`, `PurleySktPkg/SouthClusterLbg/PchInit/Smm/PchInitSmm/README.md` |
| GPIO init and unlock paths | `PurleySktPkg/SouthClusterLbg/Gpio/Pei/GpioInit/README.md`, `PurleySktPkg/SouthClusterLbg/Gpio/Smm/PchGpioUnlockSmm/README.md` |
| SMBus DXE/SMM support | `PurleySktPkg/SouthClusterLbg/Smbus/Dxe/PchSmbusDxe/README.md`, `PurleySktPkg/SouthClusterLbg/Smbus/Smm/PchSmbusSmm/README.md` |
| ME/HECI communication | `PurleySktPkg/Me/Heci/Pei/HeciInit/README.md`, `PurleySktPkg/Me/Heci/Dxe/HeciInitDxe/README.md`, `PurleySktPkg/Me/Heci/Smm/HeciSmm/README.md` |
| Intel SPS integration | `PurleySktPkg/Me/Sps/Pei/SpsPei/README.md`, `PurleySktPkg/Me/Sps/Dxe/SpsDxe/README.md`, `PurleySktPkg/Me/Sps/Smm/SpsSmm/README.md` |
| FPGA configuration and error handling | `PurleyRpPkg/Uba/UbaMain/Dxe/TypeNeonCityFPGA/FpgaConfigDataDxe/README.md`, `PurleyPlatPkg/Ras/Smm/ErrHandling/FpgaErrorHandler/FpgaErrorHandler/README.md` |
| Board/SKU data update modules | `PurleyRpPkg/Uba/UbaMain/Dxe/Type*/StaticSkuDataDxe`, `Type*/SlotDataUpdateDxe`, `Type*/SmbiosDataUpdateDxe`, `Type*/IioCfgUpdateDxe` |

## Inventory, SMBIOS, ACPI, and OS-Facing Tables

| Behaviour | Evidence |
| --- | --- |
| Hardware inventory collection during POST | `LenovoServerPkg/SystemInventory/SystemInventory/README.md` |
| SMBIOS base support and DMI edit | `AmiCompatibilityPkg/Smbios/Smbios/README.md`, `AmiCompatibilityPkg/Smbios/SmbiosDmiEdit/README.md` |
| Lenovo SMBIOS type updates | `LenovoServerPkg/SmbiosType11/SmbiosType11/README.md`, `LenovoServerPkg/SmbiosType39/README.md`, `LenovoServerPkg/SmbiosRpTable/README.md` |
| Save SMBIOS data to platform/BMC consumers | `LenovoServerPkg/OemSaveSmbiosDxe/README.md` |
| ACPI and BMC ACPI integration | `AmiModulePkg/ACPI/ACPI/README.md`, `AmiIpmiPkg/Ipmi/BmcAcpi/BmcAcpi/README.md` |
| TPM ACPI update | `AmiModulePkg/TCG2/Common/Tpm20Acpi/README.md`, `AmiModulePkg/TCG2/Common/TcgDxe/Tcg2Dxe/README.md` |

## Storage, Boot Devices, and Legacy Compatibility

| Behaviour | Evidence |
| --- | --- |
| AHCI/SATA and SMM AHCI support | `AmiModulePkg/AHCI/Ahci/README.md`, `AmiModulePkg/AHCI/AhciSmm/README.md` |
| NVMe and dynamic NVMe setup | `AmiModulePkg/Nvme/Nvme/README.md`, `AmiModulePkg/Nvme/NvmeDynamicSetup/README.md` |
| SCSI disk/bus and FAT filesystem | `MdeModulePkg/Bus/Scsi/ScsiDiskDxe/README.md`, `MdeModulePkg/Bus/Scsi/ScsiBusDxe/README.md`, `FatPkg/EnhancedFatDxe/README.md` |
| ATA pass-through, HDD security, SMART | `AmiModulePkg/AtaPassThru/AtaPassThru/README.md`, `AmiModulePkg/HddSecurity/HddSecurity/README.md`, `AmiModulePkg/HddSmart/HddSMART/README.md` |
| Opal/TCG storage security | `AmiModulePkg/OpalSecurity/OpalSecurity/README.md`, `AmiModulePkg/TcgStorageSecurity/TcgStorageSecurity/README.md` |
| CSM and legacy INT13/video paths | `AmiModulePkg/CSM/CsmDxe/README.md`, `AmiModulePkg/CSM/Aint13/README.md`, `AmiModulePkg/CSM/CsmVideo/README.md` |

## Network and Remote Boot

| Behaviour | Evidence |
| --- | --- |
| SNP/MNP/IP stack base | `AmiNetworkPkg/UefiNetworkStack/SnpDxe/README.md`, `PcAtChipsetPkg/PcatRealTimeClockSmm/PcatRealTimeClockSmm/MnpDxe/README.md` |
| PXE boot | `AmiNetworkPkg/UefiNetworkStack/PxeBcDxe/README.md` |
| HTTP boot | `AmiNetworkPkg/UefiNetworkStack/HttpBootDxe/README.md` |
| iSCSI boot | `AmiNetworkPkg/IScsiDxe/IScsiDxe/README.md` |
| DNS/DHCP/IP protocol modules | `MdeModulePkg` and `AmiNetworkPkg/UefiNetworkStack` protocol subtrees |
| Redfish API support | `AmiNetworkPkg/Redfish/AmiRedFishApi/README.md` |

## POST, Logging, RAS, and Error Handling

| Behaviour | Evidence |
| --- | --- |
| Lenovo PEI/DXE POST status-code paths | `LenovoServerPkg/POSTStatus/LnvPeiStatusCode/README.md`, `LenovoServerPkg/POSTStatus/LnvDxeStatusCode/README.md` |
| POST data transfer and screen information | `LenovoServerPkg/POSTDataTransfer/README.md`, `LenovoServerPkg/PostScreenInfo/PostScreenInfo/README.md` |
| Lenovo OOB/status drivers | `LenovoServerPkg/POSTStatus/LnvOobDriverDxe/README.md`, `LenovoServerPkg/POSTStatus/LnvDriverDxe/README.md` |
| Generic and BMC event logs | `AmiModulePkg/GenericElog/GenericElog/README.md`, `AmiModulePkg/GenericElog/SmmGenericElog/README.md`, `AmiIpmiPkg/Ipmi/SmmBmcElog/README.md` |
| WHEA boot and error logging | `CpPlatPkg/Whea/WheaPlatformBoot/README.md`, `CpPlatPkg/Whea/WheaElog/README.md`, `CpPlatPkg/Whea/WheaErrorLog/README.md` |
| Purley RAS and SMM recovery | `PurleyPlatPkg/Ras/Smm/ErrHandling`, `PurleySktPkg/Smm/Ras` |

## Runtime, Variables, and SMM Services

| Behaviour | Evidence |
| --- | --- |
| Runtime services DXE/SMM bridge | `AmiModulePkg/RuntimeDxe/RuntimeDxe/README.md`, `AmiModulePkg/RuntimeSmm/RuntimeSmm/README.md` |
| NVRAM PEI/SMM and SMI variable services | `AmiModulePkg/NVRAM/NvramPei/README.md`, `AmiModulePkg/NVRAM/NvramSmm/README.md`, `AmiModulePkg/SmiVariable/SmiVariable/README.md` |
| S3 NVRAM/save-state support | `AmiModulePkg/NVRAM/S3NvramSave/README.md`, `AmiModulePkg/SmmS3SaveState/S3SaveStateDxe/README.md`, `AmiModulePkg/SmmS3SaveState/SmmS3SaveState/README.md` |
| RTC runtime and SMM services | `PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc/README.md`, `PcAtChipsetPkg/PcatRealTimeClockSmm/PcatRealTimeClockSmm/PcRtcSmm/README.md` |
| Register access services | `CpRcPkg/Universal/RegAccess/Pei/RegAccessPeim/README.md`, `CpRcPkg/Universal/RegAccess/Dxe/RegAccessDxe/README.md`, `CpRcPkg/Universal/RegAccess/Smm/RegAccessSMM/README.md` |

## High-Risk Analysis Areas

Prioritize direct source inspection before drawing conclusions in these areas:

- SMM communication and buffer validation.
- Flash and secure-flash update handlers.
- Runtime variable services and setup-variable policy.
- Secure Boot database provisioning.
- TPM physical-presence, MOR, and PCR event-log handling.
- BMC/IPMI command transport and SEL/status-code forwarding.
- RAS/WHEA SMI handlers and error-injection paths.
- CSM/legacy boot and storage-security paths.
