From f0df8777f6d406d5022eaec8ac3ec20f5b12aa3c Mon Sep 17 00:00:00 2001
From: The Going <48602507+The-going@users.noreply.github.com>
Date: Fri, 1 Apr 2022 22:57:09 +0300
Subject: [PATCH] sunxi boot splash

---
 cmd/Kconfig                     |  1 +
 include/config_distro_bootcmd.h |  9 +++++++++
 include/configs/sunxi-common.h  | 30 ++++++++++++++++++++++++++++++
 3 files changed, 40 insertions(+)

diff --git a/cmd/Kconfig b/cmd/Kconfig
index 43ca10f69cc..9051800d6d1 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -2017,6 +2017,7 @@ config CMD_BMP
 	bool "Enable 'bmp' command"
 	depends on VIDEO
 	select BMP
+	default y
 	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/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h
index 2a136b96a6d..fac28ceb155 100644
--- a/include/config_distro_bootcmd.h
+++ b/include/config_distro_bootcmd.h
@@ -492,6 +492,15 @@
 	BOOTENV_SHARED_VIRTIO \
 	BOOTENV_SHARED_EXTENSION \
 	"boot_prefixes=/ /boot/\0" \
+	"splashpos=m,m\0" \
+	"splashimage=66000000\0" \
+	"loadsplash= " \
+		"for prefix in ${boot_prefixes}; do " \
+			"if test -e mmc 0 ${prefix}boot.bmp; then " \
+				"load mmc 0 ${splashimage} ${prefix}boot.bmp; " \
+				"bmp d ${splashimage}; " \
+			"fi; " \
+		"done\0" \
 	"boot_scripts=boot.scr.uimg boot.scr\0" \
 	"boot_script_dhcp=boot.scr.uimg\0" \
 	BOOTENV_BOOT_TARGETS \
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
index d2d70f0fc23..b318baf17c4 100644
--- a/include/configs/sunxi-common.h
+++ b/include/configs/sunxi-common.h
@@ -97,6 +97,30 @@
 #define LOW_LEVEL_SRAM_STACK		0x00008000	/* End of sram */
 #endif
 
+#if defined CONFIG_VIDEO
+#if !defined CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_LOGO
+#endif
+#if !defined CONFIG_SPLASH_SCREEN
+#define CONFIG_SPLASH_SCREEN
+#endif
+#if !defined CONFIG_SPLASH_SCREEN_ALIGN
+#define CONFIG_SPLASH_SCREEN_ALIGN
+#endif
+#if !defined CONFIG_BMP_16BPP
+#define CONFIG_BMP_16BPP
+#endif
+#if !defined CONFIG_BMP_24BPP
+#define CONFIG_BMP_24BPP
+#endif
+#if !defined CONFIG_BMP_32BPP
+#define CONFIG_BMP_32BPP
+#endif
+#if !defined CONFIG_VIDEO_BMP_RLE8
+#define CONFIG_VIDEO_BMP_RLE8
+#endif
+#endif
+
 /* Ethernet support */
 
 #ifdef CONFIG_ARM64
@@ -277,8 +301,14 @@
 #include <config_distro_bootcmd.h>
 
 #ifdef CONFIG_USB_KEYBOARD
+#if defined CONFIG_VIDEO
+#define CONSOLE_STDIN_SETTINGS \
+	"preboot=run loadsplash; usb start\0" \
+	"stdin=serial,usbkbd\0"
+#else
 #define CONSOLE_STDIN_SETTINGS \
 	"stdin=serial,usbkbd\0"
+#endif
 #else
 #define CONSOLE_STDIN_SETTINGS \
 	"stdin=serial\0"
-- 
2.34.1

