diff options
author | Tom Rini <trini@konsulko.com> | 2021-12-31 07:28:36 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-12-31 07:28:36 -0500 |
commit | 5fec3c853d5e6b998db66f586871839c408195a3 (patch) | |
tree | c3368f8625b3a9383f30745ce1fafafc35cafac3 /drivers | |
parent | 87a9aa604de8a4a50642e25b88af328ab375893b (diff) | |
parent | 86bb48880d75653d692cd02edb81888a2ed2dbb2 (diff) | |
download | u-boot-5fec3c853d5e6b998db66f586871839c408195a3.zip u-boot-5fec3c853d5e6b998db66f586871839c408195a3.tar.gz u-boot-5fec3c853d5e6b998db66f586871839c408195a3.tar.bz2 |
Merge tag 'efi-next' of https://source.denx.de/u-boot/custodians/u-boot-efi into nextWIP/31Dec2021-next
Pull request of efi-next
Documentation:
* Add Sunxi board description
UEFI:
* Improvements to U-Boot running on top of UEFI
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/serial/serial_efi.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/serial/serial_efi.c b/drivers/serial/serial_efi.c index 33ddbd6..0067576 100644 --- a/drivers/serial/serial_efi.c +++ b/drivers/serial/serial_efi.c @@ -24,6 +24,9 @@ struct serial_efi_priv { bool have_key; }; +/* Convert a lower-case character to its ctrl-char equivalent */ +#define CTL_CH(c) ((c) - 'a' + 1) + int serial_efi_setbrg(struct udevice *dev, int baudrate) { return 0; @@ -49,6 +52,7 @@ static int serial_efi_get_key(struct serial_efi_priv *priv) static int serial_efi_getc(struct udevice *dev) { struct serial_efi_priv *priv = dev_get_priv(dev); + char conv_scan[10] = {0, 'p', 'n', 'f', 'b', 'a', 'e', 0, 8}; int ret, ch; ret = serial_efi_get_key(priv); @@ -63,8 +67,11 @@ static int serial_efi_getc(struct udevice *dev) * key scan code of 8. Handle this so that backspace works correctly * in the U-Boot command line. */ - if (!ch && priv->key.scan_code == 8) - ch = 8; + if (!ch && priv->key.scan_code < sizeof(conv_scan)) { + ch = conv_scan[priv->key.scan_code]; + if (ch >= 'a') + ch -= 'a' - 1; + } debug(" [%x %x %x] ", ch, priv->key.unicode_char, priv->key.scan_code); return ch; |