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
14MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,
15		LENGTH = IMAGE_MAX_SIZE }
16MEMORY { .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{
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#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
49	.u_boot_list : {
50		. = ALIGN(8);
51		KEEP(*(SORT(.u_boot_list*)));
52	} >.sram
53
54	.image_copy_end : {
55		. = ALIGN(8);
56		*(.__image_copy_end)
57	} >.sram
58
59	.end : {
60		. = ALIGN(8);
61		*(.__end)
62	} >.sram
63
64	_image_binary_end = .;
65
66	.bss_start (NOLOAD) : {
67		. = ALIGN(8);
68		KEEP(*(.__bss_start));
69	} >.sdram
70
71	.bss (NOLOAD) : {
72		*(.bss*)
73		 . = ALIGN(8);
74	} >.sdram
75
76	.bss_end (NOLOAD) : {
77		KEEP(*(.__bss_end));
78	} >.sdram
79
80	/DISCARD/ : { *(.rela*) }
81	/DISCARD/ : { *(.dynsym) }
82	/DISCARD/ : { *(.dynstr*) }
83	/DISCARD/ : { *(.dynamic*) }
84	/DISCARD/ : { *(.plt*) }
85	/DISCARD/ : { *(.interp*) }
86	/DISCARD/ : { *(.gnu*) }
87}
88