Hi Tom, > On Wed, Dec 22, 2021 at 01:49:02PM +0100, Lukasz Majewski wrote: > > > This change provides the possibility to build XEA (imx287 based) > > board U-Boot as a single binary (without support for > > CONFIG_SPL_FRAMEWORK). > > > > The generated u-boot.sb can be used in the factory environment to > > for example perform initial setup or HW testing. > > > > It can be used with 'uuu' utility > > (SDPS: boot -f /srv/tftp/xea/u-boot.sb) > > > > The board_init_ll() is used in arch/arm/cpu/arm926ejs/mxs/start.S, > > which is utilized when CONFIG_SPL_FRAMEWORK is disabled. > > > > However, when it is enabled the arch/arm/cpu/arm926ejs/start.S is > > used, which requires the lowlevel_init() function. > > > > Signed-off-by: Lukasz Majewski > > --- > > > > board/liebherr/xea/spl_xea.c | 8 ++++++++ > > board/liebherr/xea/xea.c | 3 ++- > > 2 files changed, 10 insertions(+), 1 deletion(-) > > > > diff --git a/board/liebherr/xea/spl_xea.c > > b/board/liebherr/xea/spl_xea.c index 192f68fca5f..5ee561b8b78 100644 > > --- a/board/liebherr/xea/spl_xea.c > > +++ b/board/liebherr/xea/spl_xea.c > > @@ -290,6 +290,13 @@ u32 mxs_dram_vals[] = { > > 0x00000000, 0xffffffff > > }; > > > > +/* #ifndef CONFIG_SPL_FRAMEWORK */ > > +#if !CONFIG_IS_ENABLED(FRAMEWORK) > > +void board_init_ll(const u32 arg, const uint32_t *resptr) > > +{ > > + mxs_common_spl_init(arg, resptr, iomux_setup, > > ARRAY_SIZE(iomux_setup)); +} > > +#else > > void lowlevel_init(void) > > { > > struct mxs_pinctrl_regs *pinctrl_regs = > > @@ -301,3 +308,4 @@ void lowlevel_init(void) > > > > mxs_common_spl_init(0, NULL, iomux_setup, > > ARRAY_SIZE(iomux_setup)); } > > +#endif > > diff --git a/board/liebherr/xea/xea.c b/board/liebherr/xea/xea.c > > index cd11b0ada77..685e2e26a18 100644 > > --- a/board/liebherr/xea/xea.c > > +++ b/board/liebherr/xea/xea.c > > @@ -58,7 +58,8 @@ static void init_clocks(void) > > mxs_set_sspclk(MXC_SSPCLK3, 96000, 0); > > } > > > > -#ifdef CONFIG_SPL_BUILD > > +/* #if CONFIG_SPL_BUILD && CONFIG_SPL_FRAMEWORK */ > > +#if CONFIG_IS_ENABLED(BUILD) && CONFIG_IS_ENABLED(FRAMEWORK) > > void board_init_f(ulong arg) > > { > > init_clocks(); > > I know checkpatch.pl has a warning, but maybe the text needs to be > tweaked there slightly? Yes, exactly - this was done to silence the checkpatch.pl error. > Using CONFIG_IS_ENABLED here is less > readable / clear than CONFIG_SPL_BUILD (which is special) and > CONFIG_SPL_FRAMEWORK (there's no CONFIG_FRAMEWORK and this board > isn't going to use TPL). > If you prefer I can just add the preprocessor code from the above comment. Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de