[U-Boot] [PATCH 1/1] lib, panic: don't call do_reset in SPL (debug).

Tom Rini trini at ti.com
Fri Aug 24 21:30:16 CEST 2012


On 08/14/2012 01:40 PM, Jeroen Hofstee wrote:

> Several omap boards won't build when DEBUG is defined, SPL build error:
> "vsprintf.c:791: undefined reference to `do_reset'", since SPL has no
> commands. Therefore don't call do_reset in SPL. SPL panic will end in an
> endless loop or call hang if CONFIG_PANIC_HANG is defined.
> 
> cc: Tom Rini <trini at ti.com>
> Signed-off-by: Jeroen Hofstee <jhofstee at victronenergy.com>
> ---
>  lib/vsprintf.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/vsprintf.c b/lib/vsprintf.c
> index e38a4b7..4fa392d 100644
> --- a/lib/vsprintf.c
> +++ b/lib/vsprintf.c
> @@ -18,7 +18,7 @@
>  #include <errno.h>
> 
>  #include <common.h>
> -#if !defined (CONFIG_PANIC_HANG)
> +#if !defined(CONFIG_PANIC_HANG) && !defined(CONFIG_SPL_BUILD)
>  #include <command.h>
>  #endif
> 
> @@ -786,7 +786,7 @@ void panic(const char *fmt, ...)
>      va_end(args);
>  #if defined (CONFIG_PANIC_HANG)
>      hang();
> -#else
> +#elif !defined(CONFIG_SPL_BUILD)
>      udelay (100000);    /* allow messages to go out */
>      do_reset (NULL, 0, 0, NULL);
>  #endif

Thinking about this more.  The point is that today, no one that does SPL
has reset ability.  I would like to see this changed, slightly.  Lets do:
#if defined(CONFIG_PANIC_HANG) || defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_SPL_BUILD)
puts("hanging\n");
#endif
hang();
#else
...

And no need to not include command.h I think.  This makes it clear that
a panic results in hang in SPL so that in the future, should someone
depend on other behavior it's at least saying why we aren't resetting
which is my concern.

-- 
Tom


More information about the U-Boot mailing list