blob: db45c00e1a929b6925c8ef3e976c3657017d8443 [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Sergey Kostanbaev7237d222014-06-25 23:44:29 +04002/*
3 *
4 * Copyright (C) 2013
5 * Sergey Kostanbaev <sergey.kostanbaev <at> fairwaves.ru>
6 *
7 * Copyright (c) 2004-2008 Texas Instruments
8 *
9 * (C) Copyright 2002
10 * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
Sergey Kostanbaev7237d222014-06-25 23:44:29 +040011 */
12
13OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
14OUTPUT_ARCH(arm)
15ENTRY(_start)
16SECTIONS
17{
18 . = 0x00000000;
19
20 . = ALIGN(4);
21 .text : {
22 *(.__image_copy_start)
Sergey Kostanbaev0bf62d72014-07-28 16:08:01 +080023 *(.vectors)
Sergey Kostanbaev7237d222014-06-25 23:44:29 +040024 arch/arm/cpu/arm920t/start.o (.text*)
25 . = 0x1000;
26
27 LONG(0x53555243)
28 *(.text*)
29 }
30
31 . = ALIGN(4);
32 .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
33
34 . = ALIGN(4);
35 .data : {
36 *(.data*)
37 }
38
39 . = ALIGN(4);
40
41 . = .;
42
43 . = ALIGN(4);
44 .u_boot_list : {
45 KEEP(*(SORT(.u_boot_list*)));
46 }
47
48 . = ALIGN(4);
49
50 .image_copy_end :
51 {
52 *(.__image_copy_end)
53 }
54
55 .rel_dyn_start :
56 {
57 *(.__rel_dyn_start)
58 }
59
60 .rel.dyn : {
61 *(.rel*)
62 }
63
64 .rel_dyn_end :
65 {
66 *(.__rel_dyn_end)
67 }
68
69 .end :
70 {
71 *(.__end)
72 }
73
74 _image_binary_end = .;
75
76 /*
77 * Deprecated: this MMU section is used by pxa at present but
78 * should not be used by new boards/CPUs.
79 */
80 . = ALIGN(4096);
81 .mmutable : {
82 *(.mmutable)
83 }
84
85/*
86 * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
87 * __bss_base and __bss_limit are for linker only (overlay ordering)
88 */
89
90 .bss_start __rel_dyn_start (OVERLAY) : {
91 KEEP(*(.__bss_start));
92 __bss_base = .;
93 }
94
95 .bss __bss_base (OVERLAY) : {
96 *(.bss*)
97 . = ALIGN(4);
98 __bss_limit = .;
99 }
100
101 .bss_end __bss_limit (OVERLAY) : {
102 KEEP(*(.__bss_end));
103 }
104
105 .dynsym _image_binary_end : { *(.dynsym) }
106 .dynbss : { *(.dynbss) }
107 .dynstr : { *(.dynstr*) }
108 .dynamic : { *(.dynamic*) }
109 .plt : { *(.plt*) }
110 .interp : { *(.interp*) }
111 .gnu.hash : { *(.gnu.hash) }
112 .gnu : { *(.gnu*) }
113 .ARM.exidx : { *(.ARM.exidx*) }
114 .gnu.linkonce.armexidx : { *(.gnu.linkonce.armexidx.*) }
115}