Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Feedback on Ctrl key in UEFI mode for iPXE
2018-09-27, 21:41
Post: #1
Feedback on Ctrl key in UEFI mode for iPXE
Feedback from a BIOS vendor, if it's useful:

The root cause of CTRL not working in shell is because iPXE used ReadKeyStroke to read the key but not ReadKeyStrokeEx.
And iPXE can works on EDKII base project is because EDKII Translate the CTRL+<key> characters in ReadKeyStroke.

UEFI specification does not define such conversion requirements, so the right way is all applications should use ReadKeyStrokeEx but not translate key combinations in ReadKeyStroke.
Find all posts by this user
Quote this message in a reply
2018-09-28, 06:11 (This post was last modified: 2019-01-03 22:40 by NiKiZe.)
Post: #2
RE: Feedback on Ctrl key in UEFI mode for iPXE
(2018-09-27 21:41)brett Wrote:  The root cause of CTRL not working in shell is because iPXE used ReadKeyStroke to read the key but not ReadKeyStrokeEx.
And iPXE can works on EDKII base project is because EDKII Translate the CTRL+<key> characters in ReadKeyStroke.

UEFI specification does not define such conversion requirements, so the right way is all applications should use ReadKeyStrokeEx but not translate key combinations in ReadKeyStroke.

Thanks however ...
Feedback to BIOS vendors, if it's useful: Don't create broken real world implementations

(Sorry for the harsh reply here, but this isn't the only thing that is broken-ish on some implementations, and devs should know that EDKII is what most others develop and test on, so if something works on EDKII but not elsewhere, it is "elsewhere" that is seen as broken.)

Read the FAQ before posting.
Did you include relevant ipxe.org error urls?
Visit this user's website Find all posts by this user
Quote this message in a reply
2019-03-20, 13:59
Post: #3
RE: Feedback on Ctrl key in UEFI mode for iPXE
(2018-09-27 21:41)brett Wrote:  Feedback from a BIOS vendor, if it's useful:

The root cause of CTRL not working in shell is because iPXE used ReadKeyStroke to read the key but not ReadKeyStrokeEx.
And iPXE can works on EDKII base project is because EDKII Translate the CTRL+<key> characters in ReadKeyStroke.

UEFI specification does not define such conversion requirements, so the right way is all applications should use ReadKeyStrokeEx but not translate key combinations in ReadKeyStroke.

Thanks for passing on the vendor's feedback; this is very useful!

(The vendor approach illustrates the kind of obstinate stupidity that unfortunately pervades the design of the UEFI specification.)

Will update iPXE to open EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL (since it's not included within EFI_SYSTEM_TABLE). We'll almost certainly need to handle both ReadKeyStroke and ReadKeyStrokeEx to maintain compatibility with older systems that don't provide ReadKeyStrokeEx.

Michael
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)