xref: /openbmc/u-boot/arch/arm/cpu/u-boot.lds (revision 47bd65ef057fb71b02b32741d5cfcaf03e2f0918)
1dde3b70dSSimon Glass/*
2dde3b70dSSimon Glass * Copyright (c) 2004-2008 Texas Instruments
3dde3b70dSSimon Glass *
4dde3b70dSSimon Glass * (C) Copyright 2002
5dde3b70dSSimon Glass * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
6dde3b70dSSimon Glass *
7dde3b70dSSimon Glass * See file CREDITS for list of people who contributed to this
8dde3b70dSSimon Glass * project.
9dde3b70dSSimon Glass *
10dde3b70dSSimon Glass * This program is free software; you can redistribute it and/or
11dde3b70dSSimon Glass * modify it under the terms of the GNU General Public License as
12dde3b70dSSimon Glass * published by the Free Software Foundation; either version 2 of
13dde3b70dSSimon Glass * the License, or (at your option) any later version.
14dde3b70dSSimon Glass *
15dde3b70dSSimon Glass * This program is distributed in the hope that it will be useful,
16dde3b70dSSimon Glass * but WITHOUT ANY WARRANTY; without even the implied warranty of
17dde3b70dSSimon Glass * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18dde3b70dSSimon Glass * GNU General Public License for more details.
19dde3b70dSSimon Glass *
20dde3b70dSSimon Glass * You should have received a copy of the GNU General Public License
21dde3b70dSSimon Glass * along with this program; if not, write to the Free Software
22dde3b70dSSimon Glass * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23dde3b70dSSimon Glass * MA 02111-1307 USA
24dde3b70dSSimon Glass */
25dde3b70dSSimon Glass
26dde3b70dSSimon GlassOUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
27dde3b70dSSimon GlassOUTPUT_ARCH(arm)
28dde3b70dSSimon GlassENTRY(_start)
29dde3b70dSSimon GlassSECTIONS
30dde3b70dSSimon Glass{
31dde3b70dSSimon Glass	. = 0x00000000;
32dde3b70dSSimon Glass
33dde3b70dSSimon Glass	. = ALIGN(4);
34dde3b70dSSimon Glass	.text :
35dde3b70dSSimon Glass	{
36d026dec8SAlbert ARIBAUD		*(.__image_copy_start)
37b68d6712SStephen Warren		CPUDIR/start.o (.text*)
38b68d6712SStephen Warren		*(.text*)
39dde3b70dSSimon Glass	}
40dde3b70dSSimon Glass
41dde3b70dSSimon Glass	. = ALIGN(4);
42dde3b70dSSimon Glass	.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
43dde3b70dSSimon Glass
44dde3b70dSSimon Glass	. = ALIGN(4);
45dde3b70dSSimon Glass	.data : {
46b68d6712SStephen Warren		*(.data*)
47dde3b70dSSimon Glass	}
48dde3b70dSSimon Glass
49dde3b70dSSimon Glass	. = ALIGN(4);
50dde3b70dSSimon Glass
51dde3b70dSSimon Glass	. = .;
52dde3b70dSSimon Glass
53dde3b70dSSimon Glass	. = ALIGN(4);
5455675142SMarek Vasut	.u_boot_list : {
55ef123c52SAlbert ARIBAUD		KEEP(*(SORT(.u_boot_list*)));
5655675142SMarek Vasut	}
5755675142SMarek Vasut
5855675142SMarek Vasut	. = ALIGN(4);
59dde3b70dSSimon Glass
60d026dec8SAlbert ARIBAUD	.image_copy_end :
61d026dec8SAlbert ARIBAUD	{
62d026dec8SAlbert ARIBAUD		*(.__image_copy_end)
63d026dec8SAlbert ARIBAUD	}
64dde3b70dSSimon Glass
65*47bd65efSAlbert ARIBAUD	.rel_dyn_start :
66*47bd65efSAlbert ARIBAUD	{
67*47bd65efSAlbert ARIBAUD		*(.__rel_dyn_start)
68*47bd65efSAlbert ARIBAUD	}
69*47bd65efSAlbert ARIBAUD
70dde3b70dSSimon Glass	.rel.dyn : {
71dde3b70dSSimon Glass		*(.rel*)
72*47bd65efSAlbert ARIBAUD	}
73*47bd65efSAlbert ARIBAUD
74*47bd65efSAlbert ARIBAUD	.rel_dyn_end :
75*47bd65efSAlbert ARIBAUD	{
76*47bd65efSAlbert ARIBAUD		*(.__rel_dyn_end)
77dde3b70dSSimon Glass	}
78dde3b70dSSimon Glass
79dde3b70dSSimon Glass	_end = .;
80dde3b70dSSimon Glass
81dde3b70dSSimon Glass	/*
82dde3b70dSSimon Glass	 * Deprecated: this MMU section is used by pxa at present but
83dde3b70dSSimon Glass	 * should not be used by new boards/CPUs.
84dde3b70dSSimon Glass	 */
85dde3b70dSSimon Glass	. = ALIGN(4096);
86dde3b70dSSimon Glass	.mmutable : {
87dde3b70dSSimon Glass		*(.mmutable)
88dde3b70dSSimon Glass	}
89dde3b70dSSimon Glass
90f84a7b8fSAlbert ARIBAUD/*
91f84a7b8fSAlbert ARIBAUD * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
92f84a7b8fSAlbert ARIBAUD * __bss_base and __bss_limit are for linker only (overlay ordering)
93f84a7b8fSAlbert ARIBAUD */
94f84a7b8fSAlbert ARIBAUD
953ebd1cbcSAlbert ARIBAUD	.bss_start __rel_dyn_start (OVERLAY) : {
963ebd1cbcSAlbert ARIBAUD		KEEP(*(.__bss_start));
97f84a7b8fSAlbert ARIBAUD		__bss_base = .;
983ebd1cbcSAlbert ARIBAUD	}
993ebd1cbcSAlbert ARIBAUD
100f84a7b8fSAlbert ARIBAUD	.bss __bss_base (OVERLAY) : {
101b68d6712SStephen Warren		*(.bss*)
102dde3b70dSSimon Glass		 . = ALIGN(4);
103f84a7b8fSAlbert ARIBAUD		 __bss_limit = .;
104dde3b70dSSimon Glass	}
105dde3b70dSSimon Glass
106f84a7b8fSAlbert ARIBAUD	.bss_end __bss_limit (OVERLAY) : {
107f84a7b8fSAlbert ARIBAUD		KEEP(*(.__bss_end));
108dde3b70dSSimon Glass	}
109dde3b70dSSimon Glass
11009d81184SAlbert ARIBAUD	/DISCARD/ : { *(.dynsym) }
111dde3b70dSSimon Glass	/DISCARD/ : { *(.dynstr*) }
112dde3b70dSSimon Glass	/DISCARD/ : { *(.dynamic*) }
113dde3b70dSSimon Glass	/DISCARD/ : { *(.plt*) }
114dde3b70dSSimon Glass	/DISCARD/ : { *(.interp*) }
115dde3b70dSSimon Glass	/DISCARD/ : { *(.gnu*) }
116dde3b70dSSimon Glass}
117