We have foreseen a work around for entering control codes in the
EFI_SIMPLE_TEXT_INPUT_PROTOCOL. But currently we have an offset of one.

ESC a should translate to 0x01 (CTRL+a).
ESC z should translate to 0x1a (CTRL+z).

Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
---
v2
        no change
---
 lib/efi_loader/efi_console.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c
index dfec95903e..4b97f6ebbc 100644
--- a/lib/efi_loader/efi_console.c
+++ b/lib/efi_loader/efi_console.c
@@ -473,7 +473,12 @@ static efi_status_t efi_cin_read_key(struct efi_input_key 
*key)
                        pressed_key.scan_code = ch - 'P' + 11;
                        break;
                case 'a'...'z':
-                       ch = ch - 'a';
+                       /*
+                        * Workaround for entering CTRL+a (0x01) - CTRL+z (0x1a)
+                        * as escape sequence if the terminal does not allow
+                        * direct entry. These are not Xterm control sequences.
+                        */
+                       ch = ch - 'a' + 1;
                        break;
                case '[':
                        ch = getc();
-- 
2.18.0

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to