1.2.6. Platform state partitions: cdt, ddr, uefivarstore¶
Three small partitions XBL reads and writes at runtime to configure the board, train DDR, and persist UEFI variables — distinct from the signed firmware images documented elsewhere in this section.
1.2.6.1. cdt — board identity is empty¶
cdt.bin (LUN3, 128 KB, start 0x20000) is entirely zero on this
unit. The Configuration Data Table normally encodes board/platform ID and
DDR-device selection, but here the standalone partition carries nothing —
platform identification does not come from this partition. It comes from
the CDT/PlatformInfo data embedded in XBL itself (platform “Bitra”) and
the SoC’s own fused platform/chip IDs read by ChipInfo/PlatformInfoDxe
(Embedded UEFI firmware volume). A bootloader that replaces XBL cannot recover board identity
from cdt — it must read it from the SoC as XBL does.
1.2.6.2. ddr — likely a DDR training cache¶
ddr.bin (LUN3, 1 MB, start 0x40000) holds a compact ~1.4 KB
structure in an otherwise-reserved 1 MB partition: sentinel 0xdeadcafe
at +0x18, version word 0x0800, a device/rank presence code (ASCII
NDND…MDMD…), and a table of 16-bit timing/margin values (0x62c 0x657
0x5c6 0x556 0x57b 0x4fd …, repeating per frequency point) — a structure
consistent with a DDR training cache (inferred from the data’s shape —
sentinel, version word, per-frequency timing table — not confirmed by
tracing XBL’s own code): XBL trains the PHY once, writes the converged
parameters here, and reuses them on later boots to skip full retraining.
It is board- and part-specific runtime data, not signed firmware — a
replacement loader either performs full DDR training itself or consumes
this cache in the same format. The actual DDR Config Blobs XBL trains
from are the two dcb.bin entries bundled in Companion image — xbl_config.
1.2.6.3. uefivarstore — persistent UEFI variables¶
uefivarstore.bin (LUN4, 512 KB, ~1 KB populated) is not the
standard EDK2 authenticated-variable/FTW store — it is a Qualcomm-custom
format with magic PTBL at +0, a version word 0x00000100, an
entry-count/index table, and VAR2 / DStr variable records. This is
where the UEFI phase persists NV variables across boots — the mechanism ABL
uses when it sets RESET_PARAM="EDL" before ResetSystem to force EDL
(EDL / 9008 entry and the deep-flash cable, Physical keys: power, volume, and the boot-mode dispatcher). Individual values are not stored as
plain ASCII, so the live variable set is not readable from a static dump.
- Source:
_READONLY/lun3/cdt.bin,_READONLY/lun3/ddr.bin,_READONLY/lun4/uefivarstore.bin.- Cross-refs:
XBL, Embedded UEFI firmware volume, Companion image — xbl_config, EDL / 9008 entry and the deep-flash cable, Physical keys: power, volume, and the boot-mode dispatcher.