rpi: push fw_dtb_pointer in the .data section

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>
This commit is contained in:
Matthias Brugger 2019-11-19 16:01:02 +01:00
parent 3f8b8e3036
commit 37964494c0
2 changed files with 7 additions and 12 deletions

View File

@ -6,15 +6,6 @@
#include <config.h>
.align 8
.global fw_dtb_pointer
fw_dtb_pointer:
#ifdef CONFIG_ARM64
.dword 0x0
#else
.word 0x0
#endif
/*
* Routine: save_boot_params (called after reset from start.S)
* Description: save ATAG/FDT address provided by the firmware at boot time
@ -28,7 +19,8 @@ save_boot_params:
adr x8, fw_dtb_pointer
str x0, [x8]
#else
str r2, fw_dtb_pointer
ldr r8, =fw_dtb_pointer
str r2, [r8]
#endif
/* Returns */

View File

@ -27,8 +27,11 @@
DECLARE_GLOBAL_DATA_PTR;
/* From lowlevel_init.S */
extern unsigned long fw_dtb_pointer;
/* Assigned in lowlevel_init.S
* Push the variable into the .data section so that it
* does not get cleared later.
*/
unsigned long __section(".data") fw_dtb_pointer;
/* TODO(sjg@chromium.org): Move these to the msg.c file */
struct msg_get_arm_mem {