diff options
-rw-r--r-- | common/spl/spl.c | 5 | ||||
-rw-r--r-- | include/spl.h | 15 |
2 files changed, 19 insertions, 1 deletions
diff --git a/common/spl/spl.c b/common/spl/spl.c index 6945ecb..884102b 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -174,6 +174,11 @@ __weak void spl_board_prepare_for_optee(void *fdt) { } +__weak const char *spl_board_loader_name(u32 boot_device) +{ + return NULL; +} + #if CONFIG_IS_ENABLED(OPTEE_IMAGE) __weak void __noreturn jump_to_image_optee(struct spl_image_info *spl_image) { diff --git a/include/spl.h b/include/spl.h index 8748497..bb92bc6 100644 --- a/include/spl.h +++ b/include/spl.h @@ -463,6 +463,17 @@ int spl_board_ubi_load_image(u32 boot_device); int spl_board_boot_device(u32 boot_device); /** + * spl_board_loader_name() - Return a name for the loader + * + * This is a weak function which might be overridden by the board code. With + * that a board specific value for the device where the U-Boot will be loaded + * from can be set. By default it returns NULL. + * + * @boot_device: ID of the device which SPL wants to load U-Boot from. + */ +const char *spl_board_loader_name(u32 boot_device); + +/** * jump_to_image_linux() - Jump to a Linux kernel from SPL * * This jumps into a Linux kernel using the information in @spl_image. @@ -544,7 +555,9 @@ struct spl_image_loader { static inline const char *spl_loader_name(const struct spl_image_loader *loader) { #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - return loader->name; + const char *name; + name = spl_board_loader_name(loader->boot_device); + return name ?: loader->name; #else return NULL; #endif |