[U-Boot] [PATCH 0/8] video/console: Fix various DM_VIDEO console issues
Andre Przywara
andre.przywara at arm.com
Sat Mar 23 01:29:54 UTC 2019
The graphical console (vidconsole-uclass.c) for DM_VIDEO based display
drivers has several issues:
- Many ANSI sequences are not handled properly.
- The character set used is assumed to be the original IBM PC code
page 437, even though the UEFI code expect the terminal to display
UTF-8 encoded characters. Truetype fonts expect ISO8859-1.
- The USB keyboard does not handle arrow keys correctly.
- There is no visible cursor displayed.
- Truetype fonts only work in 16-bit screen modes.
- The maximum font width supported is 8 pixels.
- The "bmp" command to display bitmaps only works in certain video modes.
This leads to a very poor user experience, up to a point where
applications become unusable (Grub/EFI and U-Boot's bootmenu come to mind).
This patch set aims to fix the most important of those issues (the first
three). I have further patches to address the rest, but they are not so
nice or have issues, so I will send them later.
Patch 1/8 is a bug fix (for ASCII characters > 127). Patch 2-4 extend the
ANSI sequence handling. Patch 5 and 6 fix the character encoding for
the bitmap fonts. The USB keyboard learns about proper arrow key handling
in patch 7, while patch 8 fixes a minor Kconfig omission for sunxi.
After this series I can use both the bootmenu and Grub/EFI properly. Tested
on Sandbox and an Pine64-LTS board.
Cheers,
Andre.
Andre Przywara (8):
video/console: Fix DM_VIDEO font glyph array indexing
video/console: Implement reverse video ANSI sequence for DM_VIDEO
video/console: Implement relative cursor movement ANSI handling
video/console: Implement ANSI clear line command
video/console: Factor out actual character output
video/console: Convert UTF-8 codes to CP437 code points
usb: kbd: Properly translate up/down arrow keys
sunxi: allow boards to de-select SYS_WHITE_ON_BLACK font scheme
common/usb_kbd.c | 24 +++++-
drivers/video/Kconfig | 2 +-
drivers/video/Makefile | 1 +
drivers/video/console_normal.c | 3 +-
drivers/video/console_rotate.c | 7 +-
drivers/video/utf8_cp437.c | 170 ++++++++++++++++++++++++++++++++++++++
drivers/video/vidconsole-uclass.c | 113 +++++++++++++++++++++----
drivers/video/video-uclass.c | 1 +
include/configs/sunxi-common.h | 1 -
include/video.h | 2 +
include/video_console.h | 9 ++
11 files changed, 310 insertions(+), 23 deletions(-)
create mode 100644 drivers/video/utf8_cp437.c
--
2.14.5
More information about the U-Boot
mailing list