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

Stefan Roese sr at denx.de
Thu Aug 17 07:26:22 UTC 2017


Hi Bin,

On 17.08.2017 09:19, Bin Meng wrote:
> 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.

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


More information about the U-Boot mailing list