xref: /openbmc/u-boot/arch/arm/cpu/u-boot.lds (revision d0b5d9da5de280120b73e776663f6a3024f225f4)
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 *
71a459660SWolfgang Denk * SPDX-License-Identifier:	GPL-2.0+
8dde3b70dSSimon Glass */
9dde3b70dSSimon Glass
10dde3b70dSSimon GlassOUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
11dde3b70dSSimon GlassOUTPUT_ARCH(arm)
12dde3b70dSSimon GlassENTRY(_start)
13dde3b70dSSimon GlassSECTIONS
14dde3b70dSSimon Glass{
15dde3b70dSSimon Glass	. = 0x00000000;
16dde3b70dSSimon Glass
17dde3b70dSSimon Glass	. = ALIGN(4);
18dde3b70dSSimon Glass	.text :
19dde3b70dSSimon Glass	{
20d026dec8SAlbert ARIBAUD		*(.__image_copy_start)
21b68d6712SStephen Warren		CPUDIR/start.o (.text*)
22b68d6712SStephen Warren		*(.text*)
23dde3b70dSSimon Glass	}
24dde3b70dSSimon Glass
25dde3b70dSSimon Glass	. = ALIGN(4);
26dde3b70dSSimon Glass	.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
27dde3b70dSSimon Glass
28dde3b70dSSimon Glass	. = ALIGN(4);
29dde3b70dSSimon Glass	.data : {
30b68d6712SStephen Warren		*(.data*)
31dde3b70dSSimon Glass	}
32dde3b70dSSimon Glass
33dde3b70dSSimon Glass	. = ALIGN(4);
34dde3b70dSSimon Glass
35dde3b70dSSimon Glass	. = .;
36dde3b70dSSimon Glass
37dde3b70dSSimon Glass	. = ALIGN(4);
3855675142SMarek Vasut	.u_boot_list : {
39ef123c52SAlbert ARIBAUD		KEEP(*(SORT(.u_boot_list*)));
4055675142SMarek Vasut	}
4155675142SMarek Vasut
4255675142SMarek Vasut	. = ALIGN(4);
43dde3b70dSSimon Glass
44d026dec8SAlbert ARIBAUD	.image_copy_end :
45d026dec8SAlbert ARIBAUD	{
46d026dec8SAlbert ARIBAUD		*(.__image_copy_end)
47d026dec8SAlbert ARIBAUD	}
48dde3b70dSSimon Glass
4947bd65efSAlbert ARIBAUD	.rel_dyn_start :
5047bd65efSAlbert ARIBAUD	{
5147bd65efSAlbert ARIBAUD		*(.__rel_dyn_start)
5247bd65efSAlbert ARIBAUD	}
5347bd65efSAlbert ARIBAUD
54dde3b70dSSimon Glass	.rel.dyn : {
55dde3b70dSSimon Glass		*(.rel*)
5647bd65efSAlbert ARIBAUD	}
5747bd65efSAlbert ARIBAUD
5847bd65efSAlbert ARIBAUD	.rel_dyn_end :
5947bd65efSAlbert ARIBAUD	{
6047bd65efSAlbert ARIBAUD		*(.__rel_dyn_end)
61dde3b70dSSimon Glass	}
62dde3b70dSSimon Glass
63*d0b5d9daSAlbert ARIBAUD	.end :
64*d0b5d9daSAlbert ARIBAUD	{
65*d0b5d9daSAlbert ARIBAUD		*(.__end)
66*d0b5d9daSAlbert ARIBAUD	}
67*d0b5d9daSAlbert ARIBAUD
68*d0b5d9daSAlbert ARIBAUD	_image_binary_end = .;
69dde3b70dSSimon Glass
70dde3b70dSSimon Glass	/*
71dde3b70dSSimon Glass	 * Deprecated: this MMU section is used by pxa at present but
72dde3b70dSSimon Glass	 * should not be used by new boards/CPUs.
73dde3b70dSSimon Glass	 */
74dde3b70dSSimon Glass	. = ALIGN(4096);
75dde3b70dSSimon Glass	.mmutable : {
76dde3b70dSSimon Glass		*(.mmutable)
77dde3b70dSSimon Glass	}
78dde3b70dSSimon Glass
79f84a7b8fSAlbert ARIBAUD/*
80f84a7b8fSAlbert ARIBAUD * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
81f84a7b8fSAlbert ARIBAUD * __bss_base and __bss_limit are for linker only (overlay ordering)
82f84a7b8fSAlbert ARIBAUD */
83f84a7b8fSAlbert ARIBAUD
843ebd1cbcSAlbert ARIBAUD	.bss_start __rel_dyn_start (OVERLAY) : {
853ebd1cbcSAlbert ARIBAUD		KEEP(*(.__bss_start));
86f84a7b8fSAlbert ARIBAUD		__bss_base = .;
873ebd1cbcSAlbert ARIBAUD	}
883ebd1cbcSAlbert ARIBAUD
89f84a7b8fSAlbert ARIBAUD	.bss __bss_base (OVERLAY) : {
90b68d6712SStephen Warren		*(.bss*)
91dde3b70dSSimon Glass		 . = ALIGN(4);
92f84a7b8fSAlbert ARIBAUD		 __bss_limit = .;
93dde3b70dSSimon Glass	}
94dde3b70dSSimon Glass
95f84a7b8fSAlbert ARIBAUD	.bss_end __bss_limit (OVERLAY) : {
96f84a7b8fSAlbert ARIBAUD		KEEP(*(.__bss_end));
97dde3b70dSSimon Glass	}
98dde3b70dSSimon Glass
99*d0b5d9daSAlbert ARIBAUD	.dynsym _image_binary_end : { *(.dynsym) }
10047ed5dd0SAlbert ARIBAUD	.dynbss : { *(.dynbss) }
10147ed5dd0SAlbert ARIBAUD	.dynstr : { *(.dynstr*) }
10247ed5dd0SAlbert ARIBAUD	.dynamic : { *(.dynamic*) }
10347ed5dd0SAlbert ARIBAUD	.plt : { *(.plt*) }
10447ed5dd0SAlbert ARIBAUD	.interp : { *(.interp*) }
10547ed5dd0SAlbert ARIBAUD	.gnu : { *(.gnu*) }
10647ed5dd0SAlbert ARIBAUD	.ARM.exidx : { *(.ARM.exidx*) }
107b02bfc4dSAlbert ARIBAUD	.gnu.linkonce.armexidx : { *(.gnu.linkonce.armexidx.*) }
108dde3b70dSSimon Glass}
109