public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v2 1/8] moveconfig: Skip binary and ELF files
@ 2020-08-11 17:23 Simon Glass
  2020-08-11 17:23 ` [PATCH v2 2/8] Convert CONFIG_SPLASH_SCREEN et al to Kconfig Simon Glass
                   ` (7 more replies)
  0 siblings, 8 replies; 16+ messages in thread
From: Simon Glass @ 2020-08-11 17:23 UTC (permalink / raw)
  To: u-boot

Add a few more file extensions to the list of files that should not be
processed. This avoids unicode errors, for example.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

(no changes since v1)

 tools/moveconfig.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/moveconfig.py b/tools/moveconfig.py
index 36361f9ed1b..9514d9a00cb 100755
--- a/tools/moveconfig.py
+++ b/tools/moveconfig.py
@@ -666,7 +666,8 @@ def cleanup_headers(configs, options):
             if dirpath == os.path.join('include', 'generated'):
                 continue
             for filename in filenames:
-                if not filename.endswith(('~', '.dts', '.dtsi')):
+                if not filename.endswith(('~', '.dts', '.dtsi', '.bin',
+                                          '.elf')):
                     header_path = os.path.join(dirpath, filename)
                     # This file contains UTF-16 data and no CONFIG symbols
                     if header_path == 'include/video_font_data.h':
-- 
2.28.0.236.gb10cc79966-goog

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 2/8] Convert CONFIG_SPLASH_SCREEN et al to Kconfig
  2020-08-11 17:23 [PATCH v2 1/8] moveconfig: Skip binary and ELF files Simon Glass
@ 2020-08-11 17:23 ` Simon Glass
  2020-08-23 20:02   ` Tom Rini
  2020-08-11 17:23 ` [PATCH v2 3/8] Convert CONFIG_SYS_DEVICE_NULLDEV " Simon Glass
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 16+ messages in thread
From: Simon Glass @ 2020-08-11 17:23 UTC (permalink / raw)
  To: u-boot

This converts the following to Kconfig:
   CONFIG_SPLASH_SCREEN
   CONFIG_SPLASH_SCREEN_ALIGN
   CONFIG_SPLASHIMAGE_GUARD
   CONFIG_SPLASH_SOURCE

Signed-off-by: Simon Glass <sjg@chromium.org>
---

(no changes since v1)

 README                                  | 42 ------------
 configs/apalis_imx6_defconfig           |  2 +
 configs/aristainetos2_defconfig         |  2 +
 configs/aristainetos2b_defconfig        |  2 +
 configs/aristainetos2bcsl_defconfig     |  2 +
 configs/aristainetos2c_defconfig        |  2 +
 configs/cgtqmx6eval_defconfig           |  2 +
 configs/cm_fx6_defconfig                |  2 +
 configs/colibri-imx6ull_defconfig       |  2 +
 configs/colibri_imx6_defconfig          |  2 +
 configs/colibri_imx7_defconfig          |  2 +
 configs/colibri_imx7_emmc_defconfig     |  2 +
 configs/colibri_vf_defconfig            |  1 +
 configs/dms-ba16-1g_defconfig           |  2 +
 configs/dms-ba16_defconfig              |  2 +
 configs/eb_cpu5282_defconfig            |  1 +
 configs/eb_cpu5282_internal_defconfig   |  1 +
 configs/gwventana_emmc_defconfig        |  1 +
 configs/gwventana_gw5904_defconfig      |  1 +
 configs/gwventana_nand_defconfig        |  1 +
 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/imxrt1050-evk_defconfig         |  2 +
 configs/khadas-vim3_defconfig           |  2 +
 configs/khadas-vim3l_defconfig          |  2 +
 configs/libretech-ac_defconfig          |  2 +
 configs/libretech-cc_defconfig          |  2 +
 configs/libretech-s905d-pc_defconfig    |  2 +
 configs/libretech-s912-pc_defconfig     |  2 +
 configs/m53menlo_defconfig              |  4 ++
 configs/marsboard_defconfig             |  2 +
 configs/mx23evk_defconfig               |  1 +
 configs/mx28evk_auart_console_defconfig |  1 +
 configs/mx28evk_defconfig               |  1 +
 configs/mx28evk_nand_defconfig          |  1 +
 configs/mx28evk_spi_defconfig           |  1 +
 configs/mx51evk_defconfig               |  1 +
 configs/mx53loco_defconfig              |  1 +
 configs/mx6cuboxi_defconfig             |  2 +
 configs/mx6qsabrelite_defconfig         |  2 +
 configs/mx6sabreauto_defconfig          |  2 +
 configs/mx6sabresd_defconfig            |  2 +
 configs/mx6sxsabresd_defconfig          |  2 +
 configs/mx6ul_14x14_evk_defconfig       |  2 +
 configs/mx6ul_9x9_evk_defconfig         |  2 +
 configs/mx7dsabresd_defconfig           |  2 +
 configs/mx7dsabresd_qspi_defconfig      |  2 +
 configs/nitrogen6dl2g_defconfig         |  2 +
 configs/nitrogen6dl_defconfig           |  2 +
 configs/nitrogen6q2g_defconfig          |  2 +
 configs/nitrogen6q_defconfig            |  2 +
 configs/nitrogen6s1g_defconfig          |  2 +
 configs/nitrogen6s_defconfig            |  2 +
 configs/nokia_rx51_defconfig            |  1 +
 configs/novena_defconfig                |  1 +
 configs/odroid-c2_defconfig             |  2 +
 configs/odroid-c4_defconfig             |  2 +
 configs/opos6uldev_defconfig            |  3 +
 configs/pico-dwarf-imx6ul_defconfig     |  2 +
 configs/pico-dwarf-imx7d_defconfig      |  2 +
 configs/pico-hobbit-imx6ul_defconfig    |  2 +
 configs/pico-hobbit-imx7d_defconfig     |  2 +
 configs/pico-imx6_defconfig             |  2 +
 configs/pico-imx6ul_defconfig           |  2 +
 configs/pico-imx7d_bl33_defconfig       |  2 +
 configs/pico-imx7d_defconfig            |  2 +
 configs/pico-nymph-imx7d_defconfig      |  2 +
 configs/pico-pi-imx6ul_defconfig        |  2 +
 configs/pico-pi-imx7d_defconfig         |  2 +
 configs/pxm2_defconfig                  |  2 +
 configs/riotboard_defconfig             |  2 +
 configs/riotboard_spl_defconfig         |  2 +
 configs/rut_defconfig                   |  2 +
 configs/s5p4418_nanopi2_defconfig       |  3 +
 configs/sandbox64_defconfig             |  1 +
 configs/sandbox_defconfig               |  1 +
 configs/sandbox_flattree_defconfig      |  1 +
 configs/sandbox_spl_defconfig           |  1 +
 configs/sei510_defconfig                |  2 +
 configs/sei610_defconfig                |  2 +
 configs/stm32f746-disco_defconfig       |  2 +
 configs/stm32f769-disco_defconfig       |  2 +
 configs/tools-only_defconfig            |  1 +
 configs/wandboard_defconfig             |  2 +
 drivers/video/Kconfig                   | 85 +++++++++++++++++++++++++
 include/configs/M52277EVB.h             |  1 -
 include/configs/advantech_dms-ba16.h    |  2 -
 include/configs/apalis_imx6.h           |  2 -
 include/configs/aristainetos2.h         |  2 -
 include/configs/cgtqmx6eval.h           |  2 -
 include/configs/cm_fx6.h                |  2 -
 include/configs/colibri-imx6ull.h       |  2 -
 include/configs/colibri_imx6.h          |  2 -
 include/configs/colibri_imx7.h          |  2 -
 include/configs/colibri_vf.h            |  1 -
 include/configs/eb_cpu5282.h            |  1 -
 include/configs/embestmx6boards.h       |  2 -
 include/configs/gw_ventana.h            |  1 -
 include/configs/imx6-engicam.h          |  2 -
 include/configs/imxrt1050-evk.h         |  2 -
 include/configs/m53menlo.h              |  4 --
 include/configs/meson64.h               |  2 -
 include/configs/mx23evk.h               |  1 -
 include/configs/mx28evk.h               |  1 -
 include/configs/mx51evk.h               |  1 -
 include/configs/mx53loco.h              |  1 -
 include/configs/mx6cuboxi.h             |  2 -
 include/configs/mx6sabre_common.h       |  2 -
 include/configs/mx6sxsabresd.h          |  2 -
 include/configs/mx6ul_14x14_evk.h       |  2 -
 include/configs/mx7dsabresd.h           |  2 -
 include/configs/nitrogen6x.h            |  2 -
 include/configs/nokia_rx51.h            |  1 -
 include/configs/novena.h                |  1 -
 include/configs/opos6uldev.h            |  3 -
 include/configs/pico-imx6.h             |  2 -
 include/configs/pico-imx6ul.h           |  2 -
 include/configs/pico-imx7d.h            |  2 -
 include/configs/pxm2.h                  |  2 -
 include/configs/rut.h                   |  2 -
 include/configs/s5p4418_nanopi2.h       |  4 --
 include/configs/sandbox.h               |  1 -
 include/configs/stm32f746-disco.h       |  2 -
 include/configs/wandboard.h             |  2 -
 scripts/config_whitelist.txt            |  4 --
 127 files changed, 239 insertions(+), 118 deletions(-)

diff --git a/README b/README
index 121dc4966af..6cb0567ba66 100644
--- a/README
+++ b/README
@@ -1250,48 +1250,6 @@ The following options need to be configured:
 		Enables an 'i2c edid' command which can read EDID
 		information over I2C from an attached LCD display.
 
-- Splash Screen Support: CONFIG_SPLASH_SCREEN
-
-		If this option is set, the environment is checked for
-		a variable "splashimage". If found, the usual display
-		of logo, copyright and system information on the LCD
-		is suppressed and the BMP image at the address
-		specified in "splashimage" is loaded instead. The
-		console is redirected to the "nulldev", too. This
-		allows for a "silent" boot where a splash screen is
-		loaded very quickly after power-on.
-
-		CONFIG_SPLASHIMAGE_GUARD
-
-		If this option is set, then U-Boot will prevent the environment
-		variable "splashimage" from being set to a problematic address
-		(see doc/README.displaying-bmps).
-		This option is useful for targets where, due to alignment
-		restrictions, an improperly aligned BMP image will cause a data
-		abort. If you think you will not have problems with unaligned
-		accesses (for example because your toolchain prevents them)
-		there is no need to set this option.
-
-		CONFIG_SPLASH_SCREEN_ALIGN
-
-		If this option is set the splash image can be freely positioned
-		on the screen. Environment variable "splashpos" specifies the
-		position as "x,y". If a positive number is given it is used as
-		number of pixel from left/top. If a negative number is given it
-		is used as number of pixel from right/bottom. You can also
-		specify 'm' for centering the image.
-
-		Example:
-		setenv splashpos m,m
-			=> image at center of screen
-
-		setenv splashpos 30,20
-			=> image at x = 30 and y = 20
-
-		setenv splashpos -10,m
-			=> vertically centered image
-			   at x = dspWidth - bmpWidth - 9
-
 - Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP
 
 		If this option is set, additionally to standard BMP
diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index 22ddbe71ba9..084e36e9296 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -103,4 +103,6 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/aristainetos2_defconfig b/configs/aristainetos2_defconfig
index 18312f921a3..ff309bf0729 100644
--- a/configs/aristainetos2_defconfig
+++ b/configs/aristainetos2_defconfig
@@ -111,5 +111,7 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_DISPLAY=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_IMX_WATCHDOG=y
 # CONFIG_EFI_LOADER is not set
diff --git a/configs/aristainetos2b_defconfig b/configs/aristainetos2b_defconfig
index 82280bc0005..f72323b069e 100644
--- a/configs/aristainetos2b_defconfig
+++ b/configs/aristainetos2b_defconfig
@@ -105,5 +105,7 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_DISPLAY=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_IMX_WATCHDOG=y
 # CONFIG_EFI_LOADER is not set
diff --git a/configs/aristainetos2bcsl_defconfig b/configs/aristainetos2bcsl_defconfig
index 377228306b7..152ef1e9327 100644
--- a/configs/aristainetos2bcsl_defconfig
+++ b/configs/aristainetos2bcsl_defconfig
@@ -105,5 +105,7 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_DISPLAY=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_IMX_WATCHDOG=y
 # CONFIG_EFI_LOADER is not set
diff --git a/configs/aristainetos2c_defconfig b/configs/aristainetos2c_defconfig
index 63914535ea0..47f5a2c1c19 100644
--- a/configs/aristainetos2c_defconfig
+++ b/configs/aristainetos2c_defconfig
@@ -111,5 +111,7 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_DISPLAY=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_IMX_WATCHDOG=y
 # CONFIG_EFI_LOADER is not set
diff --git a/configs/cgtqmx6eval_defconfig b/configs/cgtqmx6eval_defconfig
index 520991869e0..9f589dbea12 100644
--- a/configs/cgtqmx6eval_defconfig
+++ b/configs/cgtqmx6eval_defconfig
@@ -90,4 +90,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 # CONFIG_PANEL is not set
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/cm_fx6_defconfig b/configs/cm_fx6_defconfig
index 3b168180411..4c0b46e46d3 100644
--- a/configs/cm_fx6_defconfig
+++ b/configs/cm_fx6_defconfig
@@ -94,4 +94,6 @@ CONFIG_USB_KEYBOARD=y
 CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
 CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SOURCE=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index a1f6cf1a16d..6079b57958b 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -91,5 +91,7 @@ CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index 9506b91f3d2..f266c0af405 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -101,4 +101,6 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
index ae58505eba1..f33ca11a4ac 100644
--- a/configs/colibri_imx7_defconfig
+++ b/configs/colibri_imx7_defconfig
@@ -91,5 +91,7 @@ CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
diff --git a/configs/colibri_imx7_emmc_defconfig b/configs/colibri_imx7_emmc_defconfig
index c4bcc67ced6..e4b0c99d4f7 100644
--- a/configs/colibri_imx7_emmc_defconfig
+++ b/configs/colibri_imx7_emmc_defconfig
@@ -87,4 +87,6 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
 CONFIG_CI_UDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
index a67e2e29bad..b145b9f6992 100644
--- a/configs/colibri_vf_defconfig
+++ b/configs/colibri_vf_defconfig
@@ -96,6 +96,7 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP8 is not set
 # CONFIG_VIDEO_BPP16 is not set
 CONFIG_VIDEO_FSL_DCU_FB=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
 # CONFIG_EFI_UNICODE_CAPITALIZATION is not set
diff --git a/configs/dms-ba16-1g_defconfig b/configs/dms-ba16-1g_defconfig
index 8dcbf527b2d..ca538e09df9 100644
--- a/configs/dms-ba16-1g_defconfig
+++ b/configs/dms-ba16-1g_defconfig
@@ -60,4 +60,6 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/dms-ba16_defconfig b/configs/dms-ba16_defconfig
index f26f66837fe..50d6db02ebd 100644
--- a/configs/dms-ba16_defconfig
+++ b/configs/dms-ba16_defconfig
@@ -59,4 +59,6 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/eb_cpu5282_defconfig b/configs/eb_cpu5282_defconfig
index 65bc7a0eb6a..339366b2bd5 100644
--- a/configs/eb_cpu5282_defconfig
+++ b/configs/eb_cpu5282_defconfig
@@ -34,3 +34,4 @@ CONFIG_MCFFEC=y
 CONFIG_MII=y
 CONFIG_VIDEO=y
 # CONFIG_CFB_CONSOLE is not set
+CONFIG_SPLASH_SCREEN=y
diff --git a/configs/eb_cpu5282_internal_defconfig b/configs/eb_cpu5282_internal_defconfig
index 4a17ad79540..3c474b48fed 100644
--- a/configs/eb_cpu5282_internal_defconfig
+++ b/configs/eb_cpu5282_internal_defconfig
@@ -33,3 +33,4 @@ CONFIG_MCFFEC=y
 CONFIG_MII=y
 CONFIG_VIDEO=y
 # CONFIG_CFB_CONSOLE is not set
+CONFIG_SPLASH_SCREEN=y
diff --git a/configs/gwventana_emmc_defconfig b/configs/gwventana_emmc_defconfig
index 537cbdf1521..feee7ff271c 100644
--- a/configs/gwventana_emmc_defconfig
+++ b/configs/gwventana_emmc_defconfig
@@ -103,5 +103,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 # CONFIG_PANEL is not set
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
diff --git a/configs/gwventana_gw5904_defconfig b/configs/gwventana_gw5904_defconfig
index 16ac54fb45c..97e0ffdf02f 100644
--- a/configs/gwventana_gw5904_defconfig
+++ b/configs/gwventana_gw5904_defconfig
@@ -107,5 +107,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 # CONFIG_PANEL is not set
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
diff --git a/configs/gwventana_nand_defconfig b/configs/gwventana_nand_defconfig
index 94d42a415fb..9fc52214cb3 100644
--- a/configs/gwventana_nand_defconfig
+++ b/configs/gwventana_nand_defconfig
@@ -107,5 +107,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 # CONFIG_PANEL is not set
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
diff --git a/configs/imx6dl_icore_nand_defconfig b/configs/imx6dl_icore_nand_defconfig
index 9fde251387d..15775c1e083 100644
--- a/configs/imx6dl_icore_nand_defconfig
+++ b/configs/imx6dl_icore_nand_defconfig
@@ -63,3 +63,5 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/imx6q_icore_nand_defconfig b/configs/imx6q_icore_nand_defconfig
index 9fe5c8f058c..47a84515f07 100644
--- a/configs/imx6q_icore_nand_defconfig
+++ b/configs/imx6q_icore_nand_defconfig
@@ -64,3 +64,5 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/imx6qdl_icore_mmc_defconfig b/configs/imx6qdl_icore_mmc_defconfig
index 4f236399e1b..ea9a48c83c9 100644
--- a/configs/imx6qdl_icore_mmc_defconfig
+++ b/configs/imx6qdl_icore_mmc_defconfig
@@ -80,4 +80,6 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_IMX_WATCHDOG=y
diff --git a/configs/imx6qdl_icore_nand_defconfig b/configs/imx6qdl_icore_nand_defconfig
index 9fe5c8f058c..47a84515f07 100644
--- a/configs/imx6qdl_icore_nand_defconfig
+++ b/configs/imx6qdl_icore_nand_defconfig
@@ -64,3 +64,5 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/imxrt1050-evk_defconfig b/configs/imxrt1050-evk_defconfig
index 0139e73fa82..3f7b6704597 100644
--- a/configs/imxrt1050-evk_defconfig
+++ b/configs/imxrt1050-evk_defconfig
@@ -68,6 +68,8 @@ CONFIG_SPL_TIMER=y
 CONFIG_DM_VIDEO=y
 CONFIG_BACKLIGHT_GPIO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_SHA1=y
 CONFIG_SHA256=y
 CONFIG_HEXDUMP=y
diff --git a/configs/khadas-vim3_defconfig b/configs/khadas-vim3_defconfig
index 53a703403bd..a39e0f9c9f5 100644
--- a/configs/khadas-vim3_defconfig
+++ b/configs/khadas-vim3_defconfig
@@ -71,4 +71,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_MESON=y
 CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/khadas-vim3l_defconfig b/configs/khadas-vim3l_defconfig
index 45b52e4ee11..57cc383b9d2 100644
--- a/configs/khadas-vim3l_defconfig
+++ b/configs/khadas-vim3l_defconfig
@@ -71,4 +71,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_MESON=y
 CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/libretech-ac_defconfig b/configs/libretech-ac_defconfig
index 38034883e8a..d5a812c3d81 100644
--- a/configs/libretech-ac_defconfig
+++ b/configs/libretech-ac_defconfig
@@ -80,4 +80,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_MESON=y
 CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/libretech-cc_defconfig b/configs/libretech-cc_defconfig
index 7e388ae57b2..dce861b8aa1 100644
--- a/configs/libretech-cc_defconfig
+++ b/configs/libretech-cc_defconfig
@@ -63,4 +63,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_MESON=y
 CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/libretech-s905d-pc_defconfig b/configs/libretech-s905d-pc_defconfig
index b2b9a48b412..225a21f0ff4 100644
--- a/configs/libretech-s905d-pc_defconfig
+++ b/configs/libretech-s905d-pc_defconfig
@@ -73,4 +73,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_MESON=y
 CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/libretech-s912-pc_defconfig b/configs/libretech-s912-pc_defconfig
index a156610ea3e..005dc0b25e9 100644
--- a/configs/libretech-s912-pc_defconfig
+++ b/configs/libretech-s912-pc_defconfig
@@ -72,4 +72,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_MESON=y
 CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/m53menlo_defconfig b/configs/m53menlo_defconfig
index 43d369c525e..db3a739af13 100644
--- a/configs/m53menlo_defconfig
+++ b/configs/m53menlo_defconfig
@@ -100,5 +100,9 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASHIMAGE_GUARD=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
+CONFIG_SPLASH_SOURCE=y
 CONFIG_WATCHDOG_TIMEOUT_MSECS=8000
 CONFIG_IMX_WATCHDOG=y
diff --git a/configs/marsboard_defconfig b/configs/marsboard_defconfig
index 0d2b9b3cf75..241f2ea125a 100644
--- a/configs/marsboard_defconfig
+++ b/configs/marsboard_defconfig
@@ -49,4 +49,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 # CONFIG_PANEL is not set
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx23evk_defconfig b/configs/mx23evk_defconfig
index 227c6272641..51f4a0fb737 100644
--- a/configs/mx23evk_defconfig
+++ b/configs/mx23evk_defconfig
@@ -38,4 +38,5 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx28evk_auart_console_defconfig b/configs/mx28evk_auart_console_defconfig
index 289342fe2f7..6e0a2377518 100644
--- a/configs/mx28evk_auart_console_defconfig
+++ b/configs/mx28evk_auart_console_defconfig
@@ -57,4 +57,5 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx28evk_defconfig b/configs/mx28evk_defconfig
index bf2442ed817..abfdb26b2df 100644
--- a/configs/mx28evk_defconfig
+++ b/configs/mx28evk_defconfig
@@ -57,4 +57,5 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx28evk_nand_defconfig b/configs/mx28evk_nand_defconfig
index 7b7822e5151..8aecb8bd445 100644
--- a/configs/mx28evk_nand_defconfig
+++ b/configs/mx28evk_nand_defconfig
@@ -58,4 +58,5 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx28evk_spi_defconfig b/configs/mx28evk_spi_defconfig
index 5692baa23cd..c4cba183bf7 100644
--- a/configs/mx28evk_spi_defconfig
+++ b/configs/mx28evk_spi_defconfig
@@ -54,4 +54,5 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx51evk_defconfig b/configs/mx51evk_defconfig
index f626aca910e..343816f89f3 100644
--- a/configs/mx51evk_defconfig
+++ b/configs/mx51evk_defconfig
@@ -38,4 +38,5 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx53loco_defconfig b/configs/mx53loco_defconfig
index 2b17bbc3edc..0d366c29fb2 100644
--- a/configs/mx53loco_defconfig
+++ b/configs/mx53loco_defconfig
@@ -39,4 +39,5 @@ CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_MCS7830=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx6cuboxi_defconfig b/configs/mx6cuboxi_defconfig
index dcc28c576e2..c0800cb0e04 100644
--- a/configs/mx6cuboxi_defconfig
+++ b/configs/mx6cuboxi_defconfig
@@ -77,3 +77,5 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 # CONFIG_PANEL is not set
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/mx6qsabrelite_defconfig b/configs/mx6qsabrelite_defconfig
index 216e21ad79d..91b3c5f0263 100644
--- a/configs/mx6qsabrelite_defconfig
+++ b/configs/mx6qsabrelite_defconfig
@@ -78,3 +78,5 @@ CONFIG_USB_ETH_CDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/mx6sabreauto_defconfig b/configs/mx6sabreauto_defconfig
index 0065a3417d5..386cc54f201 100644
--- a/configs/mx6sabreauto_defconfig
+++ b/configs/mx6sabreauto_defconfig
@@ -104,3 +104,5 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/mx6sabresd_defconfig b/configs/mx6sabresd_defconfig
index 69e11422053..0cae3e01361 100644
--- a/configs/mx6sabresd_defconfig
+++ b/configs/mx6sabresd_defconfig
@@ -113,3 +113,5 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/mx6sxsabresd_defconfig b/configs/mx6sxsabresd_defconfig
index ee498fdbbf6..f02b0ca5188 100644
--- a/configs/mx6sxsabresd_defconfig
+++ b/configs/mx6sxsabresd_defconfig
@@ -73,3 +73,5 @@ CONFIG_USB_STORAGE=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/mx6ul_14x14_evk_defconfig b/configs/mx6ul_14x14_evk_defconfig
index c60e69d445d..412995e99e9 100644
--- a/configs/mx6ul_14x14_evk_defconfig
+++ b/configs/mx6ul_14x14_evk_defconfig
@@ -89,3 +89,5 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/mx6ul_9x9_evk_defconfig b/configs/mx6ul_9x9_evk_defconfig
index 025165787ba..587b71f32b2 100644
--- a/configs/mx6ul_9x9_evk_defconfig
+++ b/configs/mx6ul_9x9_evk_defconfig
@@ -79,3 +79,5 @@ CONFIG_DM_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/mx7dsabresd_defconfig b/configs/mx7dsabresd_defconfig
index 03f311000eb..e4655c222fe 100644
--- a/configs/mx7dsabresd_defconfig
+++ b/configs/mx7dsabresd_defconfig
@@ -85,4 +85,6 @@ CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_ERRNO_STR=y
diff --git a/configs/mx7dsabresd_qspi_defconfig b/configs/mx7dsabresd_qspi_defconfig
index ae90ef5221f..56a8b6bf444 100644
--- a/configs/mx7dsabresd_qspi_defconfig
+++ b/configs/mx7dsabresd_qspi_defconfig
@@ -92,4 +92,6 @@ CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_ERRNO_STR=y
diff --git a/configs/nitrogen6dl2g_defconfig b/configs/nitrogen6dl2g_defconfig
index 3131c51bded..43f9533dafc 100644
--- a/configs/nitrogen6dl2g_defconfig
+++ b/configs/nitrogen6dl2g_defconfig
@@ -79,3 +79,5 @@ CONFIG_USB_ETH_CDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/nitrogen6dl_defconfig b/configs/nitrogen6dl_defconfig
index 86c2c4ff13d..f55de5db570 100644
--- a/configs/nitrogen6dl_defconfig
+++ b/configs/nitrogen6dl_defconfig
@@ -79,3 +79,5 @@ CONFIG_USB_ETH_CDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/nitrogen6q2g_defconfig b/configs/nitrogen6q2g_defconfig
index 16cf5f3e5b1..1e01ba65b94 100644
--- a/configs/nitrogen6q2g_defconfig
+++ b/configs/nitrogen6q2g_defconfig
@@ -81,3 +81,5 @@ CONFIG_USB_ETH_CDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/nitrogen6q_defconfig b/configs/nitrogen6q_defconfig
index ea9098ad68a..f55ce293244 100644
--- a/configs/nitrogen6q_defconfig
+++ b/configs/nitrogen6q_defconfig
@@ -81,3 +81,5 @@ CONFIG_USB_ETH_CDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/nitrogen6s1g_defconfig b/configs/nitrogen6s1g_defconfig
index 8a67b419e0f..9b0b69ba59a 100644
--- a/configs/nitrogen6s1g_defconfig
+++ b/configs/nitrogen6s1g_defconfig
@@ -79,3 +79,5 @@ CONFIG_USB_ETH_CDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/nitrogen6s_defconfig b/configs/nitrogen6s_defconfig
index 71dff7ae857..a5c6235a252 100644
--- a/configs/nitrogen6s_defconfig
+++ b/configs/nitrogen6s_defconfig
@@ -79,3 +79,5 @@ CONFIG_USB_ETH_CDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig
index 3a1b1dae72e..098009e6103 100644
--- a/configs/nokia_rx51_defconfig
+++ b/configs/nokia_rx51_defconfig
@@ -57,4 +57,5 @@ CONFIG_TWL4030_USB=y
 CONFIG_VIDEO=y
 CONFIG_CFB_CONSOLE_ANSI=y
 # CONFIG_VGA_AS_SINGLE_DEVICE is not set
+CONFIG_SPLASH_SCREEN=y
 # CONFIG_GZIP is not set
diff --git a/configs/novena_defconfig b/configs/novena_defconfig
index 33cda1b383c..bf9214ee533 100644
--- a/configs/novena_defconfig
+++ b/configs/novena_defconfig
@@ -77,3 +77,4 @@ CONFIG_USB_ETHER_SMSC95XX=y
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
diff --git a/configs/odroid-c2_defconfig b/configs/odroid-c2_defconfig
index 49a5f0855f1..3c53233dcce 100644
--- a/configs/odroid-c2_defconfig
+++ b/configs/odroid-c2_defconfig
@@ -56,5 +56,7 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_MESON=y
 CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
 CONFIG_SMBIOS_MANUFACTURER="Hardkernel Co., Ltd."
diff --git a/configs/odroid-c4_defconfig b/configs/odroid-c4_defconfig
index 4d112d34901..bf79d7424a9 100644
--- a/configs/odroid-c4_defconfig
+++ b/configs/odroid-c4_defconfig
@@ -58,4 +58,6 @@ CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_MESON=y
 CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/opos6uldev_defconfig b/configs/opos6uldev_defconfig
index ba85932b4dd..2a2e65b447a 100644
--- a/configs/opos6uldev_defconfig
+++ b/configs/opos6uldev_defconfig
@@ -105,5 +105,8 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP8 is not set
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
+CONFIG_SPLASH_SOURCE=y
 CONFIG_OF_LIBFDT_OVERLAY=y
 # CONFIG_EFI_LOADER is not set
diff --git a/configs/pico-dwarf-imx6ul_defconfig b/configs/pico-dwarf-imx6ul_defconfig
index 4f01ae00990..ac2edc097f4 100644
--- a/configs/pico-dwarf-imx6ul_defconfig
+++ b/configs/pico-dwarf-imx6ul_defconfig
@@ -69,3 +69,5 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0525
 CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/pico-dwarf-imx7d_defconfig b/configs/pico-dwarf-imx7d_defconfig
index ff4a409077d..6d1d68e3e54 100644
--- a/configs/pico-dwarf-imx7d_defconfig
+++ b/configs/pico-dwarf-imx7d_defconfig
@@ -78,3 +78,5 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/pico-hobbit-imx6ul_defconfig b/configs/pico-hobbit-imx6ul_defconfig
index f8aaf9b6fa8..195a83c9098 100644
--- a/configs/pico-hobbit-imx6ul_defconfig
+++ b/configs/pico-hobbit-imx6ul_defconfig
@@ -72,3 +72,5 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0525
 CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/pico-hobbit-imx7d_defconfig b/configs/pico-hobbit-imx7d_defconfig
index d522d23b979..db30fd504df 100644
--- a/configs/pico-hobbit-imx7d_defconfig
+++ b/configs/pico-hobbit-imx7d_defconfig
@@ -78,3 +78,5 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/pico-imx6_defconfig b/configs/pico-imx6_defconfig
index 23165443986..33adef86078 100644
--- a/configs/pico-imx6_defconfig
+++ b/configs/pico-imx6_defconfig
@@ -88,3 +88,5 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 # CONFIG_PANEL is not set
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/pico-imx6ul_defconfig b/configs/pico-imx6ul_defconfig
index 5c841c3e4b0..da51e378eb4 100644
--- a/configs/pico-imx6ul_defconfig
+++ b/configs/pico-imx6ul_defconfig
@@ -74,3 +74,5 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0525
 CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/pico-imx7d_bl33_defconfig b/configs/pico-imx7d_bl33_defconfig
index 7be0a0af9d6..e9194f82e9b 100644
--- a/configs/pico-imx7d_bl33_defconfig
+++ b/configs/pico-imx7d_bl33_defconfig
@@ -74,4 +74,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/pico-imx7d_defconfig b/configs/pico-imx7d_defconfig
index e4acb0be57e..a9a1a01ec62 100644
--- a/configs/pico-imx7d_defconfig
+++ b/configs/pico-imx7d_defconfig
@@ -78,3 +78,5 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/pico-nymph-imx7d_defconfig b/configs/pico-nymph-imx7d_defconfig
index ff4a409077d..6d1d68e3e54 100644
--- a/configs/pico-nymph-imx7d_defconfig
+++ b/configs/pico-nymph-imx7d_defconfig
@@ -78,3 +78,5 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/pico-pi-imx6ul_defconfig b/configs/pico-pi-imx6ul_defconfig
index 1d1b8d5bf71..be2b709a4d5 100644
--- a/configs/pico-pi-imx6ul_defconfig
+++ b/configs/pico-pi-imx6ul_defconfig
@@ -72,3 +72,5 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0525
 CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_VIDEO=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/pico-pi-imx7d_defconfig b/configs/pico-pi-imx7d_defconfig
index 34a100da9bc..3768314bd95 100644
--- a/configs/pico-pi-imx7d_defconfig
+++ b/configs/pico-pi-imx7d_defconfig
@@ -78,3 +78,5 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/pxm2_defconfig b/configs/pxm2_defconfig
index e65905548b1..d66a2114d58 100644
--- a/configs/pxm2_defconfig
+++ b/configs/pxm2_defconfig
@@ -104,3 +104,5 @@ CONFIG_VIDEO=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_SYS_CONSOLE_BG_COL=0xff
 CONFIG_SYS_CONSOLE_FG_COL=0x00
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/riotboard_defconfig b/configs/riotboard_defconfig
index e9d0933616d..4b4120c6765 100644
--- a/configs/riotboard_defconfig
+++ b/configs/riotboard_defconfig
@@ -50,4 +50,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 # CONFIG_PANEL is not set
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/riotboard_spl_defconfig b/configs/riotboard_spl_defconfig
index 08150ed1c1b..29629f06bbb 100644
--- a/configs/riotboard_spl_defconfig
+++ b/configs/riotboard_spl_defconfig
@@ -60,5 +60,7 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 # CONFIG_PANEL is not set
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT=y
 CONFIG_SPL_OF_LIBFDT=y
diff --git a/configs/rut_defconfig b/configs/rut_defconfig
index c8527cacaaf..1eefb89760c 100644
--- a/configs/rut_defconfig
+++ b/configs/rut_defconfig
@@ -104,3 +104,5 @@ CONFIG_VIDEO=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_SYS_CONSOLE_BG_COL=0xff
 CONFIG_SYS_CONSOLE_FG_COL=0x00
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/configs/s5p4418_nanopi2_defconfig b/configs/s5p4418_nanopi2_defconfig
index 96a5c668372..3b2169195cf 100644
--- a/configs/s5p4418_nanopi2_defconfig
+++ b/configs/s5p4418_nanopi2_defconfig
@@ -52,4 +52,7 @@ CONFIG_VIDEO_NX=y
 CONFIG_VIDEO_NX_RGB=y
 CONFIG_VIDEO_NX_LVDS=y
 CONFIG_VIDEO_NX_HDMI=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
+CONFIG_SPLASH_SOURCE=y
 CONFIG_ERRNO_STR=y
diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig
index fae36664189..c3ca796d511 100644
--- a/configs/sandbox64_defconfig
+++ b/configs/sandbox64_defconfig
@@ -214,6 +214,7 @@ CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y
 CONFIG_VIDEO_SANDBOX_SDL=y
 CONFIG_OSD=y
 CONFIG_SANDBOX_OSD=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_WDT=y
 CONFIG_WDT_SANDBOX=y
 CONFIG_FS_CBFS=y
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index fe111289049..73a6887fdbc 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -246,6 +246,7 @@ CONFIG_VIDEO_SANDBOX_SDL=y
 CONFIG_VIDEO_DSI_HOST_SANDBOX=y
 CONFIG_OSD=y
 CONFIG_SANDBOX_OSD=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_W1=y
 CONFIG_W1_GPIO=y
 CONFIG_W1_EEPROM=y
diff --git a/configs/sandbox_flattree_defconfig b/configs/sandbox_flattree_defconfig
index 46e9dff9240..f0be706b83e 100644
--- a/configs/sandbox_flattree_defconfig
+++ b/configs/sandbox_flattree_defconfig
@@ -191,6 +191,7 @@ CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y
 CONFIG_VIDEO_SANDBOX_SDL=y
 CONFIG_OSD=y
 CONFIG_SANDBOX_OSD=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_CMD_DHRYSTONE=y
 CONFIG_RSA_VERIFY_WITH_PKEY=y
 CONFIG_TPM=y
diff --git a/configs/sandbox_spl_defconfig b/configs/sandbox_spl_defconfig
index 5ce74ed1cf9..6d8e827aebc 100644
--- a/configs/sandbox_spl_defconfig
+++ b/configs/sandbox_spl_defconfig
@@ -210,6 +210,7 @@ CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y
 CONFIG_VIDEO_SANDBOX_SDL=y
 CONFIG_OSD=y
 CONFIG_SANDBOX_OSD=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_FS_CBFS=y
 CONFIG_FS_CRAMFS=y
 # CONFIG_SPL_USE_TINY_PRINTF is not set
diff --git a/configs/sei510_defconfig b/configs/sei510_defconfig
index 40631d29681..8ee3a138e1d 100644
--- a/configs/sei510_defconfig
+++ b/configs/sei510_defconfig
@@ -78,4 +78,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_MESON=y
 CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/sei610_defconfig b/configs/sei610_defconfig
index 39d36b1be19..43932b4c960 100644
--- a/configs/sei610_defconfig
+++ b/configs/sei610_defconfig
@@ -78,4 +78,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_MESON=y
 CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/stm32f746-disco_defconfig b/configs/stm32f746-disco_defconfig
index 8a54d827aca..4b2b8587f82 100644
--- a/configs/stm32f746-disco_defconfig
+++ b/configs/stm32f746-disco_defconfig
@@ -60,4 +60,6 @@ CONFIG_BACKLIGHT_GPIO=y
 CONFIG_VIDEO_STM32=y
 CONFIG_VIDEO_STM32_MAX_XRES=480
 CONFIG_VIDEO_STM32_MAX_YRES=640
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/stm32f769-disco_defconfig b/configs/stm32f769-disco_defconfig
index 8dd83af20bd..bed5a773e10 100644
--- a/configs/stm32f769-disco_defconfig
+++ b/configs/stm32f769-disco_defconfig
@@ -62,4 +62,6 @@ CONFIG_VIDEO_STM32=y
 CONFIG_VIDEO_STM32_DSI=y
 CONFIG_VIDEO_STM32_MAX_XRES=480
 CONFIG_VIDEO_STM32_MAX_YRES=800
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig
index a853abf2b8f..7ac0b256c52 100644
--- a/configs/tools-only_defconfig
+++ b/configs/tools-only_defconfig
@@ -25,6 +25,7 @@ CONFIG_PCI_SANDBOX=y
 CONFIG_DM_RTC=y
 CONFIG_SOUND=y
 CONFIG_SYSRESET=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
 # CONFIG_VIRTIO_MMIO is not set
 # CONFIG_VIRTIO_PCI is not set
 # CONFIG_VIRTIO_SANDBOX is not set
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
index 5ff1b15fb39..672a9c4a1a2 100644
--- a/configs/wandboard_defconfig
+++ b/configs/wandboard_defconfig
@@ -78,3 +78,5 @@ CONFIG_DM_VIDEO=y
 # CONFIG_VIDEO_BPP32 is not set
 CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 55f4fa42abf..c1deb882c7e 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -854,4 +854,89 @@ config IHS_VIDEO_OUT
 	  out On-screen Display (OSD) used on gdsys FPGAs to control dynamic
 	  textual overlays of the display outputs.
 
+config SPLASH_SCREEN
+	bool "Show a splash-screen image"
+	help
+	  If this option is set, the environment is checked for a variable
+	  "splashimage". If found, the usual display of logo, copyright and
+	  system information on the LCD is suppressed and the BMP image at the
+	  address specified in "splashimage" is loaded instead. The console is
+	  redirected to the "nulldev", too. This allows for a "silent" boot
+	  where a splash screen is loaded very quickly after power-on.
+
+	  The splash_screen_prepare() function is a weak function defined in
+	  common/splash.c. It is called as part of the splash screen display
+	  sequence. It gives the board an opportunity to prepare the splash
+	  image data before it is processed and sent to the frame buffer by
+	  U-Boot. Define your own version to use this feature.
+
+config SPLASHIMAGE_GUARD
+	bool "Support unaligned BMP images"
+	depends on SPLASH_SCREEN
+	help
+	  If this option is set, then U-Boot will prevent the environment
+	  variable "splashimage" from being set to a problematic address
+	  (see doc/README.displaying-bmps).
+
+	  This option is useful for targets where, due to alignment
+	  restrictions, an improperly aligned BMP image will cause a data
+	  abort. If you think you will not have problems with unaligned
+	  accesses (for example because your toolchain prevents them)
+	  there is no need to set this option.
+
+config SPLASH_SCREEN_ALIGN
+	bool "Allow positioning the splash image anywhere on the display"
+	depends on SPLASH_SCREEN
+	help
+	  If this option is set the splash image can be freely positioned
+	  on the screen. Environment variable "splashpos" specifies the
+	  position as "x,y". If a positive number is given it is used as
+	  number of pixel from left/top. If a negative number is given it
+	  is used as number of pixel from right/bottom. You can also
+	  specify 'm' for centering the image.
+
+	  Example:
+	  setenv splashpos m,m
+	  	=> image at center of screen
+
+	  setenv splashpos 30,20
+	  	=> image at x = 30 and y = 20
+
+	  setenv splashpos -10,m
+	  	=> vertically centered image
+	  	   at x = dspWidth - bmpWidth - 9
+
+config SPLASH_SOURCE
+	bool "Control the source of the splash image"
+	depends on SPLASH_SCREEN
+	help
+	  Use the splash_source.c library. This library provides facilities to
+	  declare board specific splash image locations, routines for loading
+	  splash image from supported locations, and a way of controlling the
+	  selected splash location using the "splashsource" environment
+	  variable.
+
+	  This CONFIG works as follows:
+
+	  - If splashsource is set to a supported location name as defined by
+	    board code, use that splash location.
+	  - If splashsource is undefined, use the first splash location as
+	    default.
+	  - If splashsource is set to an unsupported value, do not load a splash
+	    screen.
+
+	  A splash source location can describe either storage with raw data, a
+	  storage formatted with a file system or a FIT image. In case of a
+	  filesystem, the splash screen data is loaded as a file. The name of
+	  the splash screen file can be controlled with the environment variable
+	  "splashfile".
+
+	  To enable loading the splash image from a FIT image, CONFIG_FIT must
+	  be enabled. The FIT image has to start at the 'offset' field address
+	  in the selected splash location. The name of splash image within the
+	  FIT shall be specified by the environment variable "splashfile".
+
+	  In case the environment variable "splashfile" is not defined the
+	  default name 'splash.bmp' will be used.
+
 endmenu
diff --git a/include/configs/M52277EVB.h b/include/configs/M52277EVB.h
index 8a52f809c7c..0428be729b2 100644
--- a/include/configs/M52277EVB.h
+++ b/include/configs/M52277EVB.h
@@ -74,7 +74,6 @@
 
 /* LCD */
 #ifdef CONFIG_CMD_BMP
-#define CONFIG_SPLASH_SCREEN
 #define CONFIG_LCD_LOGO
 #define CONFIG_SHARP_LQ035Q7DH06
 #endif
diff --git a/include/configs/advantech_dms-ba16.h b/include/configs/advantech_dms-ba16.h
index 181af9a3f6d..07d804cbcbf 100644
--- a/include/configs/advantech_dms-ba16.h
+++ b/include/configs/advantech_dms-ba16.h
@@ -198,8 +198,6 @@
 
 /* Framebuffer */
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index f3156b02c9c..9bc70f979ab 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -68,8 +68,6 @@
 /* Framebuffer and LCD */
 #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/aristainetos2.h b/include/configs/aristainetos2.h
index 2674cb8b76b..fd28f44ae31 100644
--- a/include/configs/aristainetos2.h
+++ b/include/configs/aristainetos2.h
@@ -438,8 +438,6 @@
 
 /* Framebuffer */
 /* check this console not needed, after test remove it */
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_IMX_VIDEO_SKIP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/cgtqmx6eval.h b/include/configs/cgtqmx6eval.h
index d2a0f95c0f8..9d0f516b7dc 100644
--- a/include/configs/cgtqmx6eval.h
+++ b/include/configs/cgtqmx6eval.h
@@ -61,8 +61,6 @@
 
 /* Framebuffer */
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/cm_fx6.h b/include/configs/cm_fx6.h
index 7d0f551e4ff..6915dcb6615 100644
--- a/include/configs/cm_fx6.h
+++ b/include/configs/cm_fx6.h
@@ -204,8 +204,6 @@
 /* Display */
 #define CONFIG_IMX_HDMI
 
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SOURCE
 #define CONFIG_VIDEO_BMP_RLE8
 
 #define CONFIG_VIDEO_LOGO
diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
index c80fb96fe2c..2fdcdefa32d 100644
--- a/include/configs/colibri-imx6ull.h
+++ b/include/configs/colibri-imx6ull.h
@@ -153,8 +153,6 @@
 #define CONFIG_VIDEO_MXS
 #define MXS_LCDIF_BASE MX6UL_LCDIF1_BASE_ADDR
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index 7091766fef2..13b03a594e7 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -56,8 +56,6 @@
 /* Framebuffer and LCD */
 #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/colibri_imx7.h b/include/configs/colibri_imx7.h
index 8fff2e15b78..79aa735ccba 100644
--- a/include/configs/colibri_imx7.h
+++ b/include/configs/colibri_imx7.h
@@ -216,8 +216,6 @@
 #if defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO)
 #define CONFIG_VIDEO_MXS
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index 87c37ea0a5f..86d4621f857 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -19,7 +19,6 @@
 #define CONFIG_SKIP_LOWLEVEL_INIT
 
 #ifdef CONFIG_VIDEO_FSL_DCU_FB
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
 #define CONFIG_SYS_FSL_DCU_LE
diff --git a/include/configs/eb_cpu5282.h b/include/configs/eb_cpu5282.h
index 3dab93418a2..db92bbd49a4 100644
--- a/include/configs/eb_cpu5282.h
+++ b/include/configs/eb_cpu5282.h
@@ -27,7 +27,6 @@
 
 #define CONFIG_BOOT_RETRY_TIME	-1
 #define CONFIG_RESET_TO_RETRY
-#define CONFIG_SPLASH_SCREEN
 
 #define CONFIG_HW_WATCHDOG
 
diff --git a/include/configs/embestmx6boards.h b/include/configs/embestmx6boards.h
index 8148453d931..ef4ea9a29bf 100644
--- a/include/configs/embestmx6boards.h
+++ b/include/configs/embestmx6boards.h
@@ -73,8 +73,6 @@
 
 /* Framebuffer */
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/gw_ventana.h b/include/configs/gw_ventana.h
index a666d420e4b..1887525e633 100644
--- a/include/configs/gw_ventana.h
+++ b/include/configs/gw_ventana.h
@@ -122,7 +122,6 @@
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
 #define CONFIG_VIDEO_BMP_LOGO
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_HIDE_LOGO_VERSION  /* Custom config to hide U-boot version */
 
 /* Miscellaneous configurable options */
diff --git a/include/configs/imx6-engicam.h b/include/configs/imx6-engicam.h
index 9bd81e28d67..13cd54a8dc1 100644
--- a/include/configs/imx6-engicam.h
+++ b/include/configs/imx6-engicam.h
@@ -165,8 +165,6 @@
 #ifdef CONFIG_VIDEO_IPUV3
 # define CONFIG_IMX_VIDEO_SKIP
 
-# define CONFIG_SPLASH_SCREEN
-# define CONFIG_SPLASH_SCREEN_ALIGN
 # define CONFIG_BMP_16BPP
 # define CONFIG_VIDEO_BMP_RLE8
 # define CONFIG_VIDEO_LOGO
diff --git a/include/configs/imxrt1050-evk.h b/include/configs/imxrt1050-evk.h
index 4fbcda9581c..559e6880b7d 100644
--- a/include/configs/imxrt1050-evk.h
+++ b/include/configs/imxrt1050-evk.h
@@ -31,8 +31,6 @@
 #ifdef CONFIG_DM_VIDEO
 #define CONFIG_VIDEO_MXS
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/m53menlo.h b/include/configs/m53menlo.h
index 5542ea60174..c15e7d22bc8 100644
--- a/include/configs/m53menlo.h
+++ b/include/configs/m53menlo.h
@@ -128,9 +128,6 @@
  */
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_GZIP
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASHIMAGE_GUARD
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE	(2 << 20)
@@ -138,7 +135,6 @@
 /* LVDS display */
 #define CONFIG_SYS_LDB_CLOCK			33260000
 #define CONFIG_IMX_VIDEO_SKIP
-#define CONFIG_SPLASH_SOURCE
 
 /* IIM Fuses */
 #define CONFIG_FSL_IIM
diff --git a/include/configs/meson64.h b/include/configs/meson64.h
index 50707a31978..c895a24eca3 100644
--- a/include/configs/meson64.h
+++ b/include/configs/meson64.h
@@ -22,8 +22,6 @@
 #define CONFIG_BMP_16BPP
 #define CONFIG_BMP_24BPP
 #define CONFIG_BMP_32BPP
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define STDOUT_CFG "vidconsole,serial"
 #else
 #define STDOUT_CFG "serial"
diff --git a/include/configs/mx23evk.h b/include/configs/mx23evk.h
index cc634d00422..8f170b25297 100644
--- a/include/configs/mx23evk.h
+++ b/include/configs/mx23evk.h
@@ -31,7 +31,6 @@
 /* Framebuffer support */
 #ifdef CONFIG_VIDEO
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_GZIP
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h
index 1a9e6a457af..d65f6a900f9 100644
--- a/include/configs/mx28evk.h
+++ b/include/configs/mx28evk.h
@@ -52,7 +52,6 @@
 /* Framebuffer support */
 #ifdef CONFIG_VIDEO
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_GZIP
diff --git a/include/configs/mx51evk.h b/include/configs/mx51evk.h
index bf4661b4539..58712926b4d 100644
--- a/include/configs/mx51evk.h
+++ b/include/configs/mx51evk.h
@@ -66,7 +66,6 @@
 
 /* Framebuffer and LCD */
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 
diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h
index 97adcd5265b..90d800cd254 100644
--- a/include/configs/mx53loco.h
+++ b/include/configs/mx53loco.h
@@ -177,7 +177,6 @@
 
 /* Framebuffer and LCD */
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 
diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h
index b03129bfc6a..20b757e621b 100644
--- a/include/configs/mx6cuboxi.h
+++ b/include/configs/mx6cuboxi.h
@@ -30,8 +30,6 @@
 
 /* Framebuffer */
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/mx6sabre_common.h b/include/configs/mx6sabre_common.h
index 94a7e0587d5..ecf4681c1f7 100644
--- a/include/configs/mx6sabre_common.h
+++ b/include/configs/mx6sabre_common.h
@@ -170,8 +170,6 @@
 
 /* Framebuffer */
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/mx6sxsabresd.h b/include/configs/mx6sxsabresd.h
index 4a521ec80d9..441ea3d4df5 100644
--- a/include/configs/mx6sxsabresd.h
+++ b/include/configs/mx6sxsabresd.h
@@ -176,8 +176,6 @@
 #ifdef CONFIG_VIDEO
 #define CONFIG_VIDEO_MXS
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/mx6ul_14x14_evk.h b/include/configs/mx6ul_14x14_evk.h
index 6f1e0d878da..68e1db52c73 100644
--- a/include/configs/mx6ul_14x14_evk.h
+++ b/include/configs/mx6ul_14x14_evk.h
@@ -183,8 +183,6 @@
 #if defined(CONFIG_DM_VIDEO)
 #define CONFIG_VIDEO_MXS
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/mx7dsabresd.h b/include/configs/mx7dsabresd.h
index 98fab6b83de..16b8c07f324 100644
--- a/include/configs/mx7dsabresd.h
+++ b/include/configs/mx7dsabresd.h
@@ -141,8 +141,6 @@
 #ifdef CONFIG_VIDEO
 #define CONFIG_VIDEO_MXS
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/nitrogen6x.h b/include/configs/nitrogen6x.h
index 0598224f667..bdc4ffc9102 100644
--- a/include/configs/nitrogen6x.h
+++ b/include/configs/nitrogen6x.h
@@ -58,8 +58,6 @@
 
 /* Framebuffer and LCD */
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_VIDEO_BMP_GZIP
 #define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (6 * 1024 * 1024)
 #define CONFIG_BMP_16BPP
diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h
index cc55777ec05..c86c4294137 100644
--- a/include/configs/nokia_rx51.h
+++ b/include/configs/nokia_rx51.h
@@ -101,7 +101,6 @@
 #define CONFIG_VIDEO_LOGO
 #define VIDEO_FB_16BPP_PIXEL_SWAP
 #define VIDEO_FB_16BPP_WORD_SWAP
-#define CONFIG_SPLASH_SCREEN
 
 /* functions for cfb_console */
 #define VIDEO_KBD_INIT_FCT		rx51_kp_init()
diff --git a/include/configs/novena.h b/include/configs/novena.h
index 62faef0703e..c53532087b4 100644
--- a/include/configs/novena.h
+++ b/include/configs/novena.h
@@ -103,7 +103,6 @@
 
 /* Video output */
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_IMX_HDMI
diff --git a/include/configs/opos6uldev.h b/include/configs/opos6uldev.h
index 69f5e9f96ab..8dfd5bede3c 100644
--- a/include/configs/opos6uldev.h
+++ b/include/configs/opos6uldev.h
@@ -45,9 +45,6 @@
 #ifndef CONFIG_SPL_BUILD
 #ifdef CONFIG_DM_VIDEO
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
-#define CONFIG_SPLASH_SOURCE
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
 #define CONFIG_BMP_16BPP
diff --git a/include/configs/pico-imx6.h b/include/configs/pico-imx6.h
index 7403c544a49..289c1cac669 100644
--- a/include/configs/pico-imx6.h
+++ b/include/configs/pico-imx6.h
@@ -144,8 +144,6 @@
 
 /* Framebuffer */
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/pico-imx6ul.h b/include/configs/pico-imx6ul.h
index d712b638b4c..5211970a83c 100644
--- a/include/configs/pico-imx6ul.h
+++ b/include/configs/pico-imx6ul.h
@@ -147,8 +147,6 @@
 #ifdef CONFIG_VIDEO
 #define CONFIG_VIDEO_MXS
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/pico-imx7d.h b/include/configs/pico-imx7d.h
index f1b2ad4480c..12417dfeded 100644
--- a/include/configs/pico-imx7d.h
+++ b/include/configs/pico-imx7d.h
@@ -143,8 +143,6 @@
 #ifdef CONFIG_DM_VIDEO
 #define CONFIG_VIDEO_MXS
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/pxm2.h b/include/configs/pxm2.h
index ab9c116034f..588eb282a17 100644
--- a/include/configs/pxm2.h
+++ b/include/configs/pxm2.h
@@ -114,8 +114,6 @@
 
 #if defined(CONFIG_VIDEO)
 #define CONFIG_VIDEO_DA8XX
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/rut.h b/include/configs/rut.h
index 0dcdb101a04..7e1e8f428eb 100644
--- a/include/configs/rut.h
+++ b/include/configs/rut.h
@@ -107,8 +107,6 @@
 
 #if defined(CONFIG_VIDEO)
 #define CONFIG_VIDEO_DA8XX
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/include/configs/s5p4418_nanopi2.h b/include/configs/s5p4418_nanopi2.h
index b54d2da9b46..8577729d654 100644
--- a/include/configs/s5p4418_nanopi2.h
+++ b/include/configs/s5p4418_nanopi2.h
@@ -152,8 +152,6 @@
 
 #define CONFIG_VIDEO_LOGO
 
-#define CONFIG_SPLASH_SCREEN
-
 #ifdef CONFIG_VIDEO_LOGO
 
 #ifdef CONFIG_DM_VIDEO
@@ -161,8 +159,6 @@
 #endif
 
 #ifdef CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SOURCE		1
-#define CONFIG_SPLASH_SCREEN_ALIGN	1
 #define SPLASH_FILE			logo.bmp
 #endif
 
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index 6b858112a26..5554313810c 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -81,7 +81,6 @@
 #define LCD_BPP			LCD_COLOR16
 #define CONFIG_LCD_BMP_RLE8
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN_ALIGN
 
 #define CONFIG_KEYBOARD
 
diff --git a/include/configs/stm32f746-disco.h b/include/configs/stm32f746-disco.h
index f7a713dd22a..74abf95ce93 100644
--- a/include/configs/stm32f746-disco.h
+++ b/include/configs/stm32f746-disco.h
@@ -81,8 +81,6 @@
 #define CONFIG_BMP_16BPP
 #define CONFIG_BMP_24BPP
 #define CONFIG_BMP_32BPP
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #endif
 
 #endif /* __CONFIG_H */
diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
index df13e3da537..5506c1a028a 100644
--- a/include/configs/wandboard.h
+++ b/include/configs/wandboard.h
@@ -38,8 +38,6 @@
 
 /* Framebuffer */
 #define CONFIG_VIDEO_BMP_RLE8
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index e2db424fd5e..5c6790bd8df 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1584,10 +1584,6 @@ CONFIG_SPI_HALF_DUPLEX
 CONFIG_SPI_IDLE_VAL
 CONFIG_SPI_LENGTH
 CONFIG_SPI_N25Q256A_RESET
-CONFIG_SPLASHIMAGE_GUARD
-CONFIG_SPLASH_SCREEN
-CONFIG_SPLASH_SCREEN_ALIGN
-CONFIG_SPLASH_SOURCE
 CONFIG_SPLL_FREQ
 CONFIG_SPL_
 CONFIG_SPL_ATMEL_SIZE
-- 
2.28.0.236.gb10cc79966-goog

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 3/8] Convert CONFIG_SYS_DEVICE_NULLDEV to Kconfig
  2020-08-11 17:23 [PATCH v2 1/8] moveconfig: Skip binary and ELF files Simon Glass
  2020-08-11 17:23 ` [PATCH v2 2/8] Convert CONFIG_SPLASH_SCREEN et al to Kconfig Simon Glass
@ 2020-08-11 17:23 ` Simon Glass
  2020-08-23 20:02   ` Tom Rini
  2020-08-11 17:23 ` [PATCH v2 4/8] stdio: Tidy up use of CONFIG_SYS_DEVICE_NULLDEV Simon Glass
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 16+ messages in thread
From: Simon Glass @ 2020-08-11 17:23 UTC (permalink / raw)
  To: u-boot

This converts the following to Kconfig:
   CONFIG_SYS_DEVICE_NULLDEV

Signed-off-by: Simon Glass <sjg@chromium.org>
---

(no changes since v1)

 common/Kconfig                   | 16 ++++++++++++++++
 configs/M5249EVB_defconfig       |  1 +
 configs/colibri_pxa270_defconfig |  1 +
 doc/README.silent                |  2 +-
 include/configs/M5249EVB.h       |  2 --
 include/configs/colibri_pxa270.h |  2 --
 scripts/config_whitelist.txt     |  1 -
 7 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/common/Kconfig b/common/Kconfig
index 62d78c5bd73..5a6d0e0e79b 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -635,6 +635,22 @@ config SYS_STDIO_DEREGISTER
 	  removed (for example a USB keyboard) then this option can be
 	  enabled to ensure this is handled correctly.
 
+config SPL_SYS_STDIO_DEREGISTER
+	bool "Allow deregistering stdio devices in SPL"
+	help
+	  Generally there is no need to deregister stdio devices since they
+	  are never deactivated. But if a stdio device is used which can be
+	  removed (for example a USB keyboard) then this option can be
+	  enabled to ensure this is handled correctly. This is very rarely
+	  needed in SPL.
+
+config SYS_DEVICE_NULLDEV
+	bool "Enable a null device for stdio"
+	help
+	  Enable creation of a "nulldev" stdio device. This allows silent
+	  operation of the console by setting stdout to "nulldev". Enable
+	  this to use a serial console under board control.
+
 endmenu
 
 menu "Logging"
diff --git a/configs/M5249EVB_defconfig b/configs/M5249EVB_defconfig
index d4871c60c70..8f8a4a6bad5 100644
--- a/configs/M5249EVB_defconfig
+++ b/configs/M5249EVB_defconfig
@@ -5,6 +5,7 @@ CONFIG_ENV_SECT_SIZE=0x2000
 CONFIG_TARGET_M5249EVB=y
 CONFIG_DEFAULT_DEVICE_TREE="M5249EVB"
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
+CONFIG_SYS_DEVICE_NULLDEV=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 # CONFIG_CMDLINE_EDITING is not set
 # CONFIG_AUTOBOOT is not set
diff --git a/configs/colibri_pxa270_defconfig b/configs/colibri_pxa270_defconfig
index 89e05608423..2865730b8ff 100644
--- a/configs/colibri_pxa270_defconfig
+++ b/configs/colibri_pxa270_defconfig
@@ -10,6 +10,7 @@ CONFIG_ENV_SECT_SIZE=0x40000
 CONFIG_ENV_VARS_UBOOT_CONFIG=y
 CONFIG_USE_BOOTARGS=y
 CONFIG_BOOTARGS="console=tty0 console=ttyS0,115200"
+CONFIG_SYS_DEVICE_NULLDEV=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 # CONFIG_CMDLINE_EDITING is not set
diff --git a/doc/README.silent b/doc/README.silent
index 6d90a0ec403..00288e03b01 100644
--- a/doc/README.silent
+++ b/doc/README.silent
@@ -19,7 +19,7 @@ The following actions are taken if "silent" is set at boot time:
  - When the console devices have been initialized, "stdout" and
    "stderr" are set to "nulldev", so subsequent messages are
    suppressed automatically. Make sure to enable "nulldev" by
-   #defining CONFIG_SYS_DEVICE_NULLDEV in your board config file.
+   enabling CONFIG_SYS_DEVICE_NULLDEV in your board defconfig file.
 
  - When booting a linux kernel, the "bootargs" are fixed up so that
    the argument "console=" will be in the command line, no matter how
diff --git a/include/configs/M5249EVB.h b/include/configs/M5249EVB.h
index de7132940c1..1a1a1107654 100644
--- a/include/configs/M5249EVB.h
+++ b/include/configs/M5249EVB.h
@@ -31,8 +31,6 @@
  */
 #undef CONFIG_BOOTP_BOOTFILESIZE
 
-#define CONFIG_SYS_DEVICE_NULLDEV	1	/* include nulldev device	*/
-
 #define CONFIG_SYS_LOAD_ADDR		0x200000	/* default load address */
 
 /*
diff --git a/include/configs/colibri_pxa270.h b/include/configs/colibri_pxa270.h
index 4686b8946e3..3dedcdaad28 100644
--- a/include/configs/colibri_pxa270.h
+++ b/include/configs/colibri_pxa270.h
@@ -69,8 +69,6 @@
 #define	CONFIG_BOOTP_BOOTFILESIZE
 #endif
 
-#define	CONFIG_SYS_DEVICE_NULLDEV	1
-
 /*
  * Clock Configuration
  */
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 5c6790bd8df..14d5e4c1757 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -2117,7 +2117,6 @@ CONFIG_SYS_DEBUG_SERVER_FW_IN_NOR
 CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
 CONFIG_SYS_DEFAULT_VIDEO_MODE
 CONFIG_SYS_DEF_EEPROM_ADDR
-CONFIG_SYS_DEVICE_NULLDEV
 CONFIG_SYS_DFU_DATA_BUF_SIZE
 CONFIG_SYS_DFU_MAX_FILE_SIZE
 CONFIG_SYS_DIAG_ADDR
-- 
2.28.0.236.gb10cc79966-goog

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 4/8] stdio: Tidy up use of CONFIG_SYS_DEVICE_NULLDEV
  2020-08-11 17:23 [PATCH v2 1/8] moveconfig: Skip binary and ELF files Simon Glass
  2020-08-11 17:23 ` [PATCH v2 2/8] Convert CONFIG_SPLASH_SCREEN et al to Kconfig Simon Glass
  2020-08-11 17:23 ` [PATCH v2 3/8] Convert CONFIG_SYS_DEVICE_NULLDEV " Simon Glass
@ 2020-08-11 17:23 ` Simon Glass
  2020-08-23 20:02   ` Tom Rini
  2020-08-11 17:23 ` [PATCH v2 5/8] stdio: Drop #ifdefs in the header file Simon Glass
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 16+ messages in thread
From: Simon Glass @ 2020-08-11 17:23 UTC (permalink / raw)
  To: u-boot

Now that this is in Kconfig we can move the logic at the top of the file
to Kconfig, and use if() instead of #if. Update the file with these
changes.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

(no changes since v1)

 common/Kconfig |  1 +
 common/stdio.c | 30 ++++++++++--------------------
 2 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/common/Kconfig b/common/Kconfig
index 5a6d0e0e79b..8f61aa76024 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -646,6 +646,7 @@ config SPL_SYS_STDIO_DEREGISTER
 
 config SYS_DEVICE_NULLDEV
 	bool "Enable a null device for stdio"
+	default y if SPLASH_SCREEN || SYS_STDIO_DEREGISTER
 	help
 	  Enable creation of a "nulldev" stdio device. This allows silent
 	  operation of the console by setting stdout to "nulldev". Enable
diff --git a/common/stdio.c b/common/stdio.c
index 2119204b982..33a795e7bb4 100644
--- a/common/stdio.c
+++ b/common/stdio.c
@@ -31,15 +31,6 @@ static struct stdio_dev devs;
 struct stdio_dev *stdio_devices[] = { NULL, NULL, NULL };
 char *stdio_names[MAX_FILES] = { "stdin", "stdout", "stderr" };
 
-#if defined(CONFIG_SPLASH_SCREEN) && !defined(CONFIG_SYS_DEVICE_NULLDEV)
-#define	CONFIG_SYS_DEVICE_NULLDEV	1
-#endif
-
-#if CONFIG_IS_ENABLED(SYS_STDIO_DEREGISTER)
-#define	CONFIG_SYS_DEVICE_NULLDEV	1
-#endif
-
-#ifdef CONFIG_SYS_DEVICE_NULLDEV
 static void nulldev_putc(struct stdio_dev *dev, const char c)
 {
 	/* nulldev is empty! */
@@ -55,7 +46,6 @@ static int nulldev_input(struct stdio_dev *dev)
 	/* nulldev is empty! */
 	return 0;
 }
-#endif
 
 static void stdio_serial_putc(struct stdio_dev *dev, const char c)
 {
@@ -96,18 +86,18 @@ static void drv_system_init (void)
 	dev.tstc = stdio_serial_tstc;
 	stdio_register (&dev);
 
-#ifdef CONFIG_SYS_DEVICE_NULLDEV
-	memset (&dev, 0, sizeof (dev));
+	if (CONFIG_IS_ENABLED(SYS_DEVICE_NULLDEV)) {
+		memset(&dev, '\0', sizeof(dev));
 
-	strcpy (dev.name, "nulldev");
-	dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT;
-	dev.putc = nulldev_putc;
-	dev.puts = nulldev_puts;
-	dev.getc = nulldev_input;
-	dev.tstc = nulldev_input;
+		strcpy(dev.name, "nulldev");
+		dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT;
+		dev.putc = nulldev_putc;
+		dev.puts = nulldev_puts;
+		dev.getc = nulldev_input;
+		dev.tstc = nulldev_input;
 
-	stdio_register (&dev);
-#endif
+		stdio_register(&dev);
+	}
 }
 
 /**************************************************************************
-- 
2.28.0.236.gb10cc79966-goog

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 5/8] stdio: Drop #ifdefs in the header file
  2020-08-11 17:23 [PATCH v2 1/8] moveconfig: Skip binary and ELF files Simon Glass
                   ` (2 preceding siblings ...)
  2020-08-11 17:23 ` [PATCH v2 4/8] stdio: Tidy up use of CONFIG_SYS_DEVICE_NULLDEV Simon Glass
@ 2020-08-11 17:23 ` Simon Glass
  2020-08-23 20:02   ` Tom Rini
  2020-08-11 17:23 ` [PATCH v2 6/8] stdio: Update to use compiler for Kconfig checks Simon Glass
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 16+ messages in thread
From: Simon Glass @ 2020-08-11 17:23 UTC (permalink / raw)
  To: u-boot

These prevent the use of IS_ENABLED() and are unnecessary. Drop them and
fix a few code-style nits nearby.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

(no changes since v1)

 include/stdio_dev.h | 40 ++++++++++++----------------------------
 1 file changed, 12 insertions(+), 28 deletions(-)

diff --git a/include/stdio_dev.h b/include/stdio_dev.h
index cd0cd601bff..b61c0c6ceff 100644
--- a/include/stdio_dev.h
+++ b/include/stdio_dev.h
@@ -57,7 +57,7 @@ extern char *stdio_names[MAX_FILES];
 /*
  * PROTOTYPES
  */
-int	stdio_register (struct stdio_dev * dev);
+int stdio_register(struct stdio_dev *dev);
 int stdio_register_dev(struct stdio_dev *dev, struct stdio_dev **devp);
 
 /**
@@ -82,35 +82,19 @@ int stdio_add_devices(void);
  */
 int stdio_init(void);
 
-void	stdio_print_current_devices(void);
-#if CONFIG_IS_ENABLED(SYS_STDIO_DEREGISTER)
+void stdio_print_current_devices(void);
 int stdio_deregister(const char *devname, int force);
 int stdio_deregister_dev(struct stdio_dev *dev, int force);
-#endif
-struct list_head* stdio_get_list(void);
-struct stdio_dev* stdio_get_by_name(const char* name);
-struct stdio_dev* stdio_clone(struct stdio_dev *dev);
-
-#ifdef CONFIG_LCD
-int	drv_lcd_init (void);
-#endif
-#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE)
-int	drv_video_init (void);
-#endif
-#ifdef CONFIG_KEYBOARD
-int	drv_keyboard_init (void);
-#endif
-#ifdef CONFIG_USB_TTY
-int	drv_usbtty_init (void);
-#endif
-#ifdef CONFIG_NETCONSOLE
-int	drv_nc_init (void);
-#endif
-#ifdef CONFIG_JTAG_CONSOLE
-int drv_jtag_console_init (void);
-#endif
-#ifdef CONFIG_CBMEM_CONSOLE
+struct list_head *stdio_get_list(void);
+struct stdio_dev *stdio_get_by_name(const char *name);
+struct stdio_dev *stdio_clone(struct stdio_dev *dev);
+
+int drv_lcd_init(void);
+int drv_video_init(void);
+int drv_keyboard_init(void);
+int drv_usbtty_init(void);
+int drv_nc_init(void);
+int drv_jtag_console_init(void);
 int cbmemc_init(void);
-#endif
 
 #endif
-- 
2.28.0.236.gb10cc79966-goog

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 6/8] stdio: Update to use compiler for Kconfig checks
  2020-08-11 17:23 [PATCH v2 1/8] moveconfig: Skip binary and ELF files Simon Glass
                   ` (3 preceding siblings ...)
  2020-08-11 17:23 ` [PATCH v2 5/8] stdio: Drop #ifdefs in the header file Simon Glass
@ 2020-08-11 17:23 ` Simon Glass
  2020-08-23 20:02   ` Tom Rini
  2020-08-11 17:23 ` [PATCH v2 7/8] stdio: Drop brackets around &devs.list Simon Glass
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 16+ messages in thread
From: Simon Glass @ 2020-08-11 17:23 UTC (permalink / raw)
  To: u-boot

Drop use of the preprocessor where possible.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

(no changes since v1)

 common/stdio.c | 172 ++++++++++++++++++++++++-------------------------
 1 file changed, 83 insertions(+), 89 deletions(-)

diff --git a/common/stdio.c b/common/stdio.c
index 33a795e7bb4..1921dc67194 100644
--- a/common/stdio.c
+++ b/common/stdio.c
@@ -18,10 +18,7 @@
 #include <stdio_dev.h>
 #include <serial.h>
 #include <splash.h>
-
-#if defined(CONFIG_SYS_I2C)
 #include <i2c.h>
-#endif
 
 #include <dm/device-internal.h>
 
@@ -109,7 +106,6 @@ struct list_head* stdio_get_list(void)
 	return &(devs.list);
 }
 
-#ifdef CONFIG_DM_VIDEO
 /**
  * stdio_probe_device() - Find a device which provides the given stdio device
  *
@@ -160,7 +156,6 @@ static int stdio_probe_device(const char *name, enum uclass_id id,
 
 	return 0;
 }
-#endif
 
 struct stdio_dev *stdio_get_by_name(const char *name)
 {
@@ -175,22 +170,23 @@ struct stdio_dev *stdio_get_by_name(const char *name)
 		if (strcmp(sdev->name, name) == 0)
 			return sdev;
 	}
-#ifdef CONFIG_DM_VIDEO
-	/*
-	 * We did not find a suitable stdio device. If there is a video
-	 * driver with a name starting with 'vidconsole', we can try probing
-	 * that in the hope that it will produce the required stdio device.
-	 *
-	 * This function is sometimes called with the entire value of
-	 * 'stdout', which may include a list of devices separate by commas.
-	 * Obviously this is not going to work, so we ignore that case. The
-	 * call path in that case is console_init_r() -> search_device() ->
-	 * stdio_get_by_name().
-	 */
-	if (!strncmp(name, "vidconsole", 10) && !strchr(name, ',') &&
-	    !stdio_probe_device(name, UCLASS_VIDEO, &sdev))
-		return sdev;
-#endif
+	if (IS_ENABLED(CONFIG_DM_VIDEO)) {
+		/*
+		 * We did not find a suitable stdio device. If there is a video
+		 * driver with a name starting with 'vidconsole', we can try
+		 * probing that in the hope that it will produce the required
+		 * stdio device.
+		 *
+		 * This function is sometimes called with the entire value of
+		 * 'stdout', which may include a list of devices separate by
+		 * commas. Obviously this is not going to work, so we ignore
+		 * that case. The call path in that case is
+		 * console_init_r() -> search_device() -> stdio_get_by_name()
+		 */
+		if (!strncmp(name, "vidconsole", 10) && !strchr(name, ',') &&
+		    !stdio_probe_device(name, UCLASS_VIDEO, &sdev))
+			return sdev;
+	}
 
 	return NULL;
 }
@@ -234,7 +230,6 @@ int stdio_register(struct stdio_dev *dev)
 /* deregister the device "devname".
  * returns 0 if success, -1 if device is assigned and 1 if devname not found
  */
-#if CONFIG_IS_ENABLED(SYS_STDIO_DEREGISTER)
 int stdio_deregister_dev(struct stdio_dev *dev, int force)
 {
 	int l;
@@ -281,7 +276,6 @@ int stdio_deregister(const char *devname, int force)
 
 	return stdio_deregister_dev(dev, force);
 }
-#endif /* CONFIG_IS_ENABLED(SYS_STDIO_DEREGISTER) */
 
 int stdio_init_tables(void)
 {
@@ -305,87 +299,87 @@ int stdio_init_tables(void)
 
 int stdio_add_devices(void)
 {
-#ifdef CONFIG_DM_KEYBOARD
 	struct udevice *dev;
 	struct uclass *uc;
 	int ret;
 
-	/*
-	 * For now we probe all the devices here. At some point this should be
-	 * done only when the devices are required - e.g. we have a list of
-	 * input devices to start up in the stdin environment variable. That
-	 * work probably makes more sense when stdio itself is converted to
-	 * driver model.
-	 *
-	 * TODO(sjg at chromium.org): Convert changing uclass_first_device() etc.
-	 * to return the device even on error. Then we could use that here.
-	 */
-	ret = uclass_get(UCLASS_KEYBOARD, &uc);
-	if (ret)
-		return ret;
-
-	/* Don't report errors to the caller - assume that they are non-fatal */
-	uclass_foreach_dev(dev, uc) {
-		ret = device_probe(dev);
+	if (IS_ENABLED(CONFIG_DM_KEYBOARD)) {
+		/*
+		 * For now we probe all the devices here. At some point this
+		 * should be done only when the devices are required - e.g. we
+		 * have a list of input devices to start up in the stdin
+		 * environment variable. That work probably makes more sense
+		 * when stdio itself is converted to driver model.
+		 *
+		 * TODO(sjg at chromium.org): Convert changing
+		 * uclass_first_device() etc. to return the device even on
+		 * error. Then we could use that here.
+		 */
+		ret = uclass_get(UCLASS_KEYBOARD, &uc);
 		if (ret)
-			printf("Failed to probe keyboard '%s'\n", dev->name);
+			return ret;
+
+		/*
+		 * Don't report errors to the caller - assume that they are
+		 * non-fatal
+		 */
+		uclass_foreach_dev(dev, uc) {
+			ret = device_probe(dev);
+			if (ret)
+				printf("Failed to probe keyboard '%s'\n",
+				       dev->name);
+		}
 	}
-#endif
 #ifdef CONFIG_SYS_I2C
 	i2c_init_all();
-#else
 #endif
-#ifdef CONFIG_DM_VIDEO
-	/*
-	 * If the console setting is not in environment variables then
-	 * console_init_r() will not be calling iomux_doenv() (which calls
-	 * search_device()). So we will not dynamically add devices by
-	 * calling stdio_probe_device().
-	 *
-	 * So just probe all video devices now so that whichever one is
-	 * required will be available.
-	 */
-#ifndef CONFIG_SYS_CONSOLE_IS_IN_ENV
-	struct udevice *vdev;
-# ifndef CONFIG_DM_KEYBOARD
-	int ret;
-# endif
-
-	for (ret = uclass_first_device(UCLASS_VIDEO, &vdev);
-	     vdev;
-	     ret = uclass_next_device(&vdev))
-		;
-	if (ret)
-		printf("%s: Video device failed (ret=%d)\n", __func__, ret);
-#endif /* !CONFIG_SYS_CONSOLE_IS_IN_ENV */
-#if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
-	splash_display();
-#endif /* CONFIG_SPLASH_SCREEN && CONFIG_CMD_BMP */
-#else
-# if defined(CONFIG_LCD)
-	drv_lcd_init ();
-# endif
-# if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE)
-	drv_video_init ();
-# endif
-#endif /* CONFIG_DM_VIDEO */
+	if (IS_ENABLED(CONFIG_DM_VIDEO)) {
+		/*
+		 * If the console setting is not in environment variables then
+		 * console_init_r() will not be calling iomux_doenv() (which
+		 * calls search_device()). So we will not dynamically add
+		 * devices by calling stdio_probe_device().
+		 *
+		 * So just probe all video devices now so that whichever one is
+		 * required will be available.
+		 */
+		struct udevice *vdev;
+		int ret;
+
+		if (!IS_ENABLED(CONFIG_SYS_CONSOLE_IS_IN_ENV)) {
+			for (ret = uclass_first_device(UCLASS_VIDEO, &vdev);
+			     vdev;
+			     ret = uclass_next_device(&vdev))
+				;
+			if (ret)
+				printf("%s: Video device failed (ret=%d)\n",
+				       __func__, ret);
+		}
+		if (IS_ENABLED(CONFIG_SPLASH_SCREEN) &&
+		    IS_ENABLED(CONFIG_CMD_BMP))
+			splash_display();
+	} else {
+		if (IS_ENABLED(CONFIG_LCD))
+			drv_lcd_init();
+		if (IS_ENABLED(CONFIG_VIDEO) || IS_ENABLED(CONFIG_CFB_CONSOLE))
+			drv_video_init();
+	}
+
 #if defined(CONFIG_KEYBOARD) && !defined(CONFIG_DM_KEYBOARD)
-	drv_keyboard_init ();
+	drv_keyboard_init();
 #endif
-	drv_system_init ();
-	serial_stdio_init ();
+	drv_system_init();
+	serial_stdio_init();
 #ifdef CONFIG_USB_TTY
-	drv_usbtty_init ();
-#endif
-#ifdef CONFIG_NETCONSOLE
-	drv_nc_init ();
+	drv_usbtty_init();
 #endif
+	if (IS_ENABLED(CONFIG_NETCONSOLE))
+		drv_nc_init();
 #ifdef CONFIG_JTAG_CONSOLE
-	drv_jtag_console_init ();
-#endif
-#ifdef CONFIG_CBMEM_CONSOLE
-	cbmemc_init();
+	drv_jtag_console_init();
 #endif
+	if (IS_ENABLED(CONFIG_CBMEM_CONSOLE))
+		cbmemc_init();
 
 	return 0;
 }
-- 
2.28.0.236.gb10cc79966-goog

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 7/8] stdio: Drop brackets around &devs.list
  2020-08-11 17:23 [PATCH v2 1/8] moveconfig: Skip binary and ELF files Simon Glass
                   ` (4 preceding siblings ...)
  2020-08-11 17:23 ` [PATCH v2 6/8] stdio: Update to use compiler for Kconfig checks Simon Glass
@ 2020-08-11 17:23 ` Simon Glass
  2020-08-23 20:03   ` Tom Rini
  2020-08-11 17:23 ` [PATCH v2 8/8] stdio: Tidy up the coding style Simon Glass
  2020-08-23 20:02 ` [PATCH v2 1/8] moveconfig: Skip binary and ELF files Tom Rini
  7 siblings, 1 reply; 16+ messages in thread
From: Simon Glass @ 2020-08-11 17:23 UTC (permalink / raw)
  To: u-boot

These brackets are not needed. Drop them.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

(no changes since v1)

 common/stdio.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/common/stdio.c b/common/stdio.c
index 1921dc67194..d67ea60d6c6 100644
--- a/common/stdio.c
+++ b/common/stdio.c
@@ -103,7 +103,7 @@ static void drv_system_init (void)
  */
 struct list_head* stdio_get_list(void)
 {
-	return &(devs.list);
+	return &devs.list;
 }
 
 /**
@@ -165,7 +165,7 @@ struct stdio_dev *stdio_get_by_name(const char *name)
 	if (!name)
 		return NULL;
 
-	list_for_each(pos, &(devs.list)) {
+	list_for_each(pos, &devs.list) {
 		sdev = list_entry(pos, struct stdio_dev, list);
 		if (strcmp(sdev->name, name) == 0)
 			return sdev;
@@ -215,7 +215,7 @@ int stdio_register_dev(struct stdio_dev *dev, struct stdio_dev **devp)
 	_dev = stdio_clone(dev);
 	if(!_dev)
 		return -ENODEV;
-	list_add_tail(&(_dev->list), &(devs.list));
+	list_add_tail(&_dev->list, &devs.list);
 	if (devp)
 		*devp = _dev;
 
@@ -251,11 +251,11 @@ int stdio_deregister_dev(struct stdio_dev *dev, int force)
 			sizeof(temp_names[l]));
 	}
 
-	list_del(&(dev->list));
+	list_del(&dev->list);
 	free(dev);
 
 	/* reassign Device list */
-	list_for_each(pos, &(devs.list)) {
+	list_for_each(pos, &devs.list) {
 		dev = list_entry(pos, struct stdio_dev, list);
 		for (l=0 ; l< MAX_FILES; l++) {
 			if(strcmp(dev->name, temp_names[l]) == 0)
@@ -292,7 +292,7 @@ int stdio_init_tables(void)
 #endif /* CONFIG_NEEDS_MANUAL_RELOC */
 
 	/* Initialize the list */
-	INIT_LIST_HEAD(&(devs.list));
+	INIT_LIST_HEAD(&devs.list);
 
 	return 0;
 }
-- 
2.28.0.236.gb10cc79966-goog

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 8/8] stdio: Tidy up the coding style
  2020-08-11 17:23 [PATCH v2 1/8] moveconfig: Skip binary and ELF files Simon Glass
                   ` (5 preceding siblings ...)
  2020-08-11 17:23 ` [PATCH v2 7/8] stdio: Drop brackets around &devs.list Simon Glass
@ 2020-08-11 17:23 ` Simon Glass
  2020-08-23 20:03   ` Tom Rini
  2020-08-23 20:02 ` [PATCH v2 1/8] moveconfig: Skip binary and ELF files Tom Rini
  7 siblings, 1 reply; 16+ messages in thread
From: Simon Glass @ 2020-08-11 17:23 UTC (permalink / raw)
  To: u-boot

Bring the coding style in this file up to the current level.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v2:
- Rebase to master

 common/stdio.c      | 37 ++++++++++++++++---------------------
 include/stdio_dev.h |  9 +++++++++
 2 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/common/stdio.c b/common/stdio.c
index d67ea60d6c6..84c36a735c0 100644
--- a/common/stdio.c
+++ b/common/stdio.c
@@ -191,16 +191,15 @@ struct stdio_dev *stdio_get_by_name(const char *name)
 	return NULL;
 }
 
-struct stdio_dev* stdio_clone(struct stdio_dev *dev)
+struct stdio_dev *stdio_clone(struct stdio_dev *dev)
 {
 	struct stdio_dev *_dev;
 
-	if(!dev)
+	if (!dev)
 		return NULL;
 
 	_dev = calloc(1, sizeof(struct stdio_dev));
-
-	if(!_dev)
+	if (!_dev)
 		return NULL;
 
 	memcpy(_dev, dev, sizeof(struct stdio_dev));
@@ -213,7 +212,7 @@ int stdio_register_dev(struct stdio_dev *dev, struct stdio_dev **devp)
 	struct stdio_dev *_dev;
 
 	_dev = stdio_clone(dev);
-	if(!_dev)
+	if (!_dev)
 		return -ENODEV;
 	list_add_tail(&_dev->list, &devs.list);
 	if (devp)
@@ -227,41 +226,38 @@ int stdio_register(struct stdio_dev *dev)
 	return stdio_register_dev(dev, NULL);
 }
 
-/* deregister the device "devname".
- * returns 0 if success, -1 if device is assigned and 1 if devname not found
- */
 int stdio_deregister_dev(struct stdio_dev *dev, int force)
 {
-	int l;
 	struct list_head *pos;
 	char temp_names[3][16];
+	int i;
 
 	/* get stdio devices (ListRemoveItem changes the dev list) */
-	for (l=0 ; l< MAX_FILES; l++) {
-		if (stdio_devices[l] == dev) {
+	for (i = 0 ; i < MAX_FILES; i++) {
+		if (stdio_devices[i] == dev) {
 			if (force) {
-				strcpy(temp_names[l], "nulldev");
+				strcpy(temp_names[i], "nulldev");
 				continue;
 			}
 			/* Device is assigned -> report error */
-			return -1;
+			return -EBUSY;
 		}
-		memcpy (&temp_names[l][0],
-			stdio_devices[l]->name,
-			sizeof(temp_names[l]));
+		memcpy(&temp_names[i][0], stdio_devices[i]->name,
+		       sizeof(temp_names[i]));
 	}
 
 	list_del(&dev->list);
 	free(dev);
 
-	/* reassign Device list */
+	/* reassign device list */
 	list_for_each(pos, &devs.list) {
 		dev = list_entry(pos, struct stdio_dev, list);
-		for (l=0 ; l< MAX_FILES; l++) {
-			if(strcmp(dev->name, temp_names[l]) == 0)
-				stdio_devices[l] = dev;
+		for (i = 0 ; i < MAX_FILES; i++) {
+			if (strcmp(dev->name, temp_names[i]) == 0)
+				stdio_devices[i] = dev;
 		}
 	}
+
 	return 0;
 }
 
@@ -270,7 +266,6 @@ int stdio_deregister(const char *devname, int force)
 	struct stdio_dev *dev;
 
 	dev = stdio_get_by_name(devname);
-
 	if (!dev) /* device not found */
 		return -ENODEV;
 
diff --git a/include/stdio_dev.h b/include/stdio_dev.h
index b61c0c6ceff..48871a6a22b 100644
--- a/include/stdio_dev.h
+++ b/include/stdio_dev.h
@@ -84,6 +84,15 @@ int stdio_init(void);
 
 void stdio_print_current_devices(void);
 int stdio_deregister(const char *devname, int force);
+
+/**
+ * stdio_deregister_dev() - deregister the device "devname".
+ *
+ * @dev: Stdio device to deregister
+ * @force: true to force deregistration even if in use
+ *
+ * returns 0 on success, -EBUSY if device is assigned
+ */
 int stdio_deregister_dev(struct stdio_dev *dev, int force);
 struct list_head *stdio_get_list(void);
 struct stdio_dev *stdio_get_by_name(const char *name);
-- 
2.28.0.236.gb10cc79966-goog

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 1/8] moveconfig: Skip binary and ELF files
  2020-08-11 17:23 [PATCH v2 1/8] moveconfig: Skip binary and ELF files Simon Glass
                   ` (6 preceding siblings ...)
  2020-08-11 17:23 ` [PATCH v2 8/8] stdio: Tidy up the coding style Simon Glass
@ 2020-08-23 20:02 ` Tom Rini
  7 siblings, 0 replies; 16+ messages in thread
From: Tom Rini @ 2020-08-23 20:02 UTC (permalink / raw)
  To: u-boot

On Tue, Aug 11, 2020 at 11:23:34AM -0600, Simon Glass wrote:

> Add a few more file extensions to the list of files that should not be
> processed. This avoids unicode errors, for example.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200823/a6539e0a/attachment.sig>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 2/8] Convert CONFIG_SPLASH_SCREEN et al to Kconfig
  2020-08-11 17:23 ` [PATCH v2 2/8] Convert CONFIG_SPLASH_SCREEN et al to Kconfig Simon Glass
@ 2020-08-23 20:02   ` Tom Rini
  0 siblings, 0 replies; 16+ messages in thread
From: Tom Rini @ 2020-08-23 20:02 UTC (permalink / raw)
  To: u-boot

On Tue, Aug 11, 2020 at 11:23:35AM -0600, Simon Glass wrote:

> This converts the following to Kconfig:
>    CONFIG_SPLASH_SCREEN
>    CONFIG_SPLASH_SCREEN_ALIGN
>    CONFIG_SPLASHIMAGE_GUARD
>    CONFIG_SPLASH_SOURCE
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200823/885a55f0/attachment.sig>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 3/8] Convert CONFIG_SYS_DEVICE_NULLDEV to Kconfig
  2020-08-11 17:23 ` [PATCH v2 3/8] Convert CONFIG_SYS_DEVICE_NULLDEV " Simon Glass
@ 2020-08-23 20:02   ` Tom Rini
  0 siblings, 0 replies; 16+ messages in thread
From: Tom Rini @ 2020-08-23 20:02 UTC (permalink / raw)
  To: u-boot

On Tue, Aug 11, 2020 at 11:23:36AM -0600, Simon Glass wrote:

> This converts the following to Kconfig:
>    CONFIG_SYS_DEVICE_NULLDEV
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200823/8db40987/attachment.sig>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 4/8] stdio: Tidy up use of CONFIG_SYS_DEVICE_NULLDEV
  2020-08-11 17:23 ` [PATCH v2 4/8] stdio: Tidy up use of CONFIG_SYS_DEVICE_NULLDEV Simon Glass
@ 2020-08-23 20:02   ` Tom Rini
  0 siblings, 0 replies; 16+ messages in thread
From: Tom Rini @ 2020-08-23 20:02 UTC (permalink / raw)
  To: u-boot

On Tue, Aug 11, 2020 at 11:23:37AM -0600, Simon Glass wrote:

> Now that this is in Kconfig we can move the logic at the top of the file
> to Kconfig, and use if() instead of #if. Update the file with these
> changes.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200823/ea59dc14/attachment.sig>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 5/8] stdio: Drop #ifdefs in the header file
  2020-08-11 17:23 ` [PATCH v2 5/8] stdio: Drop #ifdefs in the header file Simon Glass
@ 2020-08-23 20:02   ` Tom Rini
  0 siblings, 0 replies; 16+ messages in thread
From: Tom Rini @ 2020-08-23 20:02 UTC (permalink / raw)
  To: u-boot

On Tue, Aug 11, 2020 at 11:23:38AM -0600, Simon Glass wrote:

> These prevent the use of IS_ENABLED() and are unnecessary. Drop them and
> fix a few code-style nits nearby.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200823/dd7eee65/attachment.sig>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 6/8] stdio: Update to use compiler for Kconfig checks
  2020-08-11 17:23 ` [PATCH v2 6/8] stdio: Update to use compiler for Kconfig checks Simon Glass
@ 2020-08-23 20:02   ` Tom Rini
  0 siblings, 0 replies; 16+ messages in thread
From: Tom Rini @ 2020-08-23 20:02 UTC (permalink / raw)
  To: u-boot

On Tue, Aug 11, 2020 at 11:23:39AM -0600, Simon Glass wrote:

> Drop use of the preprocessor where possible.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200823/39eb3046/attachment.sig>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 7/8] stdio: Drop brackets around &devs.list
  2020-08-11 17:23 ` [PATCH v2 7/8] stdio: Drop brackets around &devs.list Simon Glass
@ 2020-08-23 20:03   ` Tom Rini
  0 siblings, 0 replies; 16+ messages in thread
From: Tom Rini @ 2020-08-23 20:03 UTC (permalink / raw)
  To: u-boot

On Tue, Aug 11, 2020 at 11:23:40AM -0600, Simon Glass wrote:

> These brackets are not needed. Drop them.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200823/83f2bb47/attachment.sig>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 8/8] stdio: Tidy up the coding style
  2020-08-11 17:23 ` [PATCH v2 8/8] stdio: Tidy up the coding style Simon Glass
@ 2020-08-23 20:03   ` Tom Rini
  0 siblings, 0 replies; 16+ messages in thread
From: Tom Rini @ 2020-08-23 20:03 UTC (permalink / raw)
  To: u-boot

On Tue, Aug 11, 2020 at 11:23:41AM -0600, Simon Glass wrote:

> Bring the coding style in this file up to the current level.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200823/56886fc5/attachment.sig>

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2020-08-23 20:03 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-08-11 17:23 [PATCH v2 1/8] moveconfig: Skip binary and ELF files Simon Glass
2020-08-11 17:23 ` [PATCH v2 2/8] Convert CONFIG_SPLASH_SCREEN et al to Kconfig Simon Glass
2020-08-23 20:02   ` Tom Rini
2020-08-11 17:23 ` [PATCH v2 3/8] Convert CONFIG_SYS_DEVICE_NULLDEV " Simon Glass
2020-08-23 20:02   ` Tom Rini
2020-08-11 17:23 ` [PATCH v2 4/8] stdio: Tidy up use of CONFIG_SYS_DEVICE_NULLDEV Simon Glass
2020-08-23 20:02   ` Tom Rini
2020-08-11 17:23 ` [PATCH v2 5/8] stdio: Drop #ifdefs in the header file Simon Glass
2020-08-23 20:02   ` Tom Rini
2020-08-11 17:23 ` [PATCH v2 6/8] stdio: Update to use compiler for Kconfig checks Simon Glass
2020-08-23 20:02   ` Tom Rini
2020-08-11 17:23 ` [PATCH v2 7/8] stdio: Drop brackets around &devs.list Simon Glass
2020-08-23 20:03   ` Tom Rini
2020-08-11 17:23 ` [PATCH v2 8/8] stdio: Tidy up the coding style Simon Glass
2020-08-23 20:03   ` Tom Rini
2020-08-23 20:02 ` [PATCH v2 1/8] moveconfig: Skip binary and ELF files Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox