[PATCH V6 00/10] Update SPL splashscreen framework for AM62x

This patch series aims at updating SPL splashscreen framework for AM62x.
This patch series depends on https://lore.kernel.org/u-boot/20230504225829.2537050-1-sjg@chromium.org/
This series: - Fixes compilation issues in case splash related configs are not defined in SPL. - Does page table setup, dram initialisation and dcache enabling in one function call spl_enable_dcache. - Allows passing of framebuffer from spl to u-boot, eliminating flicker.
V6: - Add patch [1] from Samuel Dionne-Riel fixing CMD_BMP/BMP dependecy.
V5: - Change A53 SPL DDR layout from ASCII table to tabular format.
V4: - Fix commit message. - Introduce patch defining DDR layout in A53 SPL. - Add Reviewed-by tags.
V3: - Fix spacing issues. - Add Reviewed-by tag. - Replace #if with if in patch common: spl: spl: Remove video driver - Add link to updated memory map.
V2: - Update cover letter. - Fix commit message.
[1]: https://patchwork.ozlabs.org/project/uboot/patch/20230709231810.633044-1-sam...
Nikhil M Jain (9): common: spl: spl: Update stack pointer address arch: arm: mach-k3: common: Return a pointer after setting page table board: ti: am62x: evm: Update function calls for splash screen include: video: Reserve video using blob common: board_f: Pass frame buffer info from SPL to u-boot drivers: video: Kconfig: Add config remove video common: spl: spl: Remove video driver configs: am62x_evm_a53: Add bloblist address doc: board: ti: am62x_sk: Add A53 SPL DDR layout
Samuel Dionne-Riel (1): common: Kconfig: Fix CMD_BMP/BMP dependency
arch/arm/mach-k3/am625_init.c | 1 + arch/arm/mach-k3/common.c | 2 ++ board/ti/am62x/evm.c | 41 +++++++++--------------- cmd/Kconfig | 1 + common/Kconfig | 1 - common/board_f.c | 11 ++++++- common/spl/spl.c | 23 ++++++------- configs/am62x_evm_a53_defconfig | 1 + doc/board/ti/am62x_sk.rst | 57 +++++++++++++++++++++++++++++++++ drivers/video/Kconfig | 12 +++++++ drivers/video/video-uclass.c | 23 +++++++++++++ include/video.h | 9 ++++++ 12 files changed, 143 insertions(+), 39 deletions(-)

At SPL stage when stack is relocated, the stack pointer needs to be updated, the stack pointer may point to stack in on chip memory even though stack is relocated.
Signed-off-by: Nikhil M Jain n-jain1@ti.com Reviewed-by: Tom Rini trini@konsulko.com --- V6: - No change.
V5: - No change.
V4: - No change.
V3: - Add Reviewed-by tag.
V2: - No change.
common/spl/spl.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/common/spl/spl.c b/common/spl/spl.c index d74acec10b..d45dd1c923 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -992,6 +992,7 @@ ulong spl_relocate_stack_gd(void) #endif /* Get stack position: use 8-byte alignment for ABI compliance */ ptr = CONFIG_SPL_STACK_R_ADDR - roundup(sizeof(gd_t),16); + gd->start_addr_sp = ptr; new_gd = (gd_t *)ptr; memcpy(new_gd, (void *)gd, sizeof(gd_t)); #if CONFIG_IS_ENABLED(DM)

In spl_dcache_enable after setting up page table, set gd->relocaddr pointer to tlb_addr, to get next location to reserve memory. Align tlb_addr with 64KB address.
Signed-off-by: Nikhil M Jain n-jain1@ti.com Reviewed-by: Devarsh Thakkar devarsht@ti.com --- V6: - No change.
V5: - No change.
V4: - Add Reviewed-by tag.
V3: - No change.
V2: - Perform 64KB alignment on tlb_addr.
arch/arm/mach-k3/common.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c index bda01527d3..f9cfa66059 100644 --- a/arch/arm/mach-k3/common.c +++ b/arch/arm/mach-k3/common.c @@ -629,8 +629,10 @@ void spl_enable_dcache(void) ram_top = (phys_addr_t) 0x100000000;
gd->arch.tlb_addr = ram_top - gd->arch.tlb_size; + gd->arch.tlb_addr &= ~(0x10000 - 1); debug("TLB table from %08lx to %08lx\n", gd->arch.tlb_addr, gd->arch.tlb_addr + gd->arch.tlb_size); + gd->relocaddr = gd->arch.tlb_addr;
dcache_enable(); #endif

Use spl_dcache_enable, in place of setup_dram, arch_reserve_mmu to set up pagetable, initialise DRAM and enable Dcache to avoid multiple function calls.
Check for CONFIG_SPL_VIDEO in place of CONFIG_SPL_VIDEO_TIDSS to prevent any build failure in case video config is not defined and video related functions are called.
Check for CONFIG_SPL_SPLASH_SCREEN and CONFIG_SPL_BMP before calling splash_display to avoid compilation failure.
Signed-off-by: Nikhil M Jain n-jain1@ti.com --- V6: - No change.
V5: - No change.
V4: - Update commit message as per comments.
V3: - No change.
V2: - Use CONFIG_SPL_VIDEO in place of CONFIG_SPL_VIDEO_TIDSS to reserve video and call splash at SPL. - Check SPL_SPLASH_SCREEN and SPL_BMP before calling splash display.
arch/arm/mach-k3/am625_init.c | 1 + board/ti/am62x/evm.c | 41 +++++++++++++---------------------- 2 files changed, 16 insertions(+), 26 deletions(-)
diff --git a/arch/arm/mach-k3/am625_init.c b/arch/arm/mach-k3/am625_init.c index 787fe92295..0e5d44269e 100644 --- a/arch/arm/mach-k3/am625_init.c +++ b/arch/arm/mach-k3/am625_init.c @@ -214,6 +214,7 @@ void board_init_f(ulong dummy) if (ret) panic("DRAM init failed: %d\n", ret); #endif + spl_enable_dcache(); }
u32 spl_mmc_boot_mode(struct mmc *mmc, const u32 boot_device) diff --git a/board/ti/am62x/evm.c b/board/ti/am62x/evm.c index 34830f445f..d3c1786cd9 100644 --- a/board/ti/am62x/evm.c +++ b/board/ti/am62x/evm.c @@ -59,42 +59,31 @@ 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; + if (CONFIG_IS_ENABLED(VIDEO)) { + 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; + }
- 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 (IS_ENABLED(CONFIG_SPL_SPLASH_SCREEN) && IS_ENABLED(CONFIG_SPL_BMP)) + splash_display(); + }
#if defined(CONFIG_K3_AM64_DDRSS)

Add method to reserve video framebuffer information using blob, received from previous stage.
Signed-off-by: Nikhil M Jain n-jain1@ti.com Reviewed-by: Simon Glass sjg@chromium.org --- V6: - No change.
V5: - No change.
V4: - No change.
V3: - Add Reviewed-by tag.
V2: - Remove #if CONFIG_IS_ENABLED(VIDEO) in video_reserve_from_blob.
drivers/video/video-uclass.c | 11 +++++++++++ include/video.h | 9 +++++++++ 2 files changed, 20 insertions(+)
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c index 1b66a8061a..497ebd9acf 100644 --- a/drivers/video/video-uclass.c +++ b/drivers/video/video-uclass.c @@ -142,6 +142,17 @@ int video_reserve(ulong *addrp) return 0; }
+int video_reserve_from_bloblist(struct video_handoff *ho) +{ + gd->video_bottom = ho->fb; + gd->fb_base = ho->fb; + gd->video_top = ho->fb + ho->size; + debug("Reserving %luk for video using blob at: %08x\n", + ((unsigned long)ho->size) >> 10, (u32)ho->fb); + + return 0; +} + int video_fill(struct udevice *dev, u32 colour) { struct video_priv *priv = dev_get_uclass_priv(dev); diff --git a/include/video.h b/include/video.h index fffaae84e5..bdf1cf7855 100644 --- a/include/video.h +++ b/include/video.h @@ -390,4 +390,13 @@ int bmp_display(ulong addr, int x, int y); */ int bmp_info(ulong addr);
+/* + * video_reserve_from_bloblist()- Reserve frame-buffer memory for video devices + * using blobs. + * + * @ho: video information passed from SPL + * Returns: 0 (always) + */ +int video_reserve_from_bloblist(struct video_handoff *ho); + #endif

U-boot proper can use frame buffer address passed from SPL to reserve the memory area used by framebuffer set in SPL so that splash image set in SPL continues to get displayed while u-boot proper is running.
Put the framebuffer address and size in a bloblist to make them available at u-boot proper, if in u-boot proper CONFIG_VIDEO is defined.
Signed-off-by: Nikhil M Jain n-jain1@ti.com Reviewed-by: Devarsh Thakkar devarsht@ti.com Reviewed-by: Simon Glass sjg@chromium.org --- V6: - No change.
V5: - No change.
V4: - Add Reviewed-by tag.
V3: - Clean up errors appeared in checkpatch.
V2: - Fix commit message. - Revert use of #if.
common/board_f.c | 11 ++++++++++- drivers/video/video-uclass.c | 12 ++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/common/board_f.c b/common/board_f.c index 1688e27071..8e5dbaf06c 100644 --- a/common/board_f.c +++ b/common/board_f.c @@ -411,7 +411,16 @@ __weak int arch_reserve_mmu(void)
static int reserve_video(void) { - if (IS_ENABLED(CONFIG_VIDEO)) { + if (IS_ENABLED(CONFIG_SPL_VIDEO) && spl_phase() > PHASE_SPL && + CONFIG_IS_ENABLED(BLOBLIST)) { + struct video_handoff *ho; + + ho = bloblist_find(BLOBLISTT_U_BOOT_VIDEO, sizeof(*ho)); + if (!ho) + return log_msg_ret("blf", -ENOENT); + video_reserve_from_bloblist(ho); + gd->relocaddr = ho->fb; + } else if (CONFIG_IS_ENABLED(VIDEO)) { ulong addr; int ret;
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c index 497ebd9acf..1a318e2310 100644 --- a/drivers/video/video-uclass.c +++ b/drivers/video/video-uclass.c @@ -6,12 +6,14 @@ #define LOG_CATEGORY UCLASS_VIDEO
#include <common.h> +#include <bloblist.h> #include <console.h> #include <cpu_func.h> #include <dm.h> #include <log.h> #include <malloc.h> #include <mapmem.h> +#include <spl.h> #include <stdio_dev.h> #include <video.h> #include <video_console.h> @@ -139,6 +141,16 @@ int video_reserve(ulong *addrp) debug("Video frame buffers from %lx to %lx\n", gd->video_bottom, gd->video_top);
+ if (spl_phase() == PHASE_SPL && CONFIG_IS_ENABLED(BLOBLIST)) { + struct video_handoff *ho; + + ho = bloblist_add(BLOBLISTT_U_BOOT_VIDEO, sizeof(*ho), 0); + if (!ho) + return log_msg_ret("blf", -ENOENT); + ho->fb = *addrp; + ho->size = size; + } + return 0; }

This is required since user may want to either call the remove method of video driver and reset the display or not call the remove method to continue displaying until next stage.
Signed-off-by: Nikhil M Jain n-jain1@ti.com Reviewed-by: Devarsh Thakkar devarsht@ti.com Reviewed-by: Tom Rini trini@konsulko.com --- V6: - No change.
V5: - No change.
V4: - Add Reviewed-by tag.
V3: - No change.
V2: - Add Reviewed-by tag.
drivers/video/Kconfig | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 4976295071..de64e33c2f 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -833,6 +833,12 @@ config IHS_VIDEO_OUT out On-screen Display (OSD) used on gdsys FPGAs to control dynamic textual overlays of the display outputs.
+config VIDEO_REMOVE + bool "Remove video driver" + help + Use this option to specify if user wants to call remove method of + video driver in u-boot proper stage. + config SPLASH_SCREEN bool "Show a splash-screen image" help @@ -1056,6 +1062,12 @@ config SPL_SYS_WHITE_ON_BLACK This can be better in low-light situations or to reduce eye strain in some cases.
+config SPL_VIDEO_REMOVE + bool "Remove video driver after SPL stage" + help + if this option is enabled video driver will be removed at the end of + SPL stage, beforeloading the next stage. + if SPL_SPLASH_SCREEN
config SPL_SPLASH_SCREEN_ALIGN

Use config SPL_VIDEO_REMOVE to remove video driver at SPL stage before jumping to next stage, in place of CONFIG_SPL_VIDEO, to allow user to remove video if required.
Signed-off-by: Nikhil M Jain n-jain1@ti.com Reviewed-by: Devarsh Thakkar devarsht@ti.com --- V6: - No change.
V5: - No change.
V4: - No change.
V3: - Replace #if defined(CONFIG_SPL_VIDEO_REMOVE) with if (IS_ENABLED(CONFIG_SPL_VIDEO_REMOVE).
V2: - Add Reviewed-by tag.
common/spl/spl.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/common/spl/spl.c b/common/spl/spl.c index d45dd1c923..f09bb97781 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -891,18 +891,18 @@ void board_init_r(gd_t *dummy1, ulong dummy2) debug("Failed to stash bootstage: err=%d\n", ret); #endif
-#if defined(CONFIG_SPL_VIDEO) - struct udevice *dev; - int rc; - - rc = uclass_find_device(UCLASS_VIDEO, 0, &dev); - if (!rc && dev) { - rc = device_remove(dev, DM_REMOVE_NORMAL); - if (rc) - printf("Cannot remove video device '%s' (err=%d)\n", - dev->name, rc); + if (IS_ENABLED(CONFIG_SPL_VIDEO_REMOVE)) { + struct udevice *dev; + int rc; + + rc = uclass_find_device(UCLASS_VIDEO, 0, &dev); + if (!rc && dev) { + rc = device_remove(dev, DM_REMOVE_NORMAL); + if (rc) + printf("Cannot remove video device '%s' (err=%d)\n", + dev->name, rc); + } } -#endif
spl_board_prepare_for_boot(); jump_to_image_no_args(&spl_image);

On Tue, 18 Jul 2023 at 02:57, Nikhil M Jain n-jain1@ti.com wrote:
Use config SPL_VIDEO_REMOVE to remove video driver at SPL stage before jumping to next stage, in place of CONFIG_SPL_VIDEO, to allow user to remove video if required.
Signed-off-by: Nikhil M Jain n-jain1@ti.com Reviewed-by: Devarsh Thakkar devarsht@ti.com
V6:
- No change.
V5:
- No change.
V4:
- No change.
V3:
- Replace #if defined(CONFIG_SPL_VIDEO_REMOVE) with if (IS_ENABLED(CONFIG_SPL_VIDEO_REMOVE).
V2:
- Add Reviewed-by tag.
common/spl/spl.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org

Set bloblist address to 0x80D00000.
Signed-off-by: Nikhil M Jain n-jain1@ti.com Reviewed-by: Devarsh Thakkar devarsht@ti.com --- V6: - No change.
V5: - No change.
V4: - Remove the link to SPL DDR memory layout and add a new patch.
V3: - Add link to updated memory map.
V2: - Add Reviewed-by tag.
configs/am62x_evm_a53_defconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/configs/am62x_evm_a53_defconfig b/configs/am62x_evm_a53_defconfig index 7c3bc184cf..5c572dfb33 100644 --- a/configs/am62x_evm_a53_defconfig +++ b/configs/am62x_evm_a53_defconfig @@ -102,3 +102,4 @@ CONFIG_SYSRESET=y CONFIG_SPL_SYSRESET=y CONFIG_SYSRESET_TI_SCI=y CONFIG_FS_FAT_MAX_CLUSTSIZE=16384 +CONFIG_BLOBLIST_ADDR=0x80D00000

To understand usage of DDR in A53 SPL stage, add a table showing region and space used by major components of SPL.
Signed-off-by: Nikhil M Jain n-jain1@ti.com Reviewed-by: Tom Rini trini@konsulko.com --- V6: - Add Reviewed-by tag.
V5: - Change the layout of A53 SPL DDR into tabular format.
V4(patch introduced): - Document A53 SPL DDR memory layout.
doc/board/ti/am62x_sk.rst | 57 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+)
diff --git a/doc/board/ti/am62x_sk.rst b/doc/board/ti/am62x_sk.rst index 27d7b527c6..8642bdf16d 100644 --- a/doc/board/ti/am62x_sk.rst +++ b/doc/board/ti/am62x_sk.rst @@ -230,6 +230,63 @@ Image formats: | +-------------------+ | +-----------------------+
+A53 SPL DDR Memory Layout +------------------------- + +This provides an overview memory usage in A53 SPL stage. + +.. list-table:: + :widths: 16 16 16 + :header-rows: 1 + + * - Region + - Start Address + - End Address + + * - EMPTY + - 0x80000000 + - 0x80080000 + + * - TEXT BASE + - 0x80080000 + - 0x800d8000 + + * - EMPTY + - 0x800d8000 + - 0x80200000 + + * - BMP IMAGE + - 0x80200000 + - 0x80b77660 + + * - STACK + - 0x80b77660 + - 0x80b77e60 + + * - GD + - 0x80b77e60 + - 0x80b78000 + + * - MALLOC + - 0x80b78000 + - 0x80b80000 + + * - EMPTY + - 0x80b80000 + - 0x80c80000 + + * - BSS + - 0x80c80000 + - 0x80d00000 + + * - BLOBS + - 0x80d00000 + - 0x80d00400 + + * - EMPTY + - 0x80d00400 + - 0x81000000 + Switch Setting for Boot Mode ----------------------------

From: Samuel Dionne-Riel samuel@dionne-riel.com
Using `default y` will not select BMP when CMD_BMP has been enabled, if it was already configured.
By using `select`, if `CMD_BMP` is turned on, it will force the presence of `BMP`.
Fixes: 072b0e16c4 ("common: Kconfig: Add BMP configs") Signed-off-by: Samuel Dionne-Riel samuel@dionne-riel.com Signed-off-by: Nikhil M Jain n-jain1@ti.com --- V6 (patch introduced): - Fix CMD_BMP/BMP dependency.
cmd/Kconfig | 1 + common/Kconfig | 1 - 2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/Kconfig b/cmd/Kconfig index c1941849f9..de7a27a86a 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1989,6 +1989,7 @@ config CMD_2048 config CMD_BMP bool "Enable 'bmp' command" depends on VIDEO + select BMP help This provides a way to obtain information about a BMP-format image and to display it. BMP (which presumably stands for BitMaP) is a diff --git a/common/Kconfig b/common/Kconfig index 42baca20a6..ba08fbfedf 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -1158,7 +1158,6 @@ config IO_TRACE
config BMP bool "Enable bmp image display" - default y if CMD_BMP help Enable bmp functions to display bmp image and get bmp info.

On Tue, 18 Jul 2023 14:27:26 +0530, Nikhil M Jain wrote:
This patch series aims at updating SPL splashscreen framework for AM62x.
This patch series depends on https://lore.kernel.org/u-boot/20230504225829.2537050-1-sjg@chromium.org/
This series:
- Fixes compilation issues in case splash related configs are not defined in SPL.
- Does page table setup, dram initialisation and dcache enabling in one function call spl_enable_dcache.
- Allows passing of framebuffer from spl to u-boot, eliminating flicker.
[...]
Applied to u-boot/master, thanks!

Hi Nikhil,
On Tue, Jul 18, 2023 at 2:27 PM Nikhil M Jain n-jain1@ti.com wrote:
This patch series aims at updating SPL splashscreen framework for AM62x.
This patch series depends on https://lore.kernel.org/u-boot/20230504225829.2537050-1-sjg@chromium.org/
This series:
- Fixes compilation issues in case splash related configs are not defined in SPL.
- Does page table setup, dram initialisation and dcache enabling in one function call spl_enable_dcache.
- Allows passing of framebuffer from spl to u-boot, eliminating flicker.
V6:
- Add patch [1] from Samuel Dionne-Riel fixing CMD_BMP/BMP dependecy.
V5:
- Change A53 SPL DDR layout from ASCII table to tabular format.
V4:
- Fix commit message.
- Introduce patch defining DDR layout in A53 SPL.
- Add Reviewed-by tags.
V3:
- Fix spacing issues.
- Add Reviewed-by tag.
- Replace #if with if in patch common: spl: spl: Remove video driver
- Add link to updated memory map.
V2:
- Update cover letter.
- Fix commit message.
Nikhil M Jain (9): common: spl: spl: Update stack pointer address arch: arm: mach-k3: common: Return a pointer after setting page table board: ti: am62x: evm: Update function calls for splash screen include: video: Reserve video using blob common: board_f: Pass frame buffer info from SPL to u-boot drivers: video: Kconfig: Add config remove video common: spl: spl: Remove video driver configs: am62x_evm_a53: Add bloblist address doc: board: ti: am62x_sk: Add A53 SPL DDR layout
Samuel Dionne-Riel (1): common: Kconfig: Fix CMD_BMP/BMP dependency
I'm trying to use this to print splash in SPL. Look like the SPL video is not initialized in a general way like U-Boot proper does via board_f.c in reserve_video() correct? do you have your board code to initialize the video for SPL?
Jagan.

Hi Jagan,
On 11/01/24 15:50, Jagan Teki wrote:
Hi Nikhil,
On Tue, Jul 18, 2023 at 2:27 PM Nikhil M Jain n-jain1@ti.com wrote:
This patch series aims at updating SPL splashscreen framework for AM62x.
This patch series depends on https://lore.kernel.org/u-boot/20230504225829.2537050-1-sjg@chromium.org/
This series:
- Fixes compilation issues in case splash related configs are not defined in SPL.
- Does page table setup, dram initialisation and dcache enabling in one function call spl_enable_dcache.
- Allows passing of framebuffer from spl to u-boot, eliminating flicker.
V6:
- Add patch [1] from Samuel Dionne-Riel fixing CMD_BMP/BMP dependecy.
V5:
- Change A53 SPL DDR layout from ASCII table to tabular format.
V4:
- Fix commit message.
- Introduce patch defining DDR layout in A53 SPL.
- Add Reviewed-by tags.
V3:
- Fix spacing issues.
- Add Reviewed-by tag.
- Replace #if with if in patch common: spl: spl: Remove video driver
- Add link to updated memory map.
V2:
- Update cover letter.
- Fix commit message.
Nikhil M Jain (9): common: spl: spl: Update stack pointer address arch: arm: mach-k3: common: Return a pointer after setting page table board: ti: am62x: evm: Update function calls for splash screen include: video: Reserve video using blob common: board_f: Pass frame buffer info from SPL to u-boot drivers: video: Kconfig: Add config remove video common: spl: spl: Remove video driver configs: am62x_evm_a53: Add bloblist address doc: board: ti: am62x_sk: Add A53 SPL DDR layout
Samuel Dionne-Riel (1): common: Kconfig: Fix CMD_BMP/BMP dependency
I'm trying to use this to print splash in SPL. Look like the SPL video is not initialized in a general way like U-Boot proper does via board_f.c in reserve_video() correct? do you have your board code to initialize the video for SPL?
Jagan.
Yes we do have a board code to initialize the video for SPL.
The video_setup function in the below patch initializes video driver
https://lore.kernel.org/u-boot/20230718085736.17337-4-n-jain1@ti.com/ Thanks, Nikhil
participants (5)
-
Jagan Teki
-
Nikhil Jain
-
Nikhil M Jain
-
Simon Glass
-
Tom Rini