On Tue, Dec 27, 2016 at 11:19:43AM +0200, Oded Gabbay wrote: > Using CONFIG_IS_ENABLED() doesn't work in SPL. This patch replaces the only > occurrence of CONFIG_IS_ENABLED() in start.S to a regular #if defined(). > It also adds "&& !defined(CONFIG_SPL_BUILD)" to that #if statement because > the spin-table code can't currently work in SPL, and the spin-table file > isn't even compiled in SPL. > > Signed-off-by: Oded Gabbay <oded.gab...@gmail.com> > --- > arch/arm/cpu/armv8/start.S | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm/cpu/armv8/start.S b/arch/arm/cpu/armv8/start.S > index 4f5f6d8..2f975a0 100644 > --- a/arch/arm/cpu/armv8/start.S > +++ b/arch/arm/cpu/armv8/start.S > @@ -99,7 +99,7 @@ save_boot_params_ret: > /* Processor specific initialization */ > bl lowlevel_init > > -#if CONFIG_IS_ENABLED(ARMV8_SPIN_TABLE) > +#if defined(CONFIG_ARMV8_SPIN_TABLE) && !defined(CONFIG_SPL_BUILD) > branch_if_master x0, x1, master_cpu > b spin_table_secondary_jump > /* never return */
I don't get it, sorry. Looking at include/linux/kconfig.h: CONFIG_IS_ENABLED(ARMV8_SPIN_TABLE) is 1 if CONFIG_ARMV8_SPIN_TABLE and CONFIG_SPL_BUILD is undefined. CONFIG_IS_ENABLED(ARMV8_SPIN_TABLE) is always 0 since CONFIG_SPL_ARMV8_SPIN_TABLE is not a symbol. And since we don't link the spin table objects in outside of SPL, we wouldn't want to try and call those functions. So, what's the bug exactly? Just a lack-of-clarity by using CONFIG_IS_ENABLED(ARMV8_SPIN_TABLE) vs 'defined(CONFIG_ARMV8_SPIN_TABLE) && !defined(CONFIG_SPL_BUILD)' ? Thanks! -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot