ccbf359bd11d7951d37f589787caa21a877b03f8
[oweals/u-boot.git] / arch / arm / cpu / armv8 / u-boot-spl.lds
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
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>
12  */
13
14 MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,
15                 LENGTH = IMAGE_MAX_SIZE }
16 MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR,
17                 LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
18
19 OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
20 OUTPUT_ARCH(aarch64)
21 ENTRY(_start)
22 SECTIONS
23 {
24         .text : {
25                 . = ALIGN(8);
26                 *(.__image_copy_start)
27                 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
41         .u_boot_list : {
42                 . = ALIGN(8);
43                 KEEP(*(SORT(.u_boot_list*)));
44         } >.sram
45
46         .image_copy_end : {
47                 . = ALIGN(8);
48                 *(.__image_copy_end)
49         } >.sram
50
51         .end : {
52                 . = ALIGN(8);
53                 *(.__end)
54         } >.sram
55
56         _image_binary_end = .;
57
58         .bss_start (NOLOAD) : {
59                 . = ALIGN(8);
60                 KEEP(*(.__bss_start));
61         } >.sdram
62
63         .bss (NOLOAD) : {
64                 *(.bss*)
65                  . = ALIGN(8);
66         } >.sdram
67
68         .bss_end (NOLOAD) : {
69                 KEEP(*(.__bss_end));
70         } >.sdram
71
72         /DISCARD/ : { *(.dynsym) }
73         /DISCARD/ : { *(.dynstr*) }
74         /DISCARD/ : { *(.dynamic*) }
75         /DISCARD/ : { *(.plt*) }
76         /DISCARD/ : { *(.interp*) }
77         /DISCARD/ : { *(.gnu*) }
78 }