[PATCH] arm64: Don't truncate upper 32 bits in ENTRY_FUNCTION arg registers

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Thu Sep 16 02:33:56 PDT 2021


From: Ahmad Fatoum <ahmad at a3f.at>

Use a long instead of an u32. For 32-bit arm there is no difference, for
arm64 this results in being able to use the whole register size of 64
bits.

Signed-off-by: Ahmad Fatoum <ahmad at a3f.at>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
---
 arch/arm/include/asm/barebox-arm.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/include/asm/barebox-arm.h b/arch/arm/include/asm/barebox-arm.h
index 24f9bce2ef7a..cfb5943f33d6 100644
--- a/arch/arm/include/asm/barebox-arm.h
+++ b/arch/arm/include/asm/barebox-arm.h
@@ -162,18 +162,18 @@ static inline unsigned long arm_mem_barebox_image(unsigned long membase,
 }
 
 #define ENTRY_FUNCTION(name, arg0, arg1, arg2)				\
-	void name (uint32_t r0, uint32_t r1, uint32_t r2);		\
+	void name(ulong r0, ulong r1, ulong r2);			\
 									\
-	static void __##name(uint32_t, uint32_t, uint32_t);		\
+	static void __##name(ulong, ulong, ulong);			\
 									\
 	void NAKED __section(.text_head_entry_##name)	name		\
-				(uint32_t r0, uint32_t r1, uint32_t r2)	\
+				(ulong r0, ulong r1, ulong r2)		\
 		{							\
 			__barebox_arm_head();				\
 			__##name(r0, r1, r2);				\
 		}							\
 		static void NAKED noinline __##name			\
-			(uint32_t arg0, uint32_t arg1, uint32_t arg2)
+			(ulong arg0, ulong arg1, ulong arg2)
 
 /*
  * When using compressed images in conjunction with relocatable images

base-commit: c945d24ec5dad6910b02697e4d1df09f89d2b950
-- 
2.30.2




More information about the barebox mailing list