The serial terminal polling interval is now fixed by macro:

#define KEYBOARD_TIMER_INTERVAL         200000  // 0.02s

However, this may cause fast input to be truncated on some platforms. For 
example, we have a serial console with below features:
1. Baud rate: 115200
2. FIFO depth of UART device: 32

If we want to capture all input, we need to poll with the interval of 32 / 
(115200 / (8 + 1 + 1)) = 2.8 ms, 8 + 1 + 1 for data bits + start bit + stop 
bit. Due to UEFI event potential delay, we will need even shorter polling 
interval than the ideal calculation result. 

These patches are to set serial terminal polling rate adaptively.

Heyi Guo (3):
  MdePkg: Add PCD for UART default receive FIFO depth
  MdeModulePkg/SerialDxe: Set FIFO depth with PCD
  MdeModulePkg/TerminalDxe: Set polling rate by serial IO mode

 .../Universal/Console/TerminalDxe/Terminal.c       |  5 +-
 .../Universal/Console/TerminalDxe/Terminal.h       | 27 ++++++++-
 .../Universal/Console/TerminalDxe/TerminalConIn.c  | 68 ++++++++++++++++++++++
 MdeModulePkg/Universal/SerialDxe/SerialDxe.inf     |  9 +--
 MdeModulePkg/Universal/SerialDxe/SerialIo.c        |  3 +-
 MdePkg/MdePkg.dec                                  |  4 ++
 6 files changed, 109 insertions(+), 7 deletions(-)

Cc: Michael D Kinney <[email protected]>
Cc: Liming Gao <[email protected]>
Cc: Ruiyu Ni <[email protected]>
Cc: Feng Tian <[email protected]>
Cc: Star Zeng <[email protected]>
-- 
2.7.0

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to