blob: 40c9c8038bb1e88110172680151a8223a8b2c790 [file] [log] [blame]
Michael Schwingend9fe6cc2011-05-23 00:00:09 +02001/*
2 * (C) Copyright 2000
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
Michael Schwingend9fe6cc2011-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 ARIBAUDc53687e2013-06-11 14:17:33 +020017 *(.__image_copy_start)
Michael Schwingend9fe6cc2011-05-23 00:00:09 +020018 arch/arm/cpu/ixp/start.o(.text*)
19 net/libnet.o(.text*)
20 board/dvlhost/libdvlhost.o(.text*)
21 arch/arm/cpu/ixp/libixp.o(.text*)
22 drivers/serial/libserial.o(.text*)
23
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 Schwingend9fe6cc2011-05-23 00:00:09 +020042
Marek Vasut607092a2012-10-12 10:27:03 +000043 . = ALIGN(4);
44 .u_boot_list : {
Albert ARIBAUDc24895e2013-02-25 00:59:00 +000045 KEEP(*(SORT(.u_boot_list*)));
Marek Vasut607092a2012-10-12 10:27:03 +000046 }
47
Michael Schwingend9fe6cc2011-05-23 00:00:09 +020048 . = ALIGN (4);
Benoît Thébaudeau03bae032013-04-11 09:35:46 +000049
Albert ARIBAUDc53687e2013-06-11 14:17:33 +020050 .image_copy_end :
51 {
52 *(.__image_copy_end)
53 }
Benoît Thébaudeau03bae032013-04-11 09:35:46 +000054
Albert ARIBAUDaf3ff162013-06-11 14:17:34 +020055 .rel_dyn_start :
56 {
57 *(.__rel_dyn_start)
58 }
59
Michael Schwingend9fe6cc2011-05-23 00:00:09 +020060 .rel.dyn : {
Michael Schwingend9fe6cc2011-05-23 00:00:09 +020061 *(.rel*)
Albert ARIBAUDaf3ff162013-06-11 14:17:34 +020062 }
63
64 .rel_dyn_end :
65 {
66 *(.__rel_dyn_end)
Michael Schwingend9fe6cc2011-05-23 00:00:09 +020067 }
68
Albert ARIBAUD436f6322013-02-25 00:58:59 +000069 _end = .;
70
Albert ARIBAUDba5662d2013-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 ARIBAUD436f6322013-02-25 00:58:59 +000076 .bss_start __rel_dyn_start (OVERLAY) : {
77 KEEP(*(.__bss_start));
Albert ARIBAUDba5662d2013-04-11 05:43:21 +000078 __bss_base = .;
Albert ARIBAUD436f6322013-02-25 00:58:59 +000079 }
80
Albert ARIBAUDba5662d2013-04-11 05:43:21 +000081 .bss __bss_base (OVERLAY) : {
Michael Schwingend9fe6cc2011-05-23 00:00:09 +020082 *(.bss*)
83 . = ALIGN(4);
Albert ARIBAUDba5662d2013-04-11 05:43:21 +000084 __bss_limit = .;
Michael Schwingend9fe6cc2011-05-23 00:00:09 +020085 }
Albert ARIBAUDba5662d2013-04-11 05:43:21 +000086 .bss_end __bss_limit (OVERLAY) : {
87 KEEP(*(.__bss_end));
Michael Schwingend9fe6cc2011-05-23 00:00:09 +020088 }
Albert ARIBAUD436f6322013-02-25 00:58:59 +000089
Albert ARIBAUD16915932013-06-11 14:17:31 +020090 /DISCARD/ : { *(.dynsym) }
Michael Schwingend9fe6cc2011-05-23 00:00:09 +020091 /DISCARD/ : { *(.dynstr*) }
92 /DISCARD/ : { *(.dynamic*) }
93 /DISCARD/ : { *(.plt*) }
94 /DISCARD/ : { *(.interp*) }
95 /DISCARD/ : { *(.gnu*) }
96}