[U-Boot] [PATCH V2] spl: add a generic function board_init_f

This commit add a generic function board_init_f that only initialize some device (for example serial). It avoid to define a board function only to launch the serial configuration.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com ---
Changelog: v2: - fix the commit message (use board_init_f instead of board_init_r) (thanks Simon) - remove the useless "default n" in Kconfig (thanks Simon) - enhance the help in Kconfig (thanks Simon) - replace #if by if (thanks Simon)
common/spl/Kconfig | 9 +++++++++ common/spl/spl.c | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+)
diff --git a/common/spl/Kconfig b/common/spl/Kconfig index f467eca..33752a3 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -25,6 +25,15 @@ config SPL_FRAMEWORK supports MMC, NAND and YMODEM and other methods loading of U-Boot and the Linux Kernel. If unsure, say Y.
+config SPL_FRAMEWORK_BOARD_INIT_F + bool "Define a generic function board_init_f" + depends on SPL_FRAMEWORK + help + Define a generic function board_init_f that: + - initialize the spl (spl_early_init) + - initialize the serial (preloader_console_init) + Unless you want to provide your own board_init_f, you should say Y. + config SPL_SIZE_LIMIT int "Maximum size of SPL image" depends on SPL diff --git a/common/spl/spl.c b/common/spl/spl.c index 082fa2b..c823062 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -566,6 +566,24 @@ static int boot_from_devices(struct spl_image_info *spl_image, return -ENODEV; }
+#if defined(CONFIG_SPL_FRAMEWORK_BOARD_INIT_F) +void board_init_f(ulong dummy) +{ + if (CONFIG_IS_ENABLED(OF_CONTROL)) { + int ret; + + ret = spl_early_init(); + if (ret) { + debug("spl_early_init() failed: %d\n", ret); + hang(); + } + } + + if (CONFIG_IS_ENABLED(SERIAL_SUPPORT)) + preloader_console_init(); +} +#endif + void board_init_r(gd_t *dummy1, ulong dummy2) { u32 spl_boot_list[] = {

On Thu, Sep 19, 2019 at 04:18:39PM +0200, Philippe Reynes wrote:
This commit add a generic function board_init_f that only initialize some device (for example serial). It avoid to define a board function only to launch the serial configuration.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com
Applied to u-boot/master, thanks!
participants (2)
-
Philippe Reynes
-
Tom Rini