riscv: Call spl_board_init_f() in the generic SPL board_init_f()
authorBin Meng <bin.meng@windriver.com>
Mon, 3 Aug 2020 06:09:01 +0000 (23:09 -0700)
committerAndes <uboot@andestech.com>
Fri, 14 Aug 2020 06:38:53 +0000 (14:38 +0800)
The generic SPL version of board_init_f() should give a call to
board specific codes to initialize board in the SPL phase.

Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Rick Chen <rick@andestech.com>
Reviewed-by: Pragnesh Patel <pragnesh.patel@sifive.com>
Tested-by: Pragnesh Patel <pragnesh.patel@sifive.com>
arch/riscv/include/asm/spl.h
arch/riscv/lib/spl.c

index 45c03fb..1487f2d 100644 (file)
@@ -28,4 +28,11 @@ enum {
        BOOT_DEVICE_NONE
 };
 
+/**
+ * spl_board_init_f() - initialize board in the SPL phase
+ *
+ * @return 0 if succeeded, -ve on error
+ */
+int spl_board_init_f(void);
+
 #endif
index c47dcd4..e24ec5a 100644 (file)
 
 DECLARE_GLOBAL_DATA_PTR;
 
+__weak int spl_board_init_f(void)
+{
+       return 0;
+}
+
 __weak void board_init_f(ulong dummy)
 {
        int ret;
@@ -24,6 +29,10 @@ __weak void board_init_f(ulong dummy)
        arch_cpu_init_dm();
 
        preloader_console_init();
+
+       ret = spl_board_init_f();
+       if (ret)
+               panic("spl_board_init_f() failed: %d\n", ret);
 }
 
 void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)