summaryrefslogtreecommitdiff
path: root/board/freescale/imx8mm_evk/spl.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/freescale/imx8mm_evk/spl.c')
-rw-r--r--board/freescale/imx8mm_evk/spl.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/board/freescale/imx8mm_evk/spl.c b/board/freescale/imx8mm_evk/spl.c
index 2cea694ed1..6bbda3c3d4 100644
--- a/board/freescale/imx8mm_evk/spl.c
+++ b/board/freescale/imx8mm_evk/spl.c
@@ -203,14 +203,6 @@ int power_init_board(void)
void spl_board_init(void)
{
- enable_tzc380();
-
- setup_i2c(0, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
-
- power_init_board();
- /* DDR initialization */
- spl_dram_init();
-
#ifndef CONFIG_SPL_USB_SDP_SUPPORT
/* Serial download mode */
if (is_usb_boot()) {
@@ -233,6 +225,8 @@ int board_fit_config_name_match(const char *name)
void board_init_f(ulong dummy)
{
+ int ret;
+
/* Clear global data */
memset((void *)gd, 0, sizeof(gd_t));
@@ -247,5 +241,21 @@ void board_init_f(ulong dummy)
/* Clear the BSS. */
memset(__bss_start, 0, __bss_end - __bss_start);
+ ret = spl_init();
+ if (ret) {
+ debug("spl_init() failed: %d\n", ret);
+ hang();
+ }
+
+ enable_tzc380();
+
+ /* Adjust pmic voltage to 1.0V for 800M */
+ setup_i2c(0, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
+
+ power_init_board();
+
+ /* DDR initialization */
+ spl_dram_init();
+
board_init_r(NULL, 0);
}