[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