]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
cmd: add serial console support for the cls command
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Fri, 11 Feb 2022 17:11:05 +0000 (18:11 +0100)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sat, 12 Mar 2022 11:27:07 +0000 (12:27 +0100)
Currently the cls command does not support the serial console

The screen can be cleared in the video uclass, the colored frame buffer
console, and the serial console by sending the same escape sequence.
This reduces the cls command to a single printf() statement on most
boards.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
cmd/cls.c

index eab4e6993bbc9f0a2427e692a4428db976c01d4c..bdeb49786d4855625d2745f3a32413cc15e0b71c 100644 (file)
--- a/cmd/cls.c
+++ b/cmd/cls.c
 #include <lcd.h>
 #include <video.h>
 
+#define CSI "\x1b["
+
 static int do_video_clear(struct cmd_tbl *cmdtp, int flag, int argc,
                          char *const argv[])
 {
-#if defined(CONFIG_DM_VIDEO)
-       struct udevice *dev;
+       __maybe_unused struct udevice *dev;
 
+       /*  Send clear screen and home */
+       printf(CSI "2J" CSI "1;1H");
+#if defined(CONFIG_DM_VIDEO)
+#if !defined(CONFIG_VIDEO_ANSI)
        if (uclass_first_device_err(UCLASS_VIDEO, &dev))
                return CMD_RET_FAILURE;
 
        if (video_clear(dev))
                return CMD_RET_FAILURE;
+#endif
 #elif defined(CONFIG_CFB_CONSOLE)
        video_clear();
 #elif defined(CONFIG_LCD)