[PATCH v6 04/11] mach-snapdragon: boot0.h: split out msm8916_boot0.h
Simon Glass
sjg at chromium.org
Fri May 8 18:49:25 CEST 2026
Hi Michael,
On 2026-05-08T00:33:28, Michael Srba <michael.srba at seznam.cz> wrote:
> mach-snapdragon: boot0.h: split out msm8916_boot0.h
>
> Prepare for supporting alternative boot0.h per-SoC by splitting out
> the existing msm8916-specific code.
>
> There is now a selection mechanism to choose a specific boot0.h
> in the Kconfig. BOOT0_MSM8916_PSCI_WORKAROUND is the only option
> right now, but more can be added. The toplevel boot0.h additionally
> enables conditionally performing the include only in u-boot proper,
> or only in SPL.
>
> Signed-off-by: Michael Srba <Michael.Srba at seznam.cz>
>
> arch/arm/mach-snapdragon/Kconfig | 16 ++++++
> arch/arm/mach-snapdragon/include/mach/boot0.h | 60 +++-------------------
> .../mach-snapdragon/include/mach/msm8916_boot0.h | 54 +++++++++++++++++++
> configs/dragonboard410c_defconfig | 1 +
> 4 files changed, 79 insertions(+), 52 deletions(-)
Reviewed-by: Simon Glass <sjg at chromium.org>
> diff --git a/configs/dragonboard410c_defconfig b/configs/dragonboard410c_defconfig
> @@ -11,6 +11,7 @@ CONFIG_ENV_OFFSET=0x0
> CONFIG_DEFAULT_DEVICE_TREE='qcom/apq8016-sbc'
> CONFIG_OF_LIBFDT_OVERLAY=y
> CONFIG_SYS_LOAD_ADDR=0x80080000
> +CONFIG_BOOT0_MSM8916_PSCI_WORKAROUND=y
> CONFIG_IDENT_STRING="\nQualcomm-DragonBoard 410C"
Do you need to see CONFIG_BOOT0_MSM8916_PSCI_WORKAROUND=y in
hmibsc_defconfig too? It looks like hmibsc_defconfig is also an
apq8016 (msm8916) board with CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK=y, so it
currently relies on the same PSCI workaround and will silently lose it
after this patch. If not, it is worth mentioning in the commit
message.
> diff --git a/arch/arm/mach-snapdragon/include/mach/boot0.h b/arch/arm/mach-snapdragon/include/mach/boot0.h
> @@ -1,54 +1,10 @@
> /* SPDX-License-Identifier: GPL-2.0+ */
> -/*
> - * Workaround for "PSCI bug" on DragonBoard 410c
...
> +#if defined(CONFIG_SPL_BUILD)
> b reset
> -
> - .align 3
> -el1_system_param:
> - .quad 0, 0, 0, 0, 0, 0, 0, 0, 0 /* el1_x0-x8 */
> - .quad reset /* el1_elr */
> -el1_system_param_end:
> +#else
> +#if defined(CONFIG_BOOT0_MSM8916_PSCI_WORKAROUND)
> +#include 'msm8916_boot0.h'
> +#else
> + b reset
> +#endif
> +#endif
You could flatten this with #elif - which would make it more obvious
that the SPL path is intentionally a stub.
#if defined(CONFIG_SPL_BUILD)
b reset
#elif defined(CONFIG_BOOT0_MSM8916_PSCI_WORKAROUND)
#include 'msm8916_boot0.h'
#else
b reset
#endif
Regards,
Simon
More information about the U-Boot
mailing list