blob: 676ae2c4f9a0000d8007c97d99486a495b658f7d [file] [log] [blame]
Wolfgang Denk4646d2a2006-05-30 15:56:48 +02001/*
Jean-Christophe PLAGNIOL-VILLARD7580b862009-05-08 20:24:12 +02002 * (C) Copyright 2000-2006
Wolfgang Denk4646d2a2006-05-30 15:56:48 +02003 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
Wolfgang Denk4646d2a2006-05-30 15:56:48 +02006 */
7
8OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-bigarm")
9OUTPUT_ARCH(arm)
10ENTRY(_start)
11SECTIONS
12{
13 . = 0x00000000;
14
15 . = ALIGN(4);
Jean-Christophe PLAGNIOL-VILLARD7580b862009-05-08 20:24:12 +020016 .text :
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020017 {
Albert ARIBAUDc53687e2013-06-11 14:17:33 +020018 *(.__image_copy_start)
Michael Schwingenbc5e9c62011-05-23 00:00:03 +020019 arch/arm/cpu/ixp/start.o(.text*)
20 *(.text*)
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020021 }
22
23 . = ALIGN(4);
Trent Piepho4438e5e2009-02-18 15:22:05 -080024 .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020025
26 . = ALIGN(4);
Heiko Schocherb2b37f02010-09-17 13:10:47 +020027 .data : {
Michael Schwingenbc5e9c62011-05-23 00:00:03 +020028 *(.data*)
Heiko Schocherb2b37f02010-09-17 13:10:47 +020029 }
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020030
31 . = ALIGN(4);
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020032
33 . = .;
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020034
35 . = ALIGN(4);
Marek Vasut607092a2012-10-12 10:27:03 +000036 .u_boot_list : {
Albert ARIBAUDc24895e2013-02-25 00:59:00 +000037 KEEP(*(SORT(.u_boot_list*)));
Marek Vasut607092a2012-10-12 10:27:03 +000038 }
39
40 . = ALIGN(4);
Albert Aribaud126897e2010-11-25 22:45:02 +010041
Albert ARIBAUDc53687e2013-06-11 14:17:33 +020042 .image_copy_end :
43 {
44 *(.__image_copy_end)
45 }
Benoît Thébaudeau03bae032013-04-11 09:35:46 +000046
Albert ARIBAUDaf3ff162013-06-11 14:17:34 +020047 .rel_dyn_start :
48 {
49 *(.__rel_dyn_start)
50 }
51
Albert Aribaud126897e2010-11-25 22:45:02 +010052 .rel.dyn : {
Albert Aribaud126897e2010-11-25 22:45:02 +010053 *(.rel*)
Albert ARIBAUDaf3ff162013-06-11 14:17:34 +020054 }
55
56 .rel_dyn_end :
57 {
58 *(.__rel_dyn_end)
Albert Aribaud126897e2010-11-25 22:45:02 +010059 }
60
Po-Yu Chuang1864b002011-03-01 23:02:04 +000061 _end = .;
62
Albert ARIBAUDba5662d2013-04-11 05:43:21 +000063/*
64 * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
65 * __bss_base and __bss_limit are for linker only (overlay ordering)
66 */
67
Albert ARIBAUD436f6322013-02-25 00:58:59 +000068 .bss_start __rel_dyn_start (OVERLAY) : {
69 KEEP(*(.__bss_start));
Albert ARIBAUDba5662d2013-04-11 05:43:21 +000070 __bss_base = .;
Albert ARIBAUD436f6322013-02-25 00:58:59 +000071 }
72
Albert ARIBAUDba5662d2013-04-11 05:43:21 +000073 .bss __bss_base (OVERLAY) : {
Michael Schwingenbc5e9c62011-05-23 00:00:03 +020074 *(.bss*)
Albert Aribaud126897e2010-11-25 22:45:02 +010075 . = ALIGN(4);
Albert ARIBAUDba5662d2013-04-11 05:43:21 +000076 __bss_limit = .;
Albert ARIBAUD436f6322013-02-25 00:58:59 +000077 }
Albert ARIBAUDba5662d2013-04-11 05:43:21 +000078 .bss_end __bss_limit (OVERLAY) : {
79 KEEP(*(.__bss_end));
Albert Aribaud126897e2010-11-25 22:45:02 +010080 }
81
Albert ARIBAUD95fc6d62013-11-07 14:21:46 +010082 .dynsym _end : { *(.dynsym) }
83 .dynbss : { *(.dynbss) }
84 .dynstr : { *(.dynstr*) }
85 .dynamic : { *(.dynamic*) }
86 .hash : { *(.hash*) }
87 .plt : { *(.plt*) }
88 .interp : { *(.interp*) }
89 .gnu : { *(.gnu*) }
90 .ARM.exidx : { *(.ARM.exidx*) }
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020091}