mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-08 13:53:21 +09:00
![Masahiro Yamada](/assets/img/avatar_default.png)
To make SPL_OF_CONTROL work on ARM64 SoCs, _image_binary_end must be defined in the linker script. LD spl/u-boot-spl lib/built-in.o: In function `fdtdec_setup': lib/fdtdec.c:1186: undefined reference to `_image_binary_end' lib/fdtdec.c:1186: undefined reference to `_image_binary_end' make[1]: *** [spl/u-boot-spl] Error 1 make: *** [spl/u-boot-spl] Error 2 Note: CONFIG_SPL_SEPARATE_BSS must be defined as well on ARM64 SoCs. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Tom Rini <trini@konsulko.com>
80 lines
1.4 KiB
Plaintext
80 lines
1.4 KiB
Plaintext
/*
|
|
* (C) Copyright 2013
|
|
* David Feng <fenghua@phytium.com.cn>
|
|
*
|
|
* (C) Copyright 2002
|
|
* Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
|
|
*
|
|
* (C) Copyright 2010
|
|
* Texas Instruments, <www.ti.com>
|
|
* Aneesh V <aneesh@ti.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,
|
|
LENGTH = CONFIG_SPL_MAX_SIZE }
|
|
MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR,
|
|
LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
|
|
|
|
OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
|
|
OUTPUT_ARCH(aarch64)
|
|
ENTRY(_start)
|
|
SECTIONS
|
|
{
|
|
.text : {
|
|
. = ALIGN(8);
|
|
*(.__image_copy_start)
|
|
CPUDIR/start.o (.text*)
|
|
*(.text*)
|
|
} >.sram
|
|
|
|
.rodata : {
|
|
. = ALIGN(8);
|
|
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
|
|
} >.sram
|
|
|
|
.data : {
|
|
. = ALIGN(8);
|
|
*(.data*)
|
|
} >.sram
|
|
|
|
.u_boot_list : {
|
|
. = ALIGN(8);
|
|
KEEP(*(SORT(.u_boot_list*)));
|
|
} >.sram
|
|
|
|
.image_copy_end : {
|
|
. = ALIGN(8);
|
|
*(.__image_copy_end)
|
|
} >.sram
|
|
|
|
.end : {
|
|
. = ALIGN(8);
|
|
*(.__end)
|
|
} >.sram
|
|
|
|
_image_binary_end = .;
|
|
|
|
.bss_start : {
|
|
. = ALIGN(8);
|
|
KEEP(*(.__bss_start));
|
|
} >.sdram
|
|
|
|
.bss : {
|
|
*(.bss*)
|
|
. = ALIGN(8);
|
|
} >.sdram
|
|
|
|
.bss_end : {
|
|
KEEP(*(.__bss_end));
|
|
} >.sdram
|
|
|
|
/DISCARD/ : { *(.dynsym) }
|
|
/DISCARD/ : { *(.dynstr*) }
|
|
/DISCARD/ : { *(.dynamic*) }
|
|
/DISCARD/ : { *(.plt*) }
|
|
/DISCARD/ : { *(.interp*) }
|
|
/DISCARD/ : { *(.gnu*) }
|
|
}
|