
On Fri, 11 Feb 2022 at 10:11, Heinrich Schuchardt heinrich.schuchardt@canonical.com wrote:
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
v2: support cls with CONFIG_DM_VIDEO=y and CONFIG_VIDEO_ANSI=n
cmd/cls.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org
(would be better with if() instead of #if)
diff --git a/cmd/cls.c b/cmd/cls.c index eab4e6993b..b411fc1eb1 100644 --- a/cmd/cls.c +++ b/cmd/cls.c @@ -11,12 +11,16 @@ #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) && !defined(CONFIG_VIDEO_ANSI) if (uclass_first_device_err(UCLASS_VIDEO, &dev)) return CMD_RET_FAILURE;
-- 2.34.1