xref: /OK3568_Linux_fs/u-boot/arch/arm/mach-rockchip/u-boot-tpl-v8.lds (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1/*
2 * (C) Copyright 2013
3 * David Feng <fenghua@phytium.com.cn>
4 *
5 * (C) Copyright 2002
6 * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
7 *
8 * (C) Copyright 2010
9 * Texas Instruments, <www.ti.com>
10 *	Aneesh V <aneesh@ti.com>
11 *
12 * SPDX-License-Identifier:	GPL-2.0+
13 */
14
15OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
16OUTPUT_ARCH(aarch64)
17ENTRY(_start)
18SECTIONS
19{
20	. = 0x00000000;
21
22	.text : {
23		. = ALIGN(8);
24		*(.__image_copy_start)
25		CPUDIR/start.o (.text*)
26		*(.text*)
27	}
28
29	.rodata : {
30		. = ALIGN(8);
31		*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
32	}
33
34	.data : {
35		. = ALIGN(8);
36		*(.data*)
37	}
38
39	.u_boot_list : {
40		. = ALIGN(8);
41		KEEP(*(SORT(.u_boot_list*)));
42	}
43
44	.image_copy_end : {
45		. = ALIGN(8);
46		*(.__image_copy_end)
47	}
48
49	.end : {
50		. = ALIGN(8);
51		*(.__end)
52	}
53
54	_image_binary_end = .;
55
56	.bss_start (NOLOAD) : {
57		. = ALIGN(8);
58		KEEP(*(.__bss_start));
59	}
60
61	.bss (NOLOAD) : {
62		*(.bss*)
63		 . = ALIGN(8);
64	}
65
66	.bss_end (NOLOAD) : {
67		KEEP(*(.__bss_end));
68	}
69
70	/DISCARD/ : { *(.dynsym) }
71	/DISCARD/ : { *(.dynstr*) }
72	/DISCARD/ : { *(.dynamic*) }
73	/DISCARD/ : { *(.plt*) }
74	/DISCARD/ : { *(.interp*) }
75	/DISCARD/ : { *(.gnu*) }
76}
77
78#if defined(CONFIG_TPL_MAX_SIZE)
79ASSERT(__image_copy_end - __image_copy_start < (CONFIG_TPL_MAX_SIZE), \
80	"TPL image too big");
81#endif
82
83#if defined(CONFIG_TPL_BSS_MAX_SIZE)
84ASSERT(__bss_end - __bss_start < (CONFIG_TPL_BSS_MAX_SIZE), \
85	"TPL image BSS too big");
86#endif
87
88#if defined(CONFIG_TPL_MAX_FOOTPRINT)
89ASSERT(__bss_end - _start < (CONFIG_TPL_MAX_FOOTPRINT), \
90	"TPL image plus BSS too big");
91#endif
92