[Uboot-stm32] [PATCH 2/2] console: sandbox: remove unnecessary sandbox code
Patrick DELAUNAY
patrick.delaunay at foss.st.com
Tue Dec 15 15:35:05 CET 2020
Hi Simon,
On 12/12/20 4:39 PM, Simon Glass wrote:
> Hi Patrick,
>
> On Wed, 2 Dec 2020 at 07:08, Patrick DELAUNAY <patrick.delaunay at st.com> wrote:
>> Hi Simon,
>>
>>> From: Simon Glass <sjg at chromium.org>
>>> Sent: lundi 30 novembre 2020 21:12
>>>
>>> Hi Patrick,
>>>
>>> On Fri, 27 Nov 2020 at 03:49, Patrick Delaunay <patrick.delaunay at st.com>
>>> wrote:
>>>> Remove the specific sandbox code in console.c, as the config
>>>> CONFIG_DEBUG_UART is already supported in drivers/serial/sandbox.c and
>>>> activated by default in all sandbox defconfig
>>>> (CONFIG_DEBUG_UART_SANDBOX=y and CONFIG_DEBUG_UART=y).
>>>>
>>>> This patch allows to test the console code under DEBUG_UART in sandbox
>>>> and avoids to include the file <os.h> in this u-boot generic code.
>>>>
>>>> Signed-off-by: Patrick Delaunay <patrick.delaunay at st.com>
>>>> ---
>>>>
>>>> common/console.c | 15 ---------------
>>>> 1 file changed, 15 deletions(-)
>>> Please see this commit as to why I put that code back, after removing it myself.
>>>
>>> 64e9b4f346f Revert "sandbox: Drop special case console code for sandbox"
>>>
>>> Regards,
>>> Simon
>> Thanks to point it, I miss this old commit.
>>
>> I don't understood the issue in the commit message:
>>
>> Revert "sandbox: Drop special case console code for sandbox"
>>
>> While sandbox works OK without the special-case code, it does result in
>> console output being stored in the pre-console buffer while sandbox starts
>> up. If there is a crash or a problem then there is no indication of what
>> is going on.
>>
>> For ease of debugging it seems better to revert this change also.
>>
>> the existing code (here for putc, but it is the same for puts) is:
>>
>> #ifdef CONFIG_SANDBOX
>> /* sandbox can send characters to stdout before it has a console */
>> if (!(gd->flags & GD_FLG_SERIAL_READY)) {
>> os_putc(c);
>> return;
>> }
>> #endif
>> #ifdef CONFIG_DEBUG_UART
>> /* if we don't have a console yet, use the debug UART */
>> if (!(gd->flags & GD_FLG_SERIAL_READY)) {
>> printch(c);
>> return;
>> }
>> #endif
>>
>> For sandbox, when CONFIG_DEBUG_UART is activated
>> printch => _printch => _debug_uart_putc => os_putc
>>
>> For me these 2 code block are identical for sandbox when CONFIG_DEBUG_UART
>>
>> And the issue described is also solved by CONFIG_DEBUG_UART=y
>> (consle no use preconsole buffer when serial driver s not ready).
>>
>> Your concern is when sandbox is compiled without CONFIG_DEBUG_UART ?
>>
>> Because it is no more the case with my previous patch (I activate it in sandbox*defconfig)
>>
>> but to avoid issue in futur (new sandbox*defconfig) it should be better to select (or imply)
>> his feature for sandbox arch in Kconfig and not more activate it in sandbox*defconfig ?
>>
>> PS: with this sandox code, I don't see how to test the pre console buffer in sandbox...
>> I think that the pre console buffer is alway empty for sandbox
>>
> OK maybe things have changed. Previously I noticed that the banner did
> not output until later. I will take another look.
>
> But I don't want to rely on the debug UART for sandbox to work.
Ok, it is not problem for me (avoid assumption on CONFIG_DEBUG_UART for
sandbox)
you can consider that I abandon this change.
I will only replace
#ifdef CONFIG_SANDBOX
by
if (IS_ACTIVATED(CONFIG_SANDBOX))
in the other console the cleanup serie "console: remove #ifdef CONFIG when it is possible"
http://patchwork.ozlabs.org/project/uboot/list/?series=218309
Regards,
Patrick
More information about the U-Boot
mailing list