[U-Boot] [PATCH 0/7] Fix splash logo for imx6 boards

This series enables video logo for DM_VIDEO converted imx6 boards. Before DM_VIDEO conversion display init and the logo drawing was performed by cfb_console driver. After conversion the framebuffer console device is not used, display remains uninitialized. Fix this.
Anatolij Gustschin (7): splash: fix logo drawing if CONFIG_VIDEO_LOGO enabled imx: wandboard: fix splash logo drawing imx: mx6sabresd: fix splash logo drawing imx: apalis_imx6: fix splash logo drawing imx: icore: fix splash logo drawing imx: colibri_imx6: fix splash logo drawing imx: mx6sabreauto: fix splash logo drawing
common/splash.c | 35 ++++++++++++++++++++++++++-- configs/imx6dl_icore_nand_defconfig | 2 ++ configs/imx6q_icore_nand_defconfig | 2 ++ configs/imx6qdl_icore_mmc_defconfig | 2 ++ configs/imx6qdl_icore_nand_defconfig | 2 ++ configs/mx6sabreauto_defconfig | 2 ++ configs/mx6sabresd_defconfig | 2 ++ configs/wandboard_defconfig | 2 ++ include/configs/apalis_imx6.h | 1 + include/configs/colibri_imx6.h | 1 + include/configs/imx6-engicam.h | 1 + include/configs/mx6sabre_common.h | 1 + include/configs/wandboard.h | 1 + 13 files changed, 52 insertions(+), 2 deletions(-)

After mxc_ipuv3 DM_VIDEO conversion board configs with enabled CONFIG_VIDEO_LOGO do not show splash screen (previosly drawing splash screen worked via cfb_console driver with CONFIG_VIDEO_LOGO enabled). Use splash_source library for loading splash images when CONFIG_SPLASH_SOURCE is selected, otherwise prepare built-in video logo for drawing.
Signed-off-by: Anatolij Gustschin agust@denx.de --- common/splash.c | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-)
diff --git a/common/splash.c b/common/splash.c index e15cc847b6..1a5db69a7e 100644 --- a/common/splash.c +++ b/common/splash.c @@ -52,10 +52,41 @@ static struct splash_location default_splash_locations[] = { }, };
+#if defined(CONFIG_DM_VIDEO) && defined(CONFIG_VIDEO_LOGO) + +#include <bmp_logo_data.h> + +static int splash_video_logo_load(void) +{ + char *splashimage; + u32 bmp_load_addr; + + splashimage = env_get("splashimage"); + if (!splashimage) + return -ENOENT; + + bmp_load_addr = simple_strtoul(splashimage, 0, 16); + if (!bmp_load_addr) { + printf("Error: bad 'splashimage' address\n"); + return -EFAULT; + } + + memcpy((void *)bmp_load_addr, bmp_logo_bitmap, + ARRAY_SIZE(bmp_logo_bitmap)); + + return 0; +} +#else +static inline int splash_video_logo_load(void) { return -ENOSYS; } +#endif + __weak int splash_screen_prepare(void) { - return splash_source_load(default_splash_locations, - ARRAY_SIZE(default_splash_locations)); + if (CONFIG_IS_ENABLED(SPLASH_SOURCE)) + return splash_source_load(default_splash_locations, + ARRAY_SIZE(default_splash_locations)); + + return splash_video_logo_load(); }
#ifdef CONFIG_SPLASH_SCREEN_ALIGN

After mxc_ipuv3 DM_VIDEO conversion showing splash image doesn't work. Fix this. Also enable white on black console configuration as it used to be with cfb_console driver.
Signed-off-by: Anatolij Gustschin agust@denx.de --- configs/wandboard_defconfig | 2 ++ include/configs/wandboard.h | 1 + 2 files changed, 3 insertions(+)
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig index f07ec5f651..421f80697e 100644 --- a/configs/wandboard_defconfig +++ b/configs/wandboard_defconfig @@ -37,6 +37,7 @@ CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y CONFIG_CMD_SATA=y CONFIG_CMD_USB=y +CONFIG_CMD_BMP=y CONFIG_CMD_CACHE=y CONFIG_CMD_EXT4_WRITE=y CONFIG_OF_CONTROL=y @@ -66,4 +67,5 @@ CONFIG_DM_THERMAL=y CONFIG_USB=y CONFIG_DM_USB=y CONFIG_DM_VIDEO=y +CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_VIDEO_IPUV3=y diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h index bdcd5e9db3..8faf5f0f78 100644 --- a/include/configs/wandboard.h +++ b/include/configs/wandboard.h @@ -61,6 +61,7 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "console=ttymxc0\0" \ "splashpos=m,m\0" \ + "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \ "fdtfile=undefined\0" \ "fdt_high=0xffffffff\0" \ "initrd_high=0xffffffff\0" \

After mxc_ipuv3 DM_VIDEO conversion showing splash image doesn't work. Fix this. Also enable white on black console configuration as it used to be with cfb_console driver.
Signed-off-by: Anatolij Gustschin agust@denx.de --- configs/mx6sabresd_defconfig | 2 ++ include/configs/mx6sabre_common.h | 1 + 2 files changed, 3 insertions(+)
diff --git a/configs/mx6sabresd_defconfig b/configs/mx6sabresd_defconfig index 2c88fe67c2..a0a6f40583 100644 --- a/configs/mx6sabresd_defconfig +++ b/configs/mx6sabresd_defconfig @@ -47,6 +47,7 @@ CONFIG_CMD_USB_MASS_STORAGE=y CONFIG_CMD_DHCP=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y +CONFIG_CMD_BMP=y CONFIG_CMD_CACHE=y CONFIG_CMD_EXT2=y CONFIG_CMD_EXT4=y @@ -99,4 +100,5 @@ CONFIG_CI_UDC=y CONFIG_USB_HOST_ETHER=y CONFIG_USB_ETHER_ASIX=y CONFIG_DM_VIDEO=y +CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_VIDEO_IPUV3=y diff --git a/include/configs/mx6sabre_common.h b/include/configs/mx6sabre_common.h index c137612b01..d704cda2a6 100644 --- a/include/configs/mx6sabre_common.h +++ b/include/configs/mx6sabre_common.h @@ -62,6 +62,7 @@ "dfu_alt_info=spl raw 0x400\0" \ "fdt_high=0xffffffff\0" \ "initrd_high=0xffffffff\0" \ + "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \ "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \ "mmcpart=1\0" \ "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \

Hi Anatolij,
On Thu, Sep 19, 2019 at 2:30 PM Anatolij Gustschin agust@denx.de wrote:
After mxc_ipuv3 DM_VIDEO conversion showing splash image doesn't work. Fix this. Also enable white on black console configuration as it used to be with cfb_console driver.
Signed-off-by: Anatolij Gustschin agust@denx.de
Thanks for fixing it!
Reported-by: Fabio Estevam festevam@gmail.com Tested-by: Fabio Estevam festevam@gmail.com

Hi Anatolij,
On Thu, Sep 19, 2019 at 3:26 PM Fabio Estevam festevam@gmail.com wrote:
Hi Anatolij,
On Thu, Sep 19, 2019 at 2:30 PM Anatolij Gustschin agust@denx.de wrote:
After mxc_ipuv3 DM_VIDEO conversion showing splash image doesn't work. Fix this. Also enable white on black console configuration as it used to be with cfb_console driver.
Signed-off-by: Anatolij Gustschin agust@denx.de
Thanks for fixing it!
Reported-by: Fabio Estevam festevam@gmail.com Tested-by: Fabio Estevam festevam@gmail.com
One thing I noticed is that now I don't see the U-Boot version string shown in the splashscreen as we used to see before the DM conversion.
Thanks
No

Hi Fabio,
On Thu, 19 Sep 2019 15:30:43 -0300 Fabio Estevam festevam@gmail.com wrote: ...
One thing I noticed is that now I don't see the U-Boot version string shown in the splashscreen as we used to see before the DM conversion.
Thanks for testing! I've sent a patch to address this:
http://patchwork.ozlabs.org/patch/1165305
-- Anatolij

Define "splashimage" variable in the default environment to enable splash screen drawing.
Signed-off-by: Anatolij Gustschin agust@denx.de --- include/configs/apalis_imx6.h | 1 + 1 file changed, 1 insertion(+)
diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h index 4eceb10e8f..c3bc3943f4 100644 --- a/include/configs/apalis_imx6.h +++ b/include/configs/apalis_imx6.h @@ -213,6 +213,7 @@ "load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \ "source ${loadaddr}\0" \ "splashpos=m,m\0" \ + "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \ "vidargs=mxc_hdmi.only_cea=1 " \ "video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 " \ "video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off " \

Define "splashimage" variable in the default environment and enable BMP code. Also configure white on black for video console.
Signed-off-by: Anatolij Gustschin agust@denx.de --- configs/imx6dl_icore_nand_defconfig | 2 ++ configs/imx6q_icore_nand_defconfig | 2 ++ configs/imx6qdl_icore_mmc_defconfig | 2 ++ configs/imx6qdl_icore_nand_defconfig | 2 ++ include/configs/imx6-engicam.h | 1 + 5 files changed, 9 insertions(+)
diff --git a/configs/imx6dl_icore_nand_defconfig b/configs/imx6dl_icore_nand_defconfig index 6eb7c7ab3a..65c540275b 100644 --- a/configs/imx6dl_icore_nand_defconfig +++ b/configs/imx6dl_icore_nand_defconfig @@ -27,6 +27,7 @@ CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y +CONFIG_CMD_BMP=y CONFIG_CMD_CACHE=y CONFIG_CMD_EXT4=y CONFIG_CMD_EXT4_WRITE=y @@ -51,4 +52,5 @@ CONFIG_PINCTRL_IMX6=y CONFIG_MXC_UART=y CONFIG_IMX_THERMAL=y CONFIG_DM_VIDEO=y +CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_VIDEO_IPUV3=y diff --git a/configs/imx6q_icore_nand_defconfig b/configs/imx6q_icore_nand_defconfig index fc990a8add..5671b9a518 100644 --- a/configs/imx6q_icore_nand_defconfig +++ b/configs/imx6q_icore_nand_defconfig @@ -28,6 +28,7 @@ CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y +CONFIG_CMD_BMP=y CONFIG_CMD_CACHE=y CONFIG_CMD_EXT4=y CONFIG_CMD_EXT4_WRITE=y @@ -52,4 +53,5 @@ CONFIG_PINCTRL_IMX6=y CONFIG_MXC_UART=y CONFIG_IMX_THERMAL=y CONFIG_DM_VIDEO=y +CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_VIDEO_IPUV3=y diff --git a/configs/imx6qdl_icore_mmc_defconfig b/configs/imx6qdl_icore_mmc_defconfig index c7544c68c8..f7e2a7e0fb 100644 --- a/configs/imx6qdl_icore_mmc_defconfig +++ b/configs/imx6qdl_icore_mmc_defconfig @@ -37,6 +37,7 @@ CONFIG_CMD_MMC=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y CONFIG_CMD_BOOTCOUNT=y +CONFIG_CMD_BMP=y CONFIG_CMD_CACHE=y CONFIG_CMD_EXT2=y CONFIG_CMD_EXT4=y @@ -67,5 +68,6 @@ CONFIG_DEBUG_UART_MXC=y CONFIG_MXC_UART=y CONFIG_IMX_THERMAL=y CONFIG_DM_VIDEO=y +CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_VIDEO_IPUV3=y CONFIG_IMX_WATCHDOG=y diff --git a/configs/imx6qdl_icore_nand_defconfig b/configs/imx6qdl_icore_nand_defconfig index fc990a8add..5671b9a518 100644 --- a/configs/imx6qdl_icore_nand_defconfig +++ b/configs/imx6qdl_icore_nand_defconfig @@ -28,6 +28,7 @@ CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y +CONFIG_CMD_BMP=y CONFIG_CMD_CACHE=y CONFIG_CMD_EXT4=y CONFIG_CMD_EXT4_WRITE=y @@ -52,4 +53,5 @@ CONFIG_PINCTRL_IMX6=y CONFIG_MXC_UART=y CONFIG_IMX_THERMAL=y CONFIG_DM_VIDEO=y +CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_VIDEO_IPUV3=y diff --git a/include/configs/imx6-engicam.h b/include/configs/imx6-engicam.h index 56b3c7503e..0826195f48 100644 --- a/include/configs/imx6-engicam.h +++ b/include/configs/imx6-engicam.h @@ -37,6 +37,7 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "script=boot.scr\0" \ "splashpos=m,m\0" \ + "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \ "image=uImage\0" \ "fit_image=fit.itb\0" \ "fdt_high=0xffffffff\0" \

Define "splashimage" variable in the default environment to enable splash screen drawing.
Signed-off-by: Anatolij Gustschin agust@denx.de --- include/configs/colibri_imx6.h | 1 + 1 file changed, 1 insertion(+)
diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h index aee9f2f1d0..fa4dc498f5 100644 --- a/include/configs/colibri_imx6.h +++ b/include/configs/colibri_imx6.h @@ -195,6 +195,7 @@ "load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \ "source ${loadaddr}\0" \ "splashpos=m,m\0" \ + "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \ "vidargs=video=mxcfb0:dev=lcd,640x480M@60,if=RGB666 " \ "video=mxcfb1:off fbmem=8M\0 "

Enable BMP code. Also configure white on black for video console.
Signed-off-by: Anatolij Gustschin agust@denx.de --- configs/mx6sabreauto_defconfig | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/configs/mx6sabreauto_defconfig b/configs/mx6sabreauto_defconfig index 516aac1f14..aabba4de14 100644 --- a/configs/mx6sabreauto_defconfig +++ b/configs/mx6sabreauto_defconfig @@ -44,6 +44,7 @@ CONFIG_CMD_USB=y CONFIG_CMD_DHCP=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y +CONFIG_CMD_BMP=y CONFIG_CMD_CACHE=y CONFIG_CMD_EXT2=y CONFIG_CMD_EXT4=y @@ -90,4 +91,5 @@ CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_USB_HOST_ETHER=y CONFIG_USB_ETHER_ASIX=y CONFIG_DM_VIDEO=y +CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_VIDEO_IPUV3=y

On Thu, 19 Sep 2019 19:30:08 +0200 Anatolij Gustschin agust@denx.de wrote: ...
splash: fix logo drawing if CONFIG_VIDEO_LOGO enabled imx: wandboard: fix splash logo drawing imx: mx6sabresd: fix splash logo drawing imx: apalis_imx6: fix splash logo drawing imx: icore: fix splash logo drawing imx: colibri_imx6: fix splash logo drawing imx: mx6sabreauto: fix splash logo drawing
Series applied to u-boot-video/master.
-- Anatolij
participants (2)
-
Anatolij Gustschin
-
Fabio Estevam