From a8d982e1f1726254ef27bbdf362f98954ee3feb7 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Mon, 15 Dec 2025 09:16:39 +0100 Subject: [PATCH] x86: cpu: Fix crash on FTRACE enabled builds 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 --- 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..968a2929d0b 100644 --- a/arch/x86/cpu/start64.S +++ b/arch/x86/cpu/start64.S @@ -16,7 +16,9 @@ _start: /* Set up memory using the existing stack */ mov %rsp, %rdi call board_init_f_alloc_reserve + mov %rax, %rsp + mov %rsp, %rdi call board_init_f_init_reserve -- 2.47.3