blob: ef8af67e11c35878cc29942f6bbceb6eea0c8490 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Scott Wood8e728cd2015-03-24 13:25:02 -07002/*
3 * (C) Copyright 2013
4 * David Feng <fenghua@phytium.com.cn>
5 *
6 * (C) Copyright 2002
7 * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
8 *
9 * (C) Copyright 2010
10 * Texas Instruments, <www.ti.com>
11 * Aneesh V <aneesh@ti.com>
Scott Wood8e728cd2015-03-24 13:25:02 -070012 */
13
Tom Rini2aaa27d2019-01-22 17:09:26 -050014MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,
15 LENGTH = IMAGE_MAX_SIZE }
Scott Wood8e728cd2015-03-24 13:25:02 -070016MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR,
17 LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
18
19OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
20OUTPUT_ARCH(aarch64)
21ENTRY(_start)
22SECTIONS
23{
Ilias Apalodimascdb58392024-03-15 08:43:50 +020024 __image_copy_start = ADDR(.text);
Scott Wood8e728cd2015-03-24 13:25:02 -070025 .text : {
26 . = ALIGN(8);
Scott Wood8e728cd2015-03-24 13:25:02 -070027 CPUDIR/start.o (.text*)
28 *(.text*)
29 } >.sram
30
31 .rodata : {
32 . = ALIGN(8);
33 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
34 } >.sram
35
36 .data : {
37 . = ALIGN(8);
38 *(.data*)
39 } >.sram
40
Peng Fan617fc292020-05-05 20:28:41 +080041#ifdef CONFIG_SPL_RECOVER_DATA_SECTION
42 .data_save : {
43 *(.__data_save_start)
44 . = SIZEOF(.data);
45 *(.__data_save_end)
46 } >.sram
47#endif
48
Andrew Scull5a9095c2022-05-30 10:00:04 +000049 __u_boot_list : {
Scott Wood8e728cd2015-03-24 13:25:02 -070050 . = ALIGN(8);
Andrew Scull5a9095c2022-05-30 10:00:04 +000051 KEEP(*(SORT(__u_boot_list*)));
Scott Wood8e728cd2015-03-24 13:25:02 -070052 } >.sram
53
Ilias Apalodimascdb58392024-03-15 08:43:50 +020054 . = ALIGN(8);
55 __image_copy_end = .;
Scott Wood8e728cd2015-03-24 13:25:02 -070056
57 .end : {
58 . = ALIGN(8);
59 *(.__end)
60 } >.sram
61
Masahiro Yamada9bcc5712016-03-08 20:34:44 +090062 _image_binary_end = .;
63
Ilias Apalodimas6d1e1b82024-03-15 08:43:46 +020064 .bss : {
65 __bss_start = .;
Scott Wood8e728cd2015-03-24 13:25:02 -070066 *(.bss*)
Ilias Apalodimas6d1e1b82024-03-15 08:43:46 +020067 . = ALIGN(8);
68 __bss_end = .;
Scott Wood8e728cd2015-03-24 13:25:02 -070069 } >.sdram
70
Marek BehĂșn57fd7992021-05-20 13:24:20 +020071 /DISCARD/ : { *(.rela*) }
Scott Wood8e728cd2015-03-24 13:25:02 -070072 /DISCARD/ : { *(.dynsym) }
73 /DISCARD/ : { *(.dynstr*) }
74 /DISCARD/ : { *(.dynamic*) }
75 /DISCARD/ : { *(.plt*) }
76 /DISCARD/ : { *(.interp*) }
77 /DISCARD/ : { *(.gnu*) }
Alper Nebi Yasak463eb092022-01-29 18:27:03 +030078
79#ifdef CONFIG_LINUX_KERNEL_IMAGE_HEADER
80#include "linux-kernel-image-header-vars.h"
81#endif
Scott Wood8e728cd2015-03-24 13:25:02 -070082}
Ilias Apalodimas6d1e1b82024-03-15 08:43:46 +020083
84ASSERT(ADDR(.bss) % 8 == 0, \
85 ".bss must be 8-byte aligned");