diff options
Diffstat (limited to 'configs/platform-v7a/patches/barebox-2022.04.0/0001-ARM-asm-fix-miscompilation-of-32-bit-ENTRY_FUNCTION_.patch')
-rw-r--r-- | configs/platform-v7a/patches/barebox-2022.04.0/0001-ARM-asm-fix-miscompilation-of-32-bit-ENTRY_FUNCTION_.patch | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/configs/platform-v7a/patches/barebox-2022.04.0/0001-ARM-asm-fix-miscompilation-of-32-bit-ENTRY_FUNCTION_.patch b/configs/platform-v7a/patches/barebox-2022.04.0/0001-ARM-asm-fix-miscompilation-of-32-bit-ENTRY_FUNCTION_.patch deleted file mode 100644 index 21088e9..0000000 --- a/configs/platform-v7a/patches/barebox-2022.04.0/0001-ARM-asm-fix-miscompilation-of-32-bit-ENTRY_FUNCTION_.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 687c229fb85f1116eef2a103617e44dd0bca0953 Mon Sep 17 00:00:00 2001 -From: Ahmad Fatoum <a.fatoum@pengutronix.de> -Date: Fri, 22 Apr 2022 14:47:53 +0200 -Subject: [PATCH 1/5] ARM: asm: fix miscompilation of 32-bit - ENTRY_FUNCTION_WITHSTACK - -gcc-11.1.1 shipped with OSELAS.Toolchain-2021.07.0 hoists a single -instruction from __ARM_SETUP_STACK in front of __barebox_arm_head -breaking the barebox header format for the Raspberry Pi 3. This can't -happen with ARM64 and the Raspberry Pi entry points are currently the -only 32-bit users. - -While the resulting barebox image was still bootable, header detection -would fail. Add an intermediate naked function to work around this. - -This is not required for plain ENTRY_FUNCTION, because the -board-supplied entry point is already NAKED. For -ENTRY_FUNCTION_WITH_FUNCTION, that same entry point is intentionally -non-naked to reduce pitfalls for board code authors.. - -Fixes: 880c9803b95a ("ARM: implement ENTRY_FUNCTION_WITHSTACK") -Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> ---- - arch/arm/include/asm/barebox-arm.h | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/arch/arm/include/asm/barebox-arm.h b/arch/arm/include/asm/barebox-arm.h -index d915cde294a4..8b0c00633277 100644 ---- a/arch/arm/include/asm/barebox-arm.h -+++ b/arch/arm/include/asm/barebox-arm.h -@@ -194,15 +194,21 @@ static inline unsigned long arm_mem_barebox_image(unsigned long membase, - void name(ulong r0, ulong r1, ulong r2); \ - \ - static void __##name(ulong, ulong, ulong); \ -+ static void ____##name(ulong, ulong, ulong); \ - \ - void NAKED __section(.text_head_entry_##name) name \ - (ulong r0, ulong r1, ulong r2) \ - { \ - __barebox_arm_head(); \ -- __ARM_SETUP_STACK(stack_top); \ - __##name(r0, r1, r2); \ - } \ -- static void noinline __##name \ -+ static void NAKED noinline __##name \ -+ (ulong r0, ulong r1, ulong r2) \ -+ { \ -+ __ARM_SETUP_STACK(stack_top); \ -+ ____##name(r0, r1, r2); \ -+ } \ -+ static void noinline ____##name \ - (ulong arg0, ulong arg1, ulong arg2) - - --- -2.30.2 - |