spl: Introduce SoC specific init function

Some architectures use spl_board_init() in their SoC specific
implementation. Board developers should be able to add board specific
implementation via spl_board_init(). Hence, introduce a spl_soc_init()
method which is called right before spl_board_init() for SoC
specific implementation.

Signed-off-by: Lukas Funke <lukas.funke@weidmueller.com>
Reviewed-by: Devarsh Thakkar <devarsht@ti.com>
Link: https://lore.kernel.org/r/20240327121153.2455126-2-lukas.funke-oss@weidmueller.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
This commit is contained in:
Lukas Funke 2024-03-27 13:11:52 +01:00 committed by Michal Simek
parent 86c46b99a0
commit 52ef6a9cb8
3 changed files with 18 additions and 0 deletions

View file

@ -272,6 +272,13 @@ config SPL_TEXT_BASE
help
The address in memory that SPL will be running from.
config SPL_SOC_INIT
bool "Call SoC-specific initialization in SPL"
help
If this option is enabled, U-Boot will call the function
spl_soc_init() from board_init_r(). This function should be
provided by the SoC vendor.
config SPL_BOARD_INIT
bool "Call board-specific initialization in SPL"
help

View file

@ -710,6 +710,9 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
}
}
if (CONFIG_IS_ENABLED(SOC_INIT))
spl_soc_init();
if (CONFIG_IS_ENABLED(BOARD_INIT))
spl_board_init();

View file

@ -816,6 +816,14 @@ int spl_early_init(void);
*/
int spl_init(void);
/*
* spl_soc_init() - Do architecture-specific init in SPL
*
* If SPL_SOC_INIT is enabled, this is called from board_init_r() before
* jumping to the next phase.
*/
void spl_soc_init(void);
/*
* spl_board_init() - Do board-specific init in SPL
*