
Hi Bin,
On 17.08.2017 09:19, Bin Meng wrote:
On Wed, Aug 16, 2017 at 11:43 PM, Stefan Roese sr@denx.de wrote:
Hi Bin,
On 16.08.2017 17:37, Stefan Roese wrote:
To support more input characters (longer stings pasted into the U-Boot prompt) without dropping, lets selects the recently added UART RX buffer for these boards.
Signed-off-by: Stefan Roese sr@denx.de Cc: Simon Glass sjg@chromium.org Cc: Bin Meng bmeng.cn@gmail.com
board/congatec/conga-qeval20-qa3-e3845/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/board/congatec/conga-qeval20-qa3-e3845/Kconfig b/board/congatec/conga-qeval20-qa3-e3845/Kconfig index e1fae737ac..9e44413c2c 100644 --- a/board/congatec/conga-qeval20-qa3-e3845/Kconfig +++ b/board/congatec/conga-qeval20-qa3-e3845/Kconfig @@ -25,6 +25,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy select SPI_FLASH_STMICRO imply SPI_FLASH_SPANSION imply SPI_FLASH_WINBOND
select SERIAL_RX_BUFFER
It might be better to select (or imply) this Kconfig option for x86 in general, once this support is available in mainline.
What do you think?
When I tested the patch on the QEMU, I got interesting results:
Without the patch, QEMU's ns16550 does not lose any character or out of order when I paste a really long strings to the U-Boot console (it seems that U-Boot's maximum length for a command line is 256, so the 256 bytes are all there).
After applying the patch, I got something interesting:
The long strings I was using for testing was: "As Bin Meng has tested and pointed out, we don't need the RX interrupt for the RX buffer support at all. Just reading all available characters into a buffer is sufficient to solve the problem with the dropped characters upon long lines pasted into the U-Boot prompt. Since this RX buffer support can be implemented in a generic way, without any device specifica (e.g. for the ns16550), I'll post a new patch with a new serial RX buffer support for DM, which all DM based serial drivers can use. Pasting longer lines into the U-Boot console prompt sometimes leads to characters missing. One problem here is the small 16-byte FIFO of the legacy NS16550 UART, e.g. on x86 platforms. This patch now introduces a Kconfig option to enable RX buffer support for all DM based serial drivers. With this option enabled, I was able paste really long lines into the U-Boot console, without any characters missing."
I just got the following strings on the console:
=> serial drivers. With this option enabled, I was able paste really long lines into the U-Boot console, without any characters missing. Unknown command 'serial' - try 'help' => serial drivers. With this option enabled, I was able paste really long lines into the U-Boot console, without any characters missing. Unknown command 'serial' - try 'help'
All previous characters before this string are completely lost.
If we want to turn this option for all x86, I think this should be fixed.
Okay, I fully agree. I'll hopefully be able to revisit this RX buffer support in a few weeks again and fix this issue on QEMU. Until then, it would be great if those 4 patches could be applied to enable this RX buffer support for these specific x86 boards.
Thanks, Stefan