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.
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)
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:
- Baud rate: 115200
- 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
On Tue, Sep 29, 2015 at 4:24 AM, Ryan Harkin ryan.harkin@linaro.org wrote:
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:
- Baud rate: 115200
- 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?
I tried it as well, didn't make a difference with copy/paste problems. I'm bummed, as I'd really like a fix for that.
Roy
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
Linaro-uefi mailing list Linaro-uefi@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-uefi
Hi Ryan and Roy,
What's timer interrupt period of your boards? Timer interrupt period should be less than terminal poll interval, otherwise timer will become the bottle neck :)
Thanks.
On 09/29/2015 09:32 PM, Roy Franz wrote:
On Tue, Sep 29, 2015 at 4:24 AM, Ryan Harkin ryan.harkin@linaro.org wrote:
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:
- Baud rate: 115200
- 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?
I tried it as well, didn't make a difference with copy/paste problems. I'm bummed, as I'd really like a fix for that.
Roy
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
Linaro-uefi mailing list Linaro-uefi@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-uefi
On 30 September 2015 at 11:14, Heyi Guo heyi.guo@linaro.org wrote:
Hi Ryan and Roy,
What's timer interrupt period of your boards?
I assume this is what you're asking for?
gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|50000000
Timer interrupt period should be less than terminal poll interval, otherwise timer will become the bottle neck :)
Thanks.
On 09/29/2015 09:32 PM, Roy Franz wrote:
On Tue, Sep 29, 2015 at 4:24 AM, Ryan Harkin ryan.harkin@linaro.org wrote:
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:
- Baud rate: 115200
- 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?
I tried it as well, didn't make a difference with copy/paste problems. I'm bummed, as I'd really like a fix for that.
Roy
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
Linaro-uefi mailing list Linaro-uefi@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-uefi
Not really; it is
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000|UINT32|0x0000001e
For Juno in EDKII, the PCD is using the default value 10ms, so timer event with period less than 10ms can only be triggered once every 10ms.
You can try setting it and KEYBOARD_TIMER_INTERVAL to 20000 at the same time, which should make it work.
Thanks.
On 10/03/2015 01:12 AM, Ryan Harkin wrote:
On 30 September 2015 at 11:14, Heyi Guo <heyi.guo@linaro.org mailto:heyi.guo@linaro.org> wrote:
Hi Ryan and Roy, What's timer interrupt period of your boards?
I assume this is what you're asking for?
gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|50000000
Timer interrupt period should be less than terminal poll interval, otherwise timer will become the bottle neck :) Thanks. On 09/29/2015 09:32 PM, Roy Franz wrote: On Tue, Sep 29, 2015 at 4:24 AM, Ryan Harkin <ryan.harkin@linaro.org <mailto:ryan.harkin@linaro.org>> wrote: On 24 September 2015 at 19:57, Heyi Guo <heyi.guo@linaro.org <mailto: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? I tried it as well, didn't make a difference with copy/paste problems. I'm bummed, as I'd really like a fix for that. Roy 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 <mailto:Linaro-uefi@lists.linaro.org> https://lists.linaro.org/mailman/listinfo/linaro-uefi _______________________________________________ Linaro-uefi mailing list Linaro-uefi@lists.linaro.org <mailto:Linaro-uefi@lists.linaro.org> https://lists.linaro.org/mailman/listinfo/linaro-uefi