[U-Boot] [PATCH 3/4] x86: conga-qeval20-qa3-e3845: Select SERIAL_RX_BUFFER via Kconfig

Bin Meng bmeng.cn at gmail.com
Thu Aug 17 07:19:37 UTC 2017


Hi Stefan,

On Wed, Aug 16, 2017 at 11:43 PM, Stefan Roese <sr at 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 at denx.de>
>> Cc: Simon Glass <sjg at chromium.org>
>> Cc: Bin Meng <bmeng.cn at 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.

Regards,
Bin


More information about the U-Boot mailing list