armv7R: K3: am654: Add support for triggering ddr init from SPL
authorLokesh Vutla <lokeshvutla@ti.com>
Fri, 2 Nov 2018 14:21:06 +0000 (19:51 +0530)
committerTom Rini <trini@konsulko.com>
Fri, 16 Nov 2018 21:51:59 +0000 (16:51 -0500)
In SPL, DDR should be made available by the end of board_init_f()
so that apis in board_init_r() can use ddr. Adding support
for triggering DDR initialization from board_init_f().

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
arch/arm/mach-k3/am6_init.c

index fef01075056e8baa8fe98c59282d5190dd15184a..e2fe00c422f5afb795410af21d086ff4d97a87f0 100644 (file)
@@ -11,6 +11,7 @@
 #include <spl.h>
 #include <asm/arch/hardware.h>
 #include "common.h"
+#include <dm.h>
 
 #ifdef CONFIG_SPL_BUILD
 static void mmr_unlock(u32 base, u32 partition)
@@ -57,6 +58,10 @@ static void store_boot_index_from_rom(void)
 
 void board_init_f(ulong dummy)
 {
+#if defined(CONFIG_K3_AM654_DDRSS)
+       struct udevice *dev;
+       int ret;
+#endif
        /*
         * Cannot delay this further as there is a chance that
         * K3_BOOT_PARAM_TABLE_INDEX can be over written by SPL MALLOC section.
@@ -75,6 +80,14 @@ void board_init_f(ulong dummy)
 
        /* Prepare console output */
        preloader_console_init();
+
+#ifdef CONFIG_K3_AM654_DDRSS
+       ret = uclass_get_device(UCLASS_RAM, 0, &dev);
+       if (ret) {
+               printf("DRAM init failed: %d\n", ret);
+               return;
+       }
+#endif
 }
 
 u32 spl_boot_mode(const u32 boot_device)