blob: 712c485d4d0b90b3702095a61f9d5074a33216b4 [file] [log] [blame]
Kever Yang87ce4bc2019-04-01 17:15:53 +08001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * (C) Copyright 2019
4 * Rockchip Electronics Co., Ltd
5 * Kever Yang<kever.yang@rock-chips.com>
6 *
7 * (C) Copyright 2013
8 * David Feng <fenghua@phytium.com.cn>
9 *
10 * (C) Copyright 2002
11 * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
12 *
13 * (C) Copyright 2010
14 * Texas Instruments, <www.ti.com>
15 * Aneesh V <aneesh@ti.com>
16 */
17
18OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
19OUTPUT_ARCH(aarch64)
20ENTRY(_start)
21SECTIONS
22{
23 . = 0x00000000;
24
25 .text : {
26 . = ALIGN(8);
27 *(.__image_copy_start)
28 CPUDIR/start.o (.text*)
29 *(.text*)
30 }
31
32 .rodata : {
33 . = ALIGN(8);
34 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
35 }
36
37 .data : {
38 . = ALIGN(8);
39 *(.data*)
40 }
41
Andrew Scull5a9095c2022-05-30 10:00:04 +000042 __u_boot_list : {
Kever Yang87ce4bc2019-04-01 17:15:53 +080043 . = ALIGN(8);
Andrew Scull5a9095c2022-05-30 10:00:04 +000044 KEEP(*(SORT(__u_boot_list*)));
Kever Yang87ce4bc2019-04-01 17:15:53 +080045 }
46
47 .image_copy_end : {
48 . = ALIGN(8);
49 *(.__image_copy_end)
50 }
51
52 .end : {
53 . = ALIGN(8);
54 *(.__end)
55 }
56
57 _image_binary_end = .;
58
Ilias Apalodimas6d1e1b82024-03-15 08:43:46 +020059 .bss ALIGN(8) : {
60 __bss_start = .;
Kever Yang87ce4bc2019-04-01 17:15:53 +080061 *(.bss*)
Ilias Apalodimas6d1e1b82024-03-15 08:43:46 +020062 . = ALIGN(8);
63 __bss_end = .;
Kever Yang87ce4bc2019-04-01 17:15:53 +080064 }
65
66 /DISCARD/ : { *(.dynsym) }
67 /DISCARD/ : { *(.dynstr*) }
68 /DISCARD/ : { *(.dynamic*) }
69 /DISCARD/ : { *(.plt*) }
70 /DISCARD/ : { *(.interp*) }
71 /DISCARD/ : { *(.gnu*) }
72}
73
74#if defined(CONFIG_TPL_MAX_SIZE)
75ASSERT(__image_copy_end - __image_copy_start < (CONFIG_TPL_MAX_SIZE), \
76 "TPL image too big");
77#endif
78
79#if defined(CONFIG_TPL_BSS_MAX_SIZE)
80ASSERT(__bss_end - __bss_start < (CONFIG_TPL_BSS_MAX_SIZE), \
81 "TPL image BSS too big");
82#endif
83
84#if defined(CONFIG_TPL_MAX_FOOTPRINT)
85ASSERT(__bss_end - _start < (CONFIG_TPL_MAX_FOOTPRINT), \
86 "TPL image plus BSS too big");
87#endif