[PATCH v3 0/6] arm: snapdragon: Add snagboot support for Lemans-EVK

Casey Connolly casey.connolly at linaro.org
Tue Jun 16 14:37:02 CEST 2026


Hi Balaji,

On 16/06/2026 11:22, Balaji Selvanathan wrote:
> This series adds support for running U-Boot in snagboot mode on
> Qualcomm Snapdragon platforms, targeting the Lemans-EVK board.

It's clear from the patches that this series will not apply, and you
haven't indicated any dependencies.

Please list them in the cover letter in the next revision, for now
having that list in a reply here would be helpful.

> 
> Snagboot is an open-source, scriptable flashing framework that provides
> an alternative to the proprietary Firehose protocol for device
> provisioning. Like the traditional EDL+Firehose flow, Snagboot uses the
> Qualcomm boot ROM recovery mode (EDL) and Sahara protocol to download
> and execute bootloaders. However, instead of using the proprietary
> Firehose programmer, Snagboot loads U-Boot into DDR and uses the
> standard fastboot protocol for device flashing.
> 
> The framework consists of three modular components: snagrecover
> (downloads XBL/QCLib to initialize DDR and load U-Boot into RAM),
> snagflash (communicates with U-Boot over USB using fastboot to flash
> system images), and snagfactory (orchestrates parallel factory
> flashing tasks).
> 
> In the snagboot execution flow, ROM code in recovery mode loads
> snagrecover, which downloads XBL to internal memory. XBL executes
> and initializes DDR, then snagrecover downloads U-Boot into DDR and
> transfers control to it. At this point, XBL has left the MMU enabled
> with its own page tables and has not initialized PSCI firmware or
> populated the Command DB. U-Boot must handle this non-standard boot
> environment to enter fastboot mode for device flashing.
> 
> This series addresses the specific requirements of the snagboot flow:
> 
> Patch 1 changes SYSRESET_PSCI from 'select' to 'imply' so it can
> be disabled on platforms where PSCI firmware is unavailable.
> 
> Patch 2 guards show_psci_version() and qcom_psci_fixup() with
> CONFIG_ARM_SMCCC to prevent build failures when SMCCC is disabled.
> 
> Patch 3 adds CONFIG_QCOM_SNAGBOOT_SUPPORT option to enable snagboot
> mode support on Qualcomm platforms.
> 
> Patch 4 disables the MMU and invalidates TLBs at the earliest entry
> point to clear stale page tables left by previous bootloader
> before U-Boot sets up its own MMU.
> 
> Patch 5 adds QCOM_COMMAND_DB_OPTIONAL to allow the CMD DB driver to
> bind successfully when CMD DB data is not populated by XBL, logging
> a warning instead of failing.
> 
> Patch 6 adds qcom_lemans_snagboot_defconfig for Lemans-EVK, based
> on qcom_defconfig with snagboot-specific settings.
> 
> Signed-off-by: Balaji Selvanathan <balaji.selvanathan at oss.qualcomm.com>
> ---
> Changes in v3:
> - Brought the MMU disable logic under CONFIG_QCOM_SNAGBOOT_SUPPORT
>   ifdef condition
> - Moved the MMU disable codes to a new seperate file
> - Used "if (IS_ENABLED(CONFIG_QCOM_COMMAND_DB_OPTIONAL))" instead
>   of #ifdef
> - Removed enabling QCOM_COMMAND_DB_OPTIONAL, ENABLE_ARM_SOC_BOOT0_HOOK
>   and SKIP_RELOCATE as they are now automatically enabled by
>   QCOM_SNAGBOOT_SUPPORT selection 
> - Removed updating MAINTAINERS as the defconfig file is picked up by
>   the "N: qcom" line
> - Link to v2: https://lore.kernel.org/u-boot/20260608-snagboot-v2-0-036bb0343bf7@oss.qualcomm.com/
> 
> Changes in v2:
> - Changed SYSRESET_PSCI from 'select' to 'imply'
> - Guard show_psci_version() and qcom_psci_fixup() with CONFIG_ARM_SMCCC
> - Disables the MMU and invalidates TLBs at the earliest entry point
> - Add qcom_lemans_snagboot_defconfig for Lemans-EVK
> - Link to v1: https://lore.kernel.org/u-boot/20260409-cmddb-v1-1-b10549b34133@oss.qualcomm.com/
> 
> ---
> Balaji Selvanathan (6):
>       arm: snapdragon: Make SYSRESET_PSCI optional
>       arm: snapdragon: Guard PSCI functions with CONFIG_ARM_SMCCC
>       arm: snapdragon: Add CONFIG_QCOM_SNAGBOOT_SUPPORT option
>       arm: snapdragon: Disable MMU early before U-Boot reset vector
>       soc: qcom: cmd-db: Allow boot without CMD DB data
>       configs: add qcom_lemans_snagboot_defconfig for Lemans-EVK
> 
>  arch/arm/Kconfig                                   |  2 +-
>  arch/arm/mach-snapdragon/Kconfig                   | 13 ++++++
>  arch/arm/mach-snapdragon/board.c                   |  6 +++
>  arch/arm/mach-snapdragon/include/mach/boot0.h      |  2 +
>  .../mach-snapdragon/include/mach/snagboot_boot0.h  | 53 ++++++++++++++++++++++
>  configs/qcom_lemans_snagboot_defconfig             | 45 ++++++++++++++++++
>  drivers/soc/qcom/Kconfig                           | 18 ++++++++
>  drivers/soc/qcom/cmd-db.c                          | 14 +++++-
>  8 files changed, 150 insertions(+), 3 deletions(-)
> ---
> base-commit: e1c3db1f788ed8106840e81b795e030cbe0020b7
> change-id: 20260616-sngboot-760714938d18
> 
> Best regards,

-- 
// Casey (she/her)



More information about the U-Boot mailing list