On 24 September 2015 at 19:57, Heyi Guo <heyi.guo@linaro.org> wrote:
Hi folks,

In MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf, the polling interval is fixed by macro:

#define KEYBOARD_TIMER_INTERVAL         200000  // 0.02s

However, this may cause fast input truncation on some platform. 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.

As a hack, I tried changing KEYBOARD_TIMER_INTERVAL to 20000 (ie. divided by 10) and it made no difference to my board:  it still drops characters on copy/paste.

From what you said above, I would expect that to have fixed the problem.  If not, what problem are you expecting it will fix?  And have you tested it?



So, I suppose to use a PCD to set the interval statically, or calculate from serial IO protocol IO Mode data dynamically, which contains FIFO depth and data bits, etc. 

Please let me know your comments.

Thanks.

(If you see my another mail like this, please ignore that; this one is the final version; sorry for the noise)
_______________________________________________
Linaro-uefi mailing list
Linaro-uefi@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-uefi