[PATCH] x86: cpu: Fix crash on FTRACE enabled builds

Patrick Rudolph patrick.rudolph at 9elements.com
Mon Dec 15 08:56:44 CET 2025


When compiled with FTRACE=1 U-boot will crash as %rdi is clobbered
in board_init_f_alloc_reserve() and board_init_f_init_reserve() will
memset the .text segment instead of the global_data struct.

According to the System V AMD64 ABI %rdi is not preserved and the
existing code only worked as board_init_f_alloc_reserve() was small
enough to not use %rdi.

Fix that by always passing the correct argument to
board_init_f_init_reserve().

TEST=Can boot on qemu-q35 with FTRACE=1 enabled during build.

Signed-off-by: Patrick Rudolph <patrick.rudolph at 9elements.com>
---
 arch/x86/cpu/start64.S | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/cpu/start64.S b/arch/x86/cpu/start64.S
index 78e894d2a21..3fcd8c15481 100644
--- a/arch/x86/cpu/start64.S
+++ b/arch/x86/cpu/start64.S
@@ -16,6 +16,8 @@ _start:
 	/* Set up memory using the existing stack */
 	mov	%rsp, %rdi
 	call	board_init_f_alloc_reserve
+
+	mov	%rsp, %rdi
 	mov	%rax, %rsp
 
 	call	board_init_f_init_reserve
-- 
2.52.0



More information about the U-Boot mailing list