board: sama5d3_xplained: Fix SPL DTB read from NAND
[oweals/u-boot.git] / lib / display_options.c
index 4ea27ca99d36827e20b0a93bf895494d50bf5255..74f769d9ff893e27288a16e79567b67fbf719364 100644 (file)
@@ -1,14 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2000-2002
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
 #include <console.h>
 #include <div64.h>
-#include <inttypes.h>
 #include <version.h>
 #include <linux/ctype.h>
 #include <asm/io.h>
@@ -25,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;
 }
@@ -66,7 +66,7 @@ void print_freq(uint64_t freq, const char *s)
        }
 
        if (!c) {
-               printf("%" PRIu64 " Hz%s", freq, s);
+               printf("%llu Hz%s", freq, s);
                return;
        }
 
@@ -106,7 +106,7 @@ void print_size(uint64_t size, const char *s)
        }
 
        if (!c) {
-               printf("%" PRIu64 " Bytes%s", size, s);
+               printf("%llu Bytes%s", size, s);
                return;
        }
 
@@ -137,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];
@@ -145,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;
@@ -168,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
@@ -176,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);
@@ -203,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;