[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