To enable splash screen on AM62x at a53 SPL setup DRAM, set page table,
enable cache to allow copying of bmp image to frame buffer and display
it using splash_display.

Signed-off-by: Nikhil M Jain <n-ja...@ti.com>
---
 board/ti/am62x/evm.c | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/board/ti/am62x/evm.c b/board/ti/am62x/evm.c
index 20b2a70122..e3c80c5c67 100644
--- a/board/ti/am62x/evm.c
+++ b/board/ti/am62x/evm.c
@@ -9,6 +9,7 @@
 
 #include <env.h>
 #include <spl.h>
+#include <init.h>
 #include <video.h>
 #include <splash.h>
 #include <k3-ddrss.h>
@@ -53,6 +54,44 @@ int dram_init_banksize(void)
 }
 
 #if defined(CONFIG_SPL_BUILD)
+#ifdef CONFIG_SPL_VIDEO_TIDSS
+static int setup_dram(void)
+{
+       dram_init();
+       dram_init_banksize();
+       gd->ram_base = CFG_SYS_SDRAM_BASE;
+       gd->ram_top = gd->ram_base + gd->ram_size;
+       gd->relocaddr = gd->ram_top;
+       return 0;
+}
+
+static int video_setup(void)
+{
+       ulong addr;
+       int ret;
+       addr = gd->relocaddr;
+
+       ret = video_reserve(&addr);
+       if (ret)
+               return ret;
+       debug("Reserving %luk for video at: %08lx\n",
+             ((unsigned long)gd->relocaddr - addr) >> 10, addr);
+       gd->relocaddr = addr;
+       return 0;
+}
+
+#endif
+void spl_board_init(void)
+{
+#if defined(CONFIG_SPL_VIDEO_TIDSS)
+       setup_dram();
+       arch_reserve_mmu();
+       video_setup();
+       enable_caches();
+       splash_display();
+#endif
+}
+
 #if defined(CONFIG_K3_AM64_DDRSS)
 static void fixup_ddr_driver_for_ecc(struct spl_image_info *spl_image)
 {
-- 
2.34.1

Reply via email to