[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