This patch series introduces FIT-based capsule updates alongside the existing RAW capsule implementation, enabling atomic multi-partition firmware updates. The implementation automatically discovers all partitions across SCSI/UFS and eMMC devices, applies A/B slot selection based on GPT vendor attributes, and generates a single ESRT entry representing all partitions for simplified management.
The series also improves ESRT reporting by tracking last attempt status for both FIT and RAW capsules. Patch 1 adds the core FIT capsule infrastructure with comprehensive partition discovery, A/B selection logic, and multi-partition DFU string generation for both UFS and eMMC storage. Patch 2 implements last attempt status tracking for FIT capsules, enabling proper ESRT reporting with version and status information. Patch 3 extends last attempt tracking to RAW capsules for consistent ESRT behavior across both capsule types. Patch 4 ensures firmware version extraction even when capsule authentication fails, improving error reporting accuracy. Patch 5 switches the default Qualcomm configuration from RAW to FIT capsule support. Patch 6 provides fvupdate_to_fit.py, a Python tool for end-to-end conversion from XML files to deployable capsules, with support for board-specific GUIDs, versioning, and signing. Patch 7 adds comprehensive documentation and example XML files for the conversion tool. Signed-off-by: Balaji Selvanathan <[email protected]> --- Balaji Selvanathan (7): qcom: capsule: add FIT capsule support with multi-partition efi_loader: firmware: track last attempt status for ESRT reporting efi_loader: firmware: add last attempt tracking for RAW capsules efi_loader: Extract FW version even on authentication failure configs: qcom: enable FIT capsule support by default tools: add fvupdate_to_fit.py for FIT capsule generation doc: add fvupdate_to_fit.py documentation and example XML arch/arm/mach-snapdragon/capsule_update.c | 740 +++++++++++++++++++++-- arch/arm/mach-snapdragon/qcom-priv.h | 23 + configs/qcom_defconfig | 2 +- doc/develop/fvupdate_to_fit.rst | 487 +++++++++++++++ doc/develop/fvupdate_to_fit/example_FvUpdate.xml | 43 ++ lib/efi_loader/efi_firmware.c | 176 +++++- tools/fvupdate_to_fit.py | 605 ++++++++++++++++++ 7 files changed, 2006 insertions(+), 70 deletions(-) --- base-commit: 744cf5d4e398c5f657e5c3eeb44d00fa5175dc85 change-id: 20260522-capsule-90a61c84ffb8 Best regards, -- Balaji Selvanathan <[email protected]>

