[PATCH v4 1/8] arm: snapdragon: Add CONFIG_QCOM_SNAGBOOT_MODE option
Casey Connolly
casey.connolly at linaro.org
Mon Jul 6 14:30:22 CEST 2026
Hi Balaji,
On 6/19/26 13:10, Balaji Selvanathan wrote:
> Add CONFIG_QCOM_SNAGBOOT_MODE to enable snagboot mode on Qualcomm
> platforms. This config automatically selects the required dependencies.
>
> Add QCOM_BOOT0_SNAGBOOT_MODE as boot0.h config for automatic selection
> by QCOM_SNAGBOOT_MODE. Document the platform-specific requirements and
> configs that must be disabled in snagboot mode.
>
> Signed-off-by: Balaji Selvanathan <balaji.selvanathan at oss.qualcomm.com>
> ---
> Changes in v4:
> - Renamed QCOM_SNAGBOOT_SUPPORT to QCOM_SNAGBOOT_MODE
> - Added QCOM_BOOT0_SNAGBOOT_MODE for boot0.h which gets selected by
> QCOM_SNAGBOOT_MODE
> - Document the platform-specific requirements and configs that must be
> disabled in snagboot mode.
>
> Changes in v3:
> - Newly introduced in v3
> ---
> arch/arm/mach-snapdragon/Kconfig | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/arch/arm/mach-snapdragon/Kconfig b/arch/arm/mach-snapdragon/Kconfig
> index 931d25c1023..5c7dbe0dcc4 100644
> --- a/arch/arm/mach-snapdragon/Kconfig
> +++ b/arch/arm/mach-snapdragon/Kconfig
> @@ -65,4 +65,32 @@ config QCOM_EL2_GUNYAH_EXIT_SUPPORT
> run properly at EL2.
> endchoice
>
> +config QCOM_BOOT0_SNAGBOOT_MODE
> + bool "boot0.h initialization for Snagboot mode"
I don't think this should be visible in menuconfig, it should be internal.
The config should be inside the choice block though I think? not sure if
that's possible if it's not selectable> + help
> + Enable boot0.h early initialization required when U-Boot
> + is loaded in Snagboot mode by XBL.> +
> +config QCOM_SNAGBOOT_MODE
> + bool "Build U-Boot for Snagboot mode loading"
> + select QCOM_BOOT0_SNAGBOOT_MODE
> + select ENABLE_ARM_SOC_BOOT0_HOOK
> + select SKIP_RELOCATE
> + help
> + Build U-Boot to be loaded in Snagboot mode on Qualcomm platforms
> + for device/factory provisioning using fastboot.
> +
> + Snagboot mode requires disabling several configs in your defconfig:
> + - PSCI_RESET: Not available in Snagboot mode
> + - IOMMU: Not initialized by XBL in Snagboot mode
> + - SAVE_PREV_BL_INITRAMFS_START_ADDR: Previous bootloader context
> + is not preserved in snagboot mode
> + - REBOOT_MODE_ENV_UPDATE: Not applicable in device/factory provisioning mode
this isn't how kconfig works, use depends> +
> + Additionally, use CONFIG_ENV_IS_NOWHERE to ensure recovery works
> + even with corrupted environment storage.
select ENV_IS_NOWHERE
depends on !ENV_IS_IN_SCSI
> +
> + Platform-specific requirements:
> + - Set CONFIG_COUNTER_FREQUENCY to match your platform's timer
> + - Configure CONFIG_TEXT_BASE for U-Boot load address
you can probably depend on these being non-zero too
Thanks,
// Casey
> endif
>
More information about the U-Boot
mailing list