diff options
author | Simon Glass <sjg@chromium.org> | 2015-02-27 22:06:32 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-04-23 09:05:52 -0600 |
commit | 66312374dca86e77fc9b08f774546e62b6cd1aa7 (patch) | |
tree | 2a26f0695511a13329ca8469fcadfcf417003f79 /lib | |
parent | 7f9875e733b79556ade508b88f88ac1f8a2c7e3c (diff) | |
download | u-boot-imx-66312374dca86e77fc9b08f774546e62b6cd1aa7.zip u-boot-imx-66312374dca86e77fc9b08f774546e62b6cd1aa7.tar.gz u-boot-imx-66312374dca86e77fc9b08f774546e62b6cd1aa7.tar.bz2 |
dm: Add a panic_str() function to reduce code size
The printf() in panic() adds about 1.5KB of code size to SPL when compiled
with Thumb-2. Provide a smaller version that does not support printf()-style
arguments and use it in two commonly compiled places.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/fdtdec.c | 8 | ||||
-rw-r--r-- | lib/vsprintf.c | 23 |
2 files changed, 23 insertions, 8 deletions
diff --git a/lib/fdtdec.c b/lib/fdtdec.c index 331eae2..577c60e 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -565,9 +565,11 @@ int fdtdec_prepare_fdt(void) { if (!gd->fdt_blob || ((uintptr_t)gd->fdt_blob & 3) || fdt_check_header(gd->fdt_blob)) { - printf("No valid FDT found - please append one to U-Boot " - "binary, use u-boot-dtb.bin or define " - "CONFIG_OF_EMBED. For sandbox, use -d <file.dtb>\n"); +#ifdef CONFIG_SPL_BUILD + puts("Missing DTB\n"); +#else + puts("No valid device tree binary found - please append one to U-Boot binary, use u-boot-dtb.bin or define CONFIG_OF_EMBED. For sandbox, use -d <file.dtb>\n"); +#endif return -1; } return 0; diff --git a/lib/vsprintf.c b/lib/vsprintf.c index e0f2648..bedc865 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -842,13 +842,11 @@ int sprintf(char *buf, const char *fmt, ...) return i; } -void panic(const char *fmt, ...) +static void panic_finish(void) __attribute__ ((noreturn)); + +static void panic_finish(void) { - va_list args; - va_start(args, fmt); - vprintf(fmt, args); putc('\n'); - va_end(args); #if defined(CONFIG_PANIC_HANG) hang(); #else @@ -859,6 +857,21 @@ void panic(const char *fmt, ...) ; } +void panic_str(const char *str) +{ + puts(str); + panic_finish(); +} + +void panic(const char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + vprintf(fmt, args); + va_end(args); + panic_finish(); +} + void __assert_fail(const char *assertion, const char *file, unsigned line, const char *function) { |