[PATCH] fixup! scripts: gen-dtb-s: reference OF IMD entries automatically

Ahmad Fatoum a.fatoum at pengutronix.de
Wed Apr 12 04:22:32 PDT 2023


Apparently, .dword is not supported for 32-bit ARM builds.

Let's define ASM_PTR that expands to either .dword or .word and use
that instead.

The definition is taken from RISCV_PTR in arch/riscv/include/asm/asm.h.

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
Sascha, how about this?
---
 include/asm-generic/pointer.h | 30 ++++++++++++++++++++++++++++++
 scripts/gen-dtb-s             |  5 +++--
 2 files changed, 33 insertions(+), 2 deletions(-)
 create mode 100644 include/asm-generic/pointer.h

diff --git a/include/asm-generic/pointer.h b/include/asm-generic/pointer.h
new file mode 100644
index 000000000000..a0ea084b983c
--- /dev/null
+++ b/include/asm-generic/pointer.h
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ASM_GENERIC_PTR_H___
+#define __ASM_GENERIC_PTR_H___
+
+#if __SIZEOF_POINTER__ == 8
+#ifdef __ASSEMBLY__
+#define ASM_PTR		.dword
+#define ASM_SZPTR	8
+#define ASM_LGPTR	3
+#else
+#define ASM_PTR		".dword"
+#define ASM_SZPTR	"8"
+#define ASM_LGPTR	"3"
+#endif
+#elif __SIZEOF_POINTER__ == 4
+#ifdef __ASSEMBLY__
+#define ASM_PTR		.word
+#define ASM_SZPTR	4
+#define ASM_LGPTR	2
+#else
+#define ASM_PTR		".word"
+#define ASM_SZPTR	"4"
+#define ASM_LGPTR	"2"
+#endif
+#else
+#error "Unexpected __SIZEOF_POINTER__"
+#endif
+
+#endif /* __ASM_GENERIC_PTR_H___ */
diff --git a/scripts/gen-dtb-s b/scripts/gen-dtb-s
index 6309a814a483..6a624e0bd5d0 100755
--- a/scripts/gen-dtb-s
+++ b/scripts/gen-dtb-s
@@ -5,6 +5,7 @@ dtb=$2
 imd=$3
 
 echo "#include <asm/barebox.lds.h>"
+echo "#include <asm-generic/pointer.h>"
 
 le32() {
 	printf ".byte 0x%02x, 0x%02x, 0x%02x, 0x%02x\n" \
@@ -50,7 +51,7 @@ echo ".incbin \"$dtb\""
 echo "__dtb_${name}_end:"
 echo ".global __dtb_${name}_end"
 if [ "$imd" = "y" ]; then
-	echo ".dword __barebox_imd_OF_${name}"
+	echo "ASM_PTR __barebox_imd_OF_${name}"
 fi
 echo ".balign STRUCT_ALIGNMENT"
 
@@ -69,7 +70,7 @@ echo ".incbin \"$dtb.z\""
 echo "__dtb_z_${name}_end:"
 echo ".global __dtb_z_${name}_end"
 if [ "$imd" = "y" ]; then
-	echo ".dword __barebox_imd_OF_${name}"
+	echo "ASM_PTR __barebox_imd_OF_${name}"
 fi
 echo ".balign STRUCT_ALIGNMENT"
 echo "#endif"
-- 
2.39.2




More information about the barebox mailing list