[PATCH 2/2] console: sandbox: remove unnecessary sandbox code
Patrick DELAUNAY
patrick.delaunay at st.com
Wed Dec 2 14:54:09 CET 2020
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
Regards,
Patrick
More information about the U-Boot
mailing list