1.2.3. Embedded UEFI firmware volume¶
PH11 of xbl_a.bin (file 0x7e7a0, vaddr 0x9FC00000, 0x240000
bytes) is one EDK2 firmware volume (EFI_FIRMWARE_FILE_SYSTEM2 GUID
8c8ce578-8a3d-4f1c-9935-896185c32dd3). Its top level holds only three
payload files: a SEC_CORE, a FREEFORM (the uefiplat.cfg platform
config — Platform config (uefiplat.cfg)), and one FV_IMAGE whose GUIDed section
is gzip-compressed (magic 1f8b08 at file 0xbb368). Decompressing
it yields the real DXE volume — 5.75 MB, 114 FFS files: one
DXE_CORE, 82 drivers, 29 freeform config/resource blobs, one
application, one pad.
1.2.3.1. The 82 DXE drivers¶
Names from their PE debug paths — the full set of hardware and service drivers XBL stands up before launching the boot app:
- Dispatch / runtime:
DxeCore,QcomBds,DevicePathDxe,SecurityStubDxe,RuntimeDxe,CapsuleRuntimeDxe,ResetRuntimeDxe,VariableDxe,EnvDxe,EmbeddedMonotonicCounter,MetronomeDxe,WatchdogTimer,QcomWDogDxe,MinidumpTADxe,ULogDxe- Storage / filesystem:
UFSDxe,SdccDxe,PartitionDxe,DiskIoDxe,Fat,FvSimpleFileSystem,FvDxe,UsbMsdDxe- Clocks / power / thermal:
ClockDxe,RpmhDxe,CPRDxe,NpaDxe,RscRtDxe,CmdDbDxe,LimitsDxe,TsensDxe,PwrUtilsDxe,AdcDxe- PMIC / charger:
PmicDxe,ChargerExDxe,QcomChargerApp,QcomChargerDxeLA,UsbPwrCtrlDxe- Security / crypto / TrustZone:
TzDxe,ScmDxe,VerifiedBootDxe,SecRSADxe,HashDxe,CipherDxe,ASN1X509Dxe,MacDxe,RngDxe,ShmBridgeDxe,FeatureEnablerDxe,SCHandlerRtDxe- CPU / arch / interrupt / timer:
ArmCpuDxe,ArmGicDxe,ArmTimerDxe,QcomMpmTimerDxe,PdcDxe,HWIODxeDriver,ChipInfo,PlatformInfoDxeDriver- Buses / IO / IOMMU:
I2C,SPMI,GpiDxe,DALSys,DALTLMM,HALIOMMU- USB:
UsbDeviceDxe,UsbfnDwc3Dxe,UsbConfigDxe- Display / console / HII:
DisplayDxe,GraphicsConsoleDxe,FontDxe,EnglishDxe,SimpleTextInOutSerial,ConSplitterDxe,ConPlatformDxe,HiiDatabase,PrintDxe- Buttons:
ButtonsDxe- Image loading (PIL):
PILDxe,PILProxyDxe— load/authenticate the secure-world and coprocessor images (TZ/HYP/AOP/modem/dsp)- Memory:
DDRInfoDxe- Coprocessor:
ADSPDxe,SmemDxe,VcsDxe,RealTimeClock
Notable presences: PILDxe/PILProxyDxe are how XBL brings up the
secure world (Boot chain and exception-level hand-off (PBL → XBL → ABL)); VerifiedBootDxe + TzDxe +
ScmDxe are the AVB/Keymaster plumbing ABL consumes
(AVB enforcement code path (LoadImageAndAuth / libavb)); UFSDxe/PartitionDxe are the
EFI_BLOCK_IO/GPT providers a UEFI-resident payload inherits
(Below UEFI — execution state and hardware register surface); QcomBds is the dispatcher that launches
LinuxLoader (XBL → ABL hand-off contract (bounded)).
- Source:
_READONLY/lun1/xbl_a.bin— gzip DXE FV at file0xbb368decompressed to 5.75 MB / 114 FFS; driver names read from PE debug paths.- Cross-refs:
XBL (segment layout), Platform config (uefiplat.cfg) (the
uefiplat.cfgFREEFORM file in this same FV), XBL → ABL hand-off contract (bounded).