mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-23 10:28:51 +09:00
![Michal Simek](/assets/img/avatar_default.png)
Mark explicitly bss sections to not be loaded at
run time.
The similar patch was done in past by:
"Fix linker scripts: add NOLOAD atribute to .bss/.sbss sections"
(sha1: 64134f0112
)
The problem is related to latest toolchain added to Xilinx
v2017.1 design tools where jtag loader is trying to access
ununitialized memory.
Signed-off-by: Michal Simek <michal.simek@xilinx.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 (NOLOAD) : {
|
|
. = ALIGN(8);
|
|
KEEP(*(.__bss_start));
|
|
} >.sdram
|
|
|
|
.bss (NOLOAD) : {
|
|
*(.bss*)
|
|
. = ALIGN(8);
|
|
} >.sdram
|
|
|
|
.bss_end (NOLOAD) : {
|
|
KEEP(*(.__bss_end));
|
|
} >.sdram
|
|
|
|
/DISCARD/ : { *(.dynsym) }
|
|
/DISCARD/ : { *(.dynstr*) }
|
|
/DISCARD/ : { *(.dynamic*) }
|
|
/DISCARD/ : { *(.plt*) }
|
|
/DISCARD/ : { *(.interp*) }
|
|
/DISCARD/ : { *(.gnu*) }
|
|
}
|