[PATCH v2 04/10] display_options: Drop #ifdef for MEM_SUPPORT_64BIT_DATA

Simon Glass sjg at chromium.org
Mon Jun 8 04:43:31 CEST 2020


This is defined only when __lp64__ is defined. That means that ulong is
64 bits long. Therefore we don't need to use a separate u64 type on those
architectures.

Fix up the code to take advantage of that, removing the preprocessor
conditions.

Signed-off-by: Simon Glass <sjg at chromium.org>
Reviewed-by: Stefan Roese <sr at denx.de>
---

(no changes since v1)

 lib/display_options.c | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

diff --git a/lib/display_options.c b/lib/display_options.c
index f4b1059c24..ea9977cc18 100644
--- a/lib/display_options.c
+++ b/lib/display_options.c
@@ -138,19 +138,13 @@ int print_buffer(ulong addr, const void *data, uint width, uint count,
 {
 	/* linebuf as a union causes proper alignment */
 	union linebuf {
-#if 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];
 		uint16_t us[MAX_LINE_LENGTH_BYTES/sizeof(uint16_t) + 1];
 		uint8_t  uc[MAX_LINE_LENGTH_BYTES/sizeof(uint8_t) + 1];
 	} lb;
 	int i;
-#if MEM_SUPPORT_64BIT_DATA
-	uint64_t __maybe_unused x;
-#else
-	uint32_t __maybe_unused x;
-#endif
+	ulong x;
 
 	if (linelen*width > MAX_LINE_LENGTH_BYTES)
 		linelen = MAX_LINE_LENGTH_BYTES / width;
@@ -169,20 +163,16 @@ 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;
-#if MEM_SUPPORT_64BIT_DATA
-			else if (width == 8)
-				x = lb.uq[i] = *(volatile uint64_t *)data;
-#endif
+			else if (MEM_SUPPORT_64BIT_DATA && width == 8)
+				x = lb.uq[i] = *(volatile ulong *)data;
 			else if (width == 2)
 				x = lb.us[i] = *(volatile uint16_t *)data;
 			else
 				x = lb.uc[i] = *(volatile uint8_t *)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);
+			printf(" %0*lx", width * 2, x);
 #endif
 			data += width;
 		}
-- 
2.27.0.278.ge193c7cf3a9-goog



More information about the U-Boot mailing list