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.
You didn't respond to my reply on v2 of this series. > > 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. Glad to have some more info here. Please also add a doc page with this information as well as a list of supported platforms. I would hope that this support will be expanded to other platforms, and I'll make that assumption with my feedback. > > 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 recovery mode?? Please be consistent and just say EDL or boot ROM. > 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 <[email protected]> > --- > 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/[email protected]/ > > 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/[email protected]/ > > --- > 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)

