blob: 0035a0bf07d60a028618e028b5d4a42c91737e96 [file] [log] [blame]
Michael Schwingen10c97872011-05-23 00:00:09 +02001/*
2 * (C) Copyright 2000
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
Wolfgang Denk1a459662013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
Michael Schwingen10c97872011-05-23 00:00:09 +02006 */
7
8OUTPUT_FORMAT ("elf32-bigarm", "elf32-bigarm", "elf32-bigarm")
9OUTPUT_ARCH (arm)
10ENTRY (_start)
11SECTIONS
12{
13 . = 0x00000000;
14
15 . = ALIGN (4);
16 .text : {
Albert ARIBAUDd026dec2013-06-11 14:17:33 +020017 *(.__image_copy_start)
Michael Schwingen10c97872011-05-23 00:00:09 +020018 arch/arm/cpu/ixp/start.o(.text*)
Masahiro Yamadae2906a52013-11-11 14:36:00 +090019 net/built-in.o(.text*)
20 board/dvlhost/built-in.o(.text*)
21 arch/arm/cpu/ixp/built-in.o(.text*)
22 drivers/serial/built-in.o(.text*)
Michael Schwingen10c97872011-05-23 00:00:09 +020023
24 . = env_offset;
25 common/env_embedded.o(.ppcenv)
26 *(.text*)
27 }
28
29 . = ALIGN (4);
30 .rodata : {
31 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
32 }
33 . = ALIGN (4);
34 .data : {
35 *(.data*)
36 }
37 . = ALIGN (4);
38 .got : {
39 *(.got)
40 }
41 . =.;
Michael Schwingen10c97872011-05-23 00:00:09 +020042
Marek Vasut55675142012-10-12 10:27:03 +000043 . = ALIGN(4);
44 .u_boot_list : {
Albert ARIBAUDef123c52013-02-25 00:59:00 +000045 KEEP(*(SORT(.u_boot_list*)));
Marek Vasut55675142012-10-12 10:27:03 +000046 }
47
Michael Schwingen10c97872011-05-23 00:00:09 +020048 . = ALIGN (4);
Benoît Thébaudeau7086e912013-04-11 09:35:46 +000049
Albert ARIBAUDd026dec2013-06-11 14:17:33 +020050 .image_copy_end :
51 {
52 *(.__image_copy_end)
53 }
Benoît Thébaudeau7086e912013-04-11 09:35:46 +000054
Albert ARIBAUD47bd65e2013-06-11 14:17:34 +020055 .rel_dyn_start :
56 {
57 *(.__rel_dyn_start)
58 }
59
Michael Schwingen10c97872011-05-23 00:00:09 +020060 .rel.dyn : {
Michael Schwingen10c97872011-05-23 00:00:09 +020061 *(.rel*)
Albert ARIBAUD47bd65e2013-06-11 14:17:34 +020062 }
63
64 .rel_dyn_end :
65 {
66 *(.__rel_dyn_end)
Michael Schwingen10c97872011-05-23 00:00:09 +020067 }
68
Albert ARIBAUD3ebd1cb2013-02-25 00:58:59 +000069 _end = .;
70
Albert ARIBAUDf84a7b82013-04-11 05:43:21 +000071/*
72 * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
73 * __bss_base and __bss_limit are for linker only (overlay ordering)
74 */
75
Albert ARIBAUD3ebd1cb2013-02-25 00:58:59 +000076 .bss_start __rel_dyn_start (OVERLAY) : {
77 KEEP(*(.__bss_start));
Albert ARIBAUDf84a7b82013-04-11 05:43:21 +000078 __bss_base = .;
Albert ARIBAUD3ebd1cb2013-02-25 00:58:59 +000079 }
80
Albert ARIBAUDf84a7b82013-04-11 05:43:21 +000081 .bss __bss_base (OVERLAY) : {
Michael Schwingen10c97872011-05-23 00:00:09 +020082 *(.bss*)
83 . = ALIGN(4);
Albert ARIBAUDf84a7b82013-04-11 05:43:21 +000084 __bss_limit = .;
Michael Schwingen10c97872011-05-23 00:00:09 +020085 }
Albert ARIBAUDf84a7b82013-04-11 05:43:21 +000086 .bss_end __bss_limit (OVERLAY) : {
87 KEEP(*(.__bss_end));
Albert ARIBAUD3ebd1cb2013-02-25 00:58:59 +000088 }
89
Albert ARIBAUD09d81182013-06-11 14:17:31 +020090 /DISCARD/ : { *(.dynsym) }
Michael Schwingen10c97872011-05-23 00:00:09 +020091 /DISCARD/ : { *(.dynstr*) }
92 /DISCARD/ : { *(.dynamic*) }
93 /DISCARD/ : { *(.plt*) }
94 /DISCARD/ : { *(.interp*) }
95 /DISCARD/ : { *(.gnu*) }
96}