diff mbox series

[U-Boot] cmd: add clear screen 'cls' command

Message ID 20181117143021.28188-1-agust@denx.de
State Superseded
Delegated to: Anatolij Gustschin
Headers show
Series [U-Boot] cmd: add clear screen 'cls' command | expand

Commit Message

Anatolij Gustschin Nov. 17, 2018, 2:30 p.m. UTC
Add common clear screen command for configurations
CONFIG_DM_VIDEO, CONFIG_LCD and CONFIG_CFB_CONSOLE.

Remove the existing cls command implementation from
lcd.c code and activate the command for all boards
enabling CONFIG_LCD for compatibility reasons.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 cmd/Kconfig                                   |  7 ++++
 cmd/Makefile                                  |  1 +
 cmd/cls.c                                     | 35 +++++++++++++++++++
 common/lcd.c                                  |  8 -----
 configs/at91sam9261ek_dataflash_cs0_defconfig |  1 +
 configs/at91sam9261ek_dataflash_cs3_defconfig |  1 +
 configs/at91sam9261ek_nandflash_defconfig     |  1 +
 configs/at91sam9263ek_dataflash_cs0_defconfig |  1 +
 configs/at91sam9263ek_dataflash_defconfig     |  1 +
 configs/at91sam9263ek_nandflash_defconfig     |  1 +
 configs/at91sam9263ek_norflash_boot_defconfig |  1 +
 configs/at91sam9263ek_norflash_defconfig      |  1 +
 configs/at91sam9g10ek_dataflash_cs0_defconfig |  1 +
 configs/at91sam9g10ek_dataflash_cs3_defconfig |  1 +
 configs/at91sam9g10ek_nandflash_defconfig     |  1 +
 configs/at91sam9m10g45ek_mmc_defconfig        |  1 +
 configs/at91sam9m10g45ek_nandflash_defconfig  |  1 +
 configs/at91sam9n12ek_mmc_defconfig           |  1 +
 configs/at91sam9n12ek_nandflash_defconfig     |  1 +
 configs/at91sam9n12ek_spiflash_defconfig      |  1 +
 configs/at91sam9rlek_dataflash_defconfig      |  1 +
 configs/at91sam9rlek_mmc_defconfig            |  1 +
 configs/at91sam9rlek_nandflash_defconfig      |  1 +
 configs/brxre1_defconfig                      |  1 +
 configs/cm_t3517_defconfig                    |  1 +
 configs/cm_t35_defconfig                      |  1 +
 configs/peach-pi_defconfig                    |  1 +
 configs/peach-pit_defconfig                   |  1 +
 configs/picosam9g45_defconfig                 |  1 +
 configs/pm9261_defconfig                      |  1 +
 configs/pm9263_defconfig                      |  1 +
 configs/snow_defconfig                        |  1 +
 configs/spring_defconfig                      |  1 +
 configs/zipitz2_defconfig                     |  1 +
 34 files changed, 73 insertions(+), 8 deletions(-)
 create mode 100644 cmd/cls.c

Comments

Patrick DELAUNAY Nov. 19, 2018, 6:09 p.m. UTC | #1
Hi Anatolij
> From: Anatolij Gustschin <agust@denx.de>
> Sent: samedi 17 novembre 2018 15:30
> 
> Add common clear screen command for configurations CONFIG_DM_VIDEO,
> CONFIG_LCD and CONFIG_CFB_CONSOLE.
> 
> Remove the existing cls command implementation from lcd.c code and activate
> the command for all boards enabling CONFIG_LCD for compatibility reasons.
> 
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> ---
>  cmd/Kconfig                                   |  7 ++++
>  cmd/Makefile                                  |  1 +
>  cmd/cls.c                                     | 35 +++++++++++++++++++
>  common/lcd.c                                  |  8 -----
>  configs/at91sam9261ek_dataflash_cs0_defconfig |  1 +
> configs/at91sam9261ek_dataflash_cs3_defconfig |  1 +
>  configs/at91sam9261ek_nandflash_defconfig     |  1 +
>  configs/at91sam9263ek_dataflash_cs0_defconfig |  1 +
>  configs/at91sam9263ek_dataflash_defconfig     |  1 +
>  configs/at91sam9263ek_nandflash_defconfig     |  1 +
>  configs/at91sam9263ek_norflash_boot_defconfig |  1 +
>  configs/at91sam9263ek_norflash_defconfig      |  1 +
>  configs/at91sam9g10ek_dataflash_cs0_defconfig |  1 +
> configs/at91sam9g10ek_dataflash_cs3_defconfig |  1 +
>  configs/at91sam9g10ek_nandflash_defconfig     |  1 +
>  configs/at91sam9m10g45ek_mmc_defconfig        |  1 +
>  configs/at91sam9m10g45ek_nandflash_defconfig  |  1 +
>  configs/at91sam9n12ek_mmc_defconfig           |  1 +
>  configs/at91sam9n12ek_nandflash_defconfig     |  1 +
>  configs/at91sam9n12ek_spiflash_defconfig      |  1 +
>  configs/at91sam9rlek_dataflash_defconfig      |  1 +
>  configs/at91sam9rlek_mmc_defconfig            |  1 +
>  configs/at91sam9rlek_nandflash_defconfig      |  1 +
>  configs/brxre1_defconfig                      |  1 +
>  configs/cm_t3517_defconfig                    |  1 +
>  configs/cm_t35_defconfig                      |  1 +
>  configs/peach-pi_defconfig                    |  1 +
>  configs/peach-pit_defconfig                   |  1 +
>  configs/picosam9g45_defconfig                 |  1 +
>  configs/pm9261_defconfig                      |  1 +
>  configs/pm9263_defconfig                      |  1 +
>  configs/snow_defconfig                        |  1 +
>  configs/spring_defconfig                      |  1 +
>  configs/zipitz2_defconfig                     |  1 +
>  34 files changed, 73 insertions(+), 8 deletions(-)  create mode 100644 cmd/cls.c
> 
> diff --git a/cmd/Kconfig b/cmd/Kconfig
> index d609f9d1c9..6023867007 100644
> --- a/cmd/Kconfig
> +++ b/cmd/Kconfig
> @@ -1372,6 +1372,13 @@ config CMD_CONITRACE
>  	  Enable the 'conitrace' command which displays the codes received
>  	  from the console input as hexadecimal numbers.
> 
> +config CMD_CLS
> +	bool "Enable clear screen command 'cls'"
> +	depends on CFB_CONSOLE || DM_VIDEO || LCD || VIDEO

Just a minor remark, you can also add :

	default y  if !DM_VIDEO

To avoid the defconfig modifications in the patch.
(lcd.o if compiled ifndef CONFIG_DM_VIDEO) / command previously always define in this case)
But you prefer perhaps to have clear CONFIG_CMD configuration in each defconfig.

> +	help
> +	  Enable the 'cls' command which clears the screen contents
> +	  on video frame buffer.
> +
>  config CMD_DISPLAY
>  	bool "Enable the 'display' command, for character displays"
>  	help
> diff --git a/cmd/Makefile b/cmd/Makefile index 12a1330b06..2cb07df3c8
> 100644
> --- a/cmd/Makefile
> +++ b/cmd/Makefile

But Ok for the rest. 
Tested on my board (stm32mp157_ev1 with DM_VIDEO activated)

Regards, Patrick.

Tested-by: Patrick.Delaunay <patrick.delaunay@free.fr>
Anatolij Gustschin Dec. 1, 2018, 9:46 a.m. UTC | #2
Hi Patrick,

On Mon, 19 Nov 2018 18:09:12 +0000
Patrick DELAUNAY patrick.delaunay@st.com wrote:
...
> > +config CMD_CLS
> > +	bool "Enable clear screen command 'cls'"
> > +	depends on CFB_CONSOLE || DM_VIDEO || LCD || VIDEO  
> 
> Just a minor remark, you can also add :
> 
> 	default y  if !DM_VIDEO

There are also a few boards with DM_VIDEO and LCD both enabled:

$ git grep CONFIG_LCD `git grep DM_VIDEO=y configs/ | awk -F : '{print $1}'`
configs/peach-pi_defconfig:CONFIG_LCD=y
configs/peach-pit_defconfig:CONFIG_LCD=y
configs/snow_defconfig:CONFIG_LCD=y
configs/spring_defconfig:CONFIG_LCD=y

so using y if !DM_VIDEO would disable the command for them.

> To avoid the defconfig modifications in the patch.
> (lcd.o if compiled ifndef CONFIG_DM_VIDEO) / command previously always define in this case)
> But you prefer perhaps to have clear CONFIG_CMD configuration in each defconfig.

I'd like to reduce the defconfig size, so v2 patch uses
"default y if LCD" to auto-select the command (compatibility for
existing CONFIG_LCD users). For other configurations the command
should be enabled in defconfig by users, when needed.

...
> But Ok for the rest. 
> Tested on my board (stm32mp157_ev1 with DM_VIDEO activated)
> 
> Regards, Patrick.
> 
> Tested-by: Patrick.Delaunay <patrick.delaunay@free.fr>

Thanks for testing it!

--
Anatolij
diff mbox series

Patch

diff --git a/cmd/Kconfig b/cmd/Kconfig
index d609f9d1c9..6023867007 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1372,6 +1372,13 @@  config CMD_CONITRACE
 	  Enable the 'conitrace' command which displays the codes received
 	  from the console input as hexadecimal numbers.
 
+config CMD_CLS
+	bool "Enable clear screen command 'cls'"
+	depends on CFB_CONSOLE || DM_VIDEO || LCD || VIDEO
+	help
+	  Enable the 'cls' command which clears the screen contents
+	  on video frame buffer.
+
 config CMD_DISPLAY
 	bool "Enable the 'display' command, for character displays"
 	help
diff --git a/cmd/Makefile b/cmd/Makefile
index 12a1330b06..2cb07df3c8 100644
--- a/cmd/Makefile
+++ b/cmd/Makefile
@@ -32,6 +32,7 @@  obj-$(CONFIG_CMD_BTRFS) += btrfs.o
 obj-$(CONFIG_CMD_CACHE) += cache.o
 obj-$(CONFIG_CMD_CBFS) += cbfs.o
 obj-$(CONFIG_CMD_CLK) += clk.o
+obj-$(CONFIG_CMD_CLS) += cls.o
 obj-$(CONFIG_CMD_CONFIG) += config.o
 obj-$(CONFIG_CMD_CONITRACE) += conitrace.o
 obj-$(CONFIG_CMD_CONSOLE) += console.o
diff --git a/cmd/cls.c b/cmd/cls.c
new file mode 100644
index 0000000000..f1ce6e8df1
--- /dev/null
+++ b/cmd/cls.c
@@ -0,0 +1,35 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2018
+ * DENX Software Engineering, Anatolij Gustschin <agust@denx.de>
+ *
+ * cls - clear screen command
+ */
+#include <common.h>
+#include <command.h>
+#include <dm.h>
+#include <lcd.h>
+#include <video.h>
+
+static int do_video_clear(cmd_tbl_t *cmdtp, int flag, int argc,
+			  char *const argv[])
+{
+#if defined(CONFIG_DM_VIDEO)
+	struct udevice *dev;
+
+	if (uclass_first_device_err(UCLASS_VIDEO, &dev))
+		return CMD_RET_FAILURE;
+
+	if (video_clear(dev))
+		return CMD_RET_FAILURE;
+#elif defined(CONFIG_CFB_CONSOLE)
+	video_clear();
+#elif defined(CONFIG_LCD)
+	lcd_clear();
+#else
+	return CMD_RET_FAILURE;
+#endif
+	return CMD_RET_SUCCESS;
+}
+
+U_BOOT_CMD(cls,	1, 1, do_video_clear, "clear screen", "");
diff --git a/common/lcd.c b/common/lcd.c
index 2e2bef3848..74407a17e9 100644
--- a/common/lcd.c
+++ b/common/lcd.c
@@ -242,14 +242,6 @@  void lcd_clear(void)
 	lcd_sync();
 }
 
-static int do_lcd_clear(cmd_tbl_t *cmdtp, int flag, int argc,
-			char *const argv[])
-{
-	lcd_clear();
-	return 0;
-}
-U_BOOT_CMD(cls,	1, 1, do_lcd_clear, "clear screen", "");
-
 static int lcd_init(void *lcdbase)
 {
 	debug("[LCD] Initializing LCD frambuffer at %p\n", lcdbase);
diff --git a/configs/at91sam9261ek_dataflash_cs0_defconfig b/configs/at91sam9261ek_dataflash_cs0_defconfig
index 431cf280eb..3c73df88fd 100644
--- a/configs/at91sam9261ek_dataflash_cs0_defconfig
+++ b/configs/at91sam9261ek_dataflash_cs0_defconfig
@@ -17,6 +17,7 @@  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_NAND=y
diff --git a/configs/at91sam9261ek_dataflash_cs3_defconfig b/configs/at91sam9261ek_dataflash_cs3_defconfig
index e5efad80de..4360fa8158 100644
--- a/configs/at91sam9261ek_dataflash_cs3_defconfig
+++ b/configs/at91sam9261ek_dataflash_cs3_defconfig
@@ -17,6 +17,7 @@  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_NAND=y
diff --git a/configs/at91sam9261ek_nandflash_defconfig b/configs/at91sam9261ek_nandflash_defconfig
index f6f3288951..d557c933ab 100644
--- a/configs/at91sam9261ek_nandflash_defconfig
+++ b/configs/at91sam9261ek_nandflash_defconfig
@@ -17,6 +17,7 @@  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_NAND=y
diff --git a/configs/at91sam9263ek_dataflash_cs0_defconfig b/configs/at91sam9263ek_dataflash_cs0_defconfig
index a19f309c4a..898959a644 100644
--- a/configs/at91sam9263ek_dataflash_cs0_defconfig
+++ b/configs/at91sam9263ek_dataflash_cs0_defconfig
@@ -19,6 +19,7 @@  CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_MMC=y
diff --git a/configs/at91sam9263ek_dataflash_defconfig b/configs/at91sam9263ek_dataflash_defconfig
index a19f309c4a..898959a644 100644
--- a/configs/at91sam9263ek_dataflash_defconfig
+++ b/configs/at91sam9263ek_dataflash_defconfig
@@ -19,6 +19,7 @@  CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_MMC=y
diff --git a/configs/at91sam9263ek_nandflash_defconfig b/configs/at91sam9263ek_nandflash_defconfig
index 3ecb1b3726..1bd2570d84 100644
--- a/configs/at91sam9263ek_nandflash_defconfig
+++ b/configs/at91sam9263ek_nandflash_defconfig
@@ -19,6 +19,7 @@  CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_MMC=y
diff --git a/configs/at91sam9263ek_norflash_boot_defconfig b/configs/at91sam9263ek_norflash_boot_defconfig
index 556fc15418..f843739c5a 100644
--- a/configs/at91sam9263ek_norflash_boot_defconfig
+++ b/configs/at91sam9263ek_norflash_boot_defconfig
@@ -17,6 +17,7 @@  CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_MMC=y
diff --git a/configs/at91sam9263ek_norflash_defconfig b/configs/at91sam9263ek_norflash_defconfig
index 892f6af1b8..3109bcb737 100644
--- a/configs/at91sam9263ek_norflash_defconfig
+++ b/configs/at91sam9263ek_norflash_defconfig
@@ -17,6 +17,7 @@  CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_MMC=y
diff --git a/configs/at91sam9g10ek_dataflash_cs0_defconfig b/configs/at91sam9g10ek_dataflash_cs0_defconfig
index 7bf0b79e34..370a1cb1b5 100644
--- a/configs/at91sam9g10ek_dataflash_cs0_defconfig
+++ b/configs/at91sam9g10ek_dataflash_cs0_defconfig
@@ -17,6 +17,7 @@  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_NAND=y
diff --git a/configs/at91sam9g10ek_dataflash_cs3_defconfig b/configs/at91sam9g10ek_dataflash_cs3_defconfig
index b4e8892cca..0951a463c4 100644
--- a/configs/at91sam9g10ek_dataflash_cs3_defconfig
+++ b/configs/at91sam9g10ek_dataflash_cs3_defconfig
@@ -17,6 +17,7 @@  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_NAND=y
diff --git a/configs/at91sam9g10ek_nandflash_defconfig b/configs/at91sam9g10ek_nandflash_defconfig
index c88e55404e..e942eeaf6b 100644
--- a/configs/at91sam9g10ek_nandflash_defconfig
+++ b/configs/at91sam9g10ek_nandflash_defconfig
@@ -17,6 +17,7 @@  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_NAND=y
diff --git a/configs/at91sam9m10g45ek_mmc_defconfig b/configs/at91sam9m10g45ek_mmc_defconfig
index 7ef4843c72..cba9db2ff3 100644
--- a/configs/at91sam9m10g45ek_mmc_defconfig
+++ b/configs/at91sam9m10g45ek_mmc_defconfig
@@ -19,6 +19,7 @@  CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_LOADS is not set
diff --git a/configs/at91sam9m10g45ek_nandflash_defconfig b/configs/at91sam9m10g45ek_nandflash_defconfig
index f8101f5fd4..623d707a2d 100644
--- a/configs/at91sam9m10g45ek_nandflash_defconfig
+++ b/configs/at91sam9m10g45ek_nandflash_defconfig
@@ -19,6 +19,7 @@  CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_LOADS is not set
diff --git a/configs/at91sam9n12ek_mmc_defconfig b/configs/at91sam9n12ek_mmc_defconfig
index 6b2cfe9c42..02806f1ce7 100644
--- a/configs/at91sam9n12ek_mmc_defconfig
+++ b/configs/at91sam9n12ek_mmc_defconfig
@@ -16,6 +16,7 @@  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_MMC=y
 CONFIG_CMD_NAND=y
diff --git a/configs/at91sam9n12ek_nandflash_defconfig b/configs/at91sam9n12ek_nandflash_defconfig
index 354c24ff16..8f7c295cdc 100644
--- a/configs/at91sam9n12ek_nandflash_defconfig
+++ b/configs/at91sam9n12ek_nandflash_defconfig
@@ -16,6 +16,7 @@  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_MMC=y
 CONFIG_CMD_NAND=y
diff --git a/configs/at91sam9n12ek_spiflash_defconfig b/configs/at91sam9n12ek_spiflash_defconfig
index 63889355bf..7dfa1ccb8d 100644
--- a/configs/at91sam9n12ek_spiflash_defconfig
+++ b/configs/at91sam9n12ek_spiflash_defconfig
@@ -16,6 +16,7 @@  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_MMC=y
 CONFIG_CMD_NAND=y
diff --git a/configs/at91sam9rlek_dataflash_defconfig b/configs/at91sam9rlek_dataflash_defconfig
index 800a92cf81..9c8e0be1c4 100644
--- a/configs/at91sam9rlek_dataflash_defconfig
+++ b/configs/at91sam9rlek_dataflash_defconfig
@@ -19,6 +19,7 @@  CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_MMC=y
diff --git a/configs/at91sam9rlek_mmc_defconfig b/configs/at91sam9rlek_mmc_defconfig
index dd5158a034..7f831f9ace 100644
--- a/configs/at91sam9rlek_mmc_defconfig
+++ b/configs/at91sam9rlek_mmc_defconfig
@@ -19,6 +19,7 @@  CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_MMC=y
diff --git a/configs/at91sam9rlek_nandflash_defconfig b/configs/at91sam9rlek_nandflash_defconfig
index 6b863d46da..fae77334d1 100644
--- a/configs/at91sam9rlek_nandflash_defconfig
+++ b/configs/at91sam9rlek_nandflash_defconfig
@@ -19,6 +19,7 @@  CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_MMC=y
diff --git a/configs/brxre1_defconfig b/configs/brxre1_defconfig
index c56a633292..6dd61a6ea0 100644
--- a/configs/brxre1_defconfig
+++ b/configs/brxre1_defconfig
@@ -27,6 +27,7 @@  CONFIG_HUSH_PARSER=y
 # CONFIG_CMD_BOOTD is not set
 # CONFIG_CMD_BOOTM is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_GO is not set
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_XIMG is not set
diff --git a/configs/cm_t3517_defconfig b/configs/cm_t3517_defconfig
index 0901fea638..3e4092536f 100644
--- a/configs/cm_t3517_defconfig
+++ b/configs/cm_t3517_defconfig
@@ -11,6 +11,7 @@  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="CM-T3517 # "
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 CONFIG_CMD_EEPROM=y
 CONFIG_CMD_EEPROM_LAYOUT=y
 CONFIG_EEPROM_LAYOUT_HELP_STRING="v1, v2, v3"
diff --git a/configs/cm_t35_defconfig b/configs/cm_t35_defconfig
index f1fe2d058d..c5c64a5631 100644
--- a/configs/cm_t35_defconfig
+++ b/configs/cm_t35_defconfig
@@ -12,6 +12,7 @@  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="CM-T3x # "
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 CONFIG_CMD_EEPROM=y
 CONFIG_CMD_EEPROM_LAYOUT=y
 CONFIG_EEPROM_LAYOUT_HELP_STRING="v1, v2, v3"
diff --git a/configs/peach-pi_defconfig b/configs/peach-pi_defconfig
index 338eae20b4..b01635e89e 100644
--- a/configs/peach-pi_defconfig
+++ b/configs/peach-pi_defconfig
@@ -12,6 +12,7 @@  CONFIG_FIT_BEST_MATCH=y
 CONFIG_SILENT_CONSOLE=y
 # CONFIG_SPL_FRAMEWORK is not set
 CONFIG_SYS_PROMPT="Peach-Pi # "
+CONFIG_CMD_CLS=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
diff --git a/configs/peach-pit_defconfig b/configs/peach-pit_defconfig
index 933c823ea8..0951e90197 100644
--- a/configs/peach-pit_defconfig
+++ b/configs/peach-pit_defconfig
@@ -11,6 +11,7 @@  CONFIG_FIT_BEST_MATCH=y
 CONFIG_SILENT_CONSOLE=y
 # CONFIG_SPL_FRAMEWORK is not set
 CONFIG_SYS_PROMPT="Peach-Pit # "
+CONFIG_CMD_CLS=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
diff --git a/configs/picosam9g45_defconfig b/configs/picosam9g45_defconfig
index 0b6234fbd9..6255323e3f 100644
--- a/configs/picosam9g45_defconfig
+++ b/configs/picosam9g45_defconfig
@@ -24,6 +24,7 @@  CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="U-Boot> "
 # CONFIG_CMD_BDI is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_LOADS is not set
diff --git a/configs/pm9261_defconfig b/configs/pm9261_defconfig
index d2c4c25672..d5904428be 100644
--- a/configs/pm9261_defconfig
+++ b/configs/pm9261_defconfig
@@ -15,6 +15,7 @@  CONFIG_BOARD_EARLY_INIT_F=y
 # CONFIG_AUTO_COMPLETE is not set
 CONFIG_SYS_PROMPT="pm9261> "
 # CONFIG_CMD_BDI is not set
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_NAND=y
diff --git a/configs/pm9263_defconfig b/configs/pm9263_defconfig
index ceb7efe503..4375b4ce7b 100644
--- a/configs/pm9263_defconfig
+++ b/configs/pm9263_defconfig
@@ -14,6 +14,7 @@  CONFIG_BOARD_EARLY_INIT_F=y
 # CONFIG_AUTO_COMPLETE is not set
 CONFIG_SYS_PROMPT="u-boot-pm9263> "
 # CONFIG_CMD_BDI is not set
+CONFIG_CMD_CLS=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_LOADS is not set
 CONFIG_CMD_NAND=y
diff --git a/configs/snow_defconfig b/configs/snow_defconfig
index 21080091a7..9c055e9306 100644
--- a/configs/snow_defconfig
+++ b/configs/snow_defconfig
@@ -17,6 +17,7 @@  CONFIG_FIT_BEST_MATCH=y
 CONFIG_SILENT_CONSOLE=y
 # CONFIG_SPL_FRAMEWORK is not set
 CONFIG_SYS_PROMPT="snow # "
+CONFIG_CMD_CLS=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
diff --git a/configs/spring_defconfig b/configs/spring_defconfig
index ca1799895e..ae49f67444 100644
--- a/configs/spring_defconfig
+++ b/configs/spring_defconfig
@@ -17,6 +17,7 @@  CONFIG_FIT_BEST_MATCH=y
 CONFIG_SILENT_CONSOLE=y
 # CONFIG_SPL_FRAMEWORK is not set
 CONFIG_SYS_PROMPT="spring # "
+CONFIG_CMD_CLS=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
diff --git a/configs/zipitz2_defconfig b/configs/zipitz2_defconfig
index 509adcffd9..142a61a8ab 100644
--- a/configs/zipitz2_defconfig
+++ b/configs/zipitz2_defconfig
@@ -10,6 +10,7 @@  CONFIG_HUSH_PARSER=y
 # CONFIG_CMDLINE_EDITING is not set
 # CONFIG_AUTO_COMPLETE is not set
 CONFIG_SYS_PROMPT="$ "
+CONFIG_CMD_CLS=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_SPI=y
 CONFIG_CMD_USB=y