Hi Bin,

On 17.08.2017 09:19, Bin Meng wrote:
On Wed, Aug 16, 2017 at 11:43 PM, Stefan Roese <s...@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 <s...@denx.de>
Cc: Simon Glass <s...@chromium.org>
Cc: Bin Meng <bmeng...@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
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to