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