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:
parent
3f8b8e3036
commit
37964494c0
@ -6,15 +6,6 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#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)
|
* Routine: save_boot_params (called after reset from start.S)
|
||||||
* Description: save ATAG/FDT address provided by the firmware at boot time
|
* Description: save ATAG/FDT address provided by the firmware at boot time
|
||||||
@ -28,7 +19,8 @@ save_boot_params:
|
|||||||
adr x8, fw_dtb_pointer
|
adr x8, fw_dtb_pointer
|
||||||
str x0, [x8]
|
str x0, [x8]
|
||||||
#else
|
#else
|
||||||
str r2, fw_dtb_pointer
|
ldr r8, =fw_dtb_pointer
|
||||||
|
str r2, [r8]
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Returns */
|
/* Returns */
|
||||||
|
@ -27,8 +27,11 @@
|
|||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
/* From lowlevel_init.S */
|
/* Assigned in lowlevel_init.S
|
||||||
extern unsigned long fw_dtb_pointer;
|
* 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 */
|
/* TODO(sjg@chromium.org): Move these to the msg.c file */
|
||||||
struct msg_get_arm_mem {
|
struct msg_get_arm_mem {
|
||||||
|
Loading…
Reference in New Issue
Block a user