board: sama5d3_xplained: Fix SPL DTB read from NAND
[oweals/u-boot.git] / lib / display_options.c
index 32849821f4e8f10090f97c1f33d8a33266bbac2d..74f769d9ff893e27288a16e79567b67fbf719364 100644 (file)
@@ -23,7 +23,9 @@ char *display_options_get_banner_priv(bool newlines, const char *build_tag,
                                build_tag);
        if (len > size - 3)
                len = size - 3;
-       strcpy(buf + len, "\n\n");
+       if (len < 0)
+               len = 0;
+       snprintf(buf + len, size - len, "\n\n");
 
        return buf;
 }
@@ -135,7 +137,7 @@ int print_buffer(ulong addr, const void *data, uint width, uint count,
 {
        /* linebuf as a union causes proper alignment */
        union linebuf {
-#ifdef CONFIG_SYS_SUPPORT_64BIT_DATA
+#ifdef MEM_SUPPORT_64BIT_DATA
                uint64_t uq[MAX_LINE_LENGTH_BYTES/sizeof(uint64_t) + 1];
 #endif
                uint32_t ui[MAX_LINE_LENGTH_BYTES/sizeof(uint32_t) + 1];
@@ -143,7 +145,7 @@ int print_buffer(ulong addr, const void *data, uint width, uint count,
                uint8_t  uc[MAX_LINE_LENGTH_BYTES/sizeof(uint8_t) + 1];
        } lb;
        int i;
-#ifdef CONFIG_SYS_SUPPORT_64BIT_DATA
+#ifdef MEM_SUPPORT_64BIT_DATA
        uint64_t __maybe_unused x;
 #else
        uint32_t __maybe_unused x;
@@ -166,7 +168,7 @@ int print_buffer(ulong addr, const void *data, uint width, uint count,
                for (i = 0; i < thislinelen; i++) {
                        if (width == 4)
                                x = lb.ui[i] = *(volatile uint32_t *)data;
-#ifdef CONFIG_SYS_SUPPORT_64BIT_DATA
+#ifdef MEM_SUPPORT_64BIT_DATA
                        else if (width == 8)
                                x = lb.uq[i] = *(volatile uint64_t *)data;
 #endif
@@ -174,7 +176,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(MEM_SUPPORT_64BIT_DATA)
                        printf(" %0*llx", width * 2, (long long)x);
 #else
                        printf(" %0*x", width * 2, x);
@@ -201,8 +205,10 @@ int print_buffer(ulong addr, const void *data, uint width, uint count,
                addr += thislinelen * width;
                count -= thislinelen;
 
+#ifndef CONFIG_SPL_BUILD
                if (ctrlc())
                        return -1;
+#endif
        }
 
        return 0;