All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andre Przywara <andre.przywara@arm.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 0/8] video/console: Fix various DM_VIDEO console issues
Date: Sat, 23 Mar 2019 01:29:54 +0000	[thread overview]
Message-ID: <20190323013002.27117-1-andre.przywara@arm.com> (raw)

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

             reply	other threads:[~2019-03-23  1:29 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-23  1:29 Andre Przywara [this message]
2019-03-23  1:29 ` [U-Boot] [PATCH 1/8] video/console: Fix DM_VIDEO font glyph array indexing Andre Przywara
2019-03-30 21:18   ` Simon Glass
2019-04-09 21:03   ` Anatolij Gustschin
2019-03-23  1:29 ` [U-Boot] [PATCH 2/8] video/console: Implement reverse video ANSI sequence for DM_VIDEO Andre Przywara
2019-03-30 21:18   ` Simon Glass
2019-04-09 21:04   ` Anatolij Gustschin
2019-04-14 13:05   ` [U-Boot] [PATCH v2 " Anatolij Gustschin
2019-04-17 13:36     ` Anatolij Gustschin
2019-03-23  1:29 ` [U-Boot] [PATCH 3/8] video/console: Implement relative cursor movement ANSI handling Andre Przywara
2019-03-30 21:18   ` Simon Glass
2019-04-09 21:05   ` Anatolij Gustschin
2019-04-11 12:09     ` Anatolij Gustschin
2019-04-13 21:40       ` André Przywara
2019-04-14 12:54         ` Anatolij Gustschin
2019-04-14 21:49           ` André Przywara
2019-03-23  1:29 ` [U-Boot] [PATCH 4/8] video/console: Implement ANSI clear line command Andre Przywara
2019-03-30 21:18   ` Simon Glass
2019-04-09 21:05   ` Anatolij Gustschin
2019-03-23  1:29 ` [U-Boot] [PATCH 5/8] video/console: Factor out actual character output Andre Przywara
2019-03-30 21:18   ` Simon Glass
2019-04-09 21:06   ` Anatolij Gustschin
2019-03-23  1:30 ` [U-Boot] [PATCH 6/8] video/console: Convert UTF-8 codes to CP437 code points Andre Przywara
2019-03-30 21:18   ` Simon Glass
2019-03-31 18:28     ` Alexander Graf
2019-03-31 23:54       ` André Przywara
2019-03-23  1:30 ` [U-Boot] [PATCH 7/8] usb: kbd: Properly translate up/down arrow keys Andre Przywara
2019-03-30 21:18   ` Simon Glass
2019-04-01  0:04     ` André Przywara
2019-04-01  1:58       ` Simon Glass
2019-04-09 21:06   ` Anatolij Gustschin
2019-03-23  1:30 ` [U-Boot] [PATCH 8/8] sunxi: allow boards to de-select SYS_WHITE_ON_BLACK font scheme Andre Przywara
2019-03-30 21:18   ` Simon Glass
2019-04-09 21:07   ` Anatolij Gustschin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190323013002.27117-1-andre.przywara@arm.com \
    --to=andre.przywara@arm.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.