[PATCH v1] arm: xea: Modify board code to generate single binary u-boot
Lukasz Majewski
lukma at denx.de
Sat Oct 23 17:03:43 CEST 2021
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)
In the configs/imx28_xea_defconfig one needs to disable following configs:
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 <lukma at denx.de>
---
board/liebherr/xea/spl_xea.c | 7 +++++++
board/liebherr/xea/xea.c | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/board/liebherr/xea/spl_xea.c b/board/liebherr/xea/spl_xea.c
index 192f68fca5f..92ba08248b4 100644
--- a/board/liebherr/xea/spl_xea.c
+++ b/board/liebherr/xea/spl_xea.c
@@ -290,6 +290,7 @@ u32 mxs_dram_vals[] = {
0x00000000, 0xffffffff
};
+#if CONFIG_IS_ENABLED(SPL_FRAMEWORK)
void lowlevel_init(void)
{
struct mxs_pinctrl_regs *pinctrl_regs =
@@ -301,3 +302,9 @@ void lowlevel_init(void)
mxs_common_spl_init(0, NULL, iomux_setup, ARRAY_SIZE(iomux_setup));
}
+#else
+void board_init_ll(const u32 arg, const uint32_t *resptr)
+{
+ mxs_common_spl_init(arg, resptr, iomux_setup, ARRAY_SIZE(iomux_setup));
+}
+#endif
diff --git a/board/liebherr/xea/xea.c b/board/liebherr/xea/xea.c
index cd11b0ada77..4437f9cb265 100644
--- a/board/liebherr/xea/xea.c
+++ b/board/liebherr/xea/xea.c
@@ -58,7 +58,7 @@ static void init_clocks(void)
mxs_set_sspclk(MXC_SSPCLK3, 96000, 0);
}
-#ifdef CONFIG_SPL_BUILD
+#if defined CONFIG_SPL_BUILD && defined CONFIG_SPL_FRAMEWORK
void board_init_f(ulong arg)
{
init_clocks();
--
2.20.1
More information about the U-Boot
mailing list