Hook up support for capsule updates loaded from disk on Qualcomm platforms.
Most Qualcomm devices have an A/B partition layout, with most partitions duplicated. The metadata on which slot is active is stored in the GPT headers in the vendor-specific attribute bits of each partition. Add support for reading this attributes via the disk_partition struct and using them to determine which boot partition U-Boot is flashed to and generate the appropriate DFU string. This logic is gated behind a check to ensure that U-Boot is actually being chainloaded and not run via some other mechanism. SCSI support for most Qualcomm platforms is not yet enabled upstream, but will follow in future patches. This series enables capsule updates on the RB2, however [1] is required for it to work properly (as otherwise MMC won't be available). [1]: https://lore.kernel.org/u-boot/20240527-b4-clk-stub-v2-0-29013855e...@linaro.org/ To: Tom Rini <tr...@konsulko.com> To: Simon Glass <s...@chromium.org> To: Lukasz Majewski <lu...@denx.de> To: Mattijs Korpershoek <mkorpersh...@baylibre.com> To: Caleb Connolly <caleb.conno...@linaro.org> To: Neil Armstrong <neil.armstr...@linaro.org> To: Sumit Garg <sumit.g...@linaro.org> Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org> Cc: u-boot@lists.denx.de Cc: u-boot-q...@groups.io Changes in v2: - Add qcom capsule update support patches - Link to v1: https://lore.kernel.org/r/20240409-b4-dfu-scsi-v1-0-3e1441a60...@linaro.org --- Caleb Connolly (8): dfu: add scsi backend disk: expose partition type flags mmc: msm_sdhci: work around a bug when writing mach-snapdragon: implement capsule update support qcom_defconfig: savedefconfig mach-snapdragon: use SYSRESET_PSCI mach-snapdragon: bump up heap size qcom_defconfig: enable capsule update support arch/arm/Kconfig | 2 + arch/arm/mach-snapdragon/Kconfig | 3 + arch/arm/mach-snapdragon/Makefile | 1 + arch/arm/mach-snapdragon/board.c | 8 +- arch/arm/mach-snapdragon/capsule_update.c | 147 ++++++++++ arch/arm/mach-snapdragon/qcom-priv.h | 6 + configs/qcom_defconfig | 18 +- disk/part_efi.c | 1 + doc/usage/dfu.rst | 31 +++ drivers/dfu/Kconfig | 7 + drivers/dfu/Makefile | 1 + drivers/dfu/dfu.c | 5 +- drivers/dfu/dfu_scsi.c | 437 ++++++++++++++++++++++++++++++ drivers/mmc/msm_sdhci.c | 7 + include/configs/qcom.h | 5 + include/dfu.h | 26 ++ include/part.h | 1 + 17 files changed, 695 insertions(+), 11 deletions(-) --- change-id: 20240523-b4-qcom-capsule-updates-ea2e4f8f0ff0 base-commit: 0b283a047ca00275ec515302b67676ba29f2b954 // Caleb (they/them)