37964494c0
The fw_dtb_pointer was defined in the assembly code, which makes him live in section .text_rest Put that's not necessary, we can push the variable in the .data section. This will prevent relocation errors like: board/raspberrypi/rpi/rpi.c:317:(.text.board_get_usable_ram_top+0x8): relocation truncated to fit: R_AARCH64_LDST64_ABS_LO12_NC against symbol `fw_dtb_pointer' defined in .text section in board/raspberrypi/rpi/built-in.o Signed-off-by: Matthias Brugger <mbrugger@suse.com>
28 lines
540 B
ArmAsm
28 lines
540 B
ArmAsm
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* (C) Copyright 2016
|
|
* Cédric Schieli <cschieli@gmail.com>
|
|
*/
|
|
|
|
#include <config.h>
|
|
|
|
/*
|
|
* Routine: save_boot_params (called after reset from start.S)
|
|
* Description: save ATAG/FDT address provided by the firmware at boot time
|
|
*/
|
|
|
|
.global save_boot_params
|
|
save_boot_params:
|
|
|
|
/* The firmware provided ATAG/FDT address can be found in r2/x0 */
|
|
#ifdef CONFIG_ARM64
|
|
adr x8, fw_dtb_pointer
|
|
str x0, [x8]
|
|
#else
|
|
ldr r8, =fw_dtb_pointer
|
|
str r2, [r8]
|
|
#endif
|
|
|
|
/* Returns */
|
|
b save_boot_params_ret
|