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 <patrick.rudolph@9elements.com>
This commit is contained in:
Patrick Rudolph 2025-12-15 09:16:39 +01:00 committed by Tom Rini
parent 0cb8a88e7a
commit a8d982e1f1

View File

@ -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