lib: Allow using display_buffer() in SPL
authorSimon Glass <sjg@chromium.org>
Mon, 21 Jan 2019 21:53:18 +0000 (14:53 -0700)
committerPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
Fri, 1 Feb 2019 15:59:11 +0000 (16:59 +0100)
At present this function uses printf() format strings that are not
supported in SPL, so the output just consists of %llx strings on 64-bit.
machines. Fix this by adding a special case.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
lib/display_options.c

index 32849821f4e8f10090f97c1f33d8a33266bbac2d..af1802ef992ff7ad8b7083b7bd6cb117d4fd0e1a 100644 (file)
@@ -174,7 +174,9 @@ int print_buffer(ulong addr, const void *data, uint width, uint count,
                                x = lb.us[i] = *(volatile uint16_t *)data;
                        else
                                x = lb.uc[i] = *(volatile uint8_t *)data;
-#ifdef CONFIG_SYS_SUPPORT_64BIT_DATA
+#if defined(CONFIG_SPL_BUILD)
+                       printf(" %x", (uint)x);
+#elif defined(CONFIG_SYS_SUPPORT_64BIT_DATA)
                        printf(" %0*llx", width * 2, (long long)x);
 #else
                        printf(" %0*x", width * 2, x);