Hi Michael, On 2026-05-08T00:33:28, Michael Srba <[email protected]> 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 <[email protected]> > > 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 <[email protected]> > 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

