xref: /openbmc/u-boot/arch/arm/lib/elf_arm_efi.lds (revision e8f80a5a)
1*83d290c5STom Rini/* SPDX-License-Identifier: BSD-2-Clause */
2dd46eef2SSimon Glass/*
3dd46eef2SSimon Glass * U-Boot ARM EFI linker script
4dd46eef2SSimon Glass *
5dd46eef2SSimon Glass * Modified from elf_arm_efi.lds in gnu-efi
6dd46eef2SSimon Glass */
7dd46eef2SSimon Glass
8dd46eef2SSimon GlassOUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
9dd46eef2SSimon GlassOUTPUT_ARCH(arm)
10dd46eef2SSimon GlassENTRY(_start)
11dd46eef2SSimon GlassSECTIONS
12dd46eef2SSimon Glass{
13dd46eef2SSimon Glass	.text 0x0 : {
14dd46eef2SSimon Glass		_text = .;
15dd46eef2SSimon Glass		*(.text.head)
16dd46eef2SSimon Glass		*(.text)
17dd46eef2SSimon Glass		*(.text.*)
18dd46eef2SSimon Glass		*(.gnu.linkonce.t.*)
19dd46eef2SSimon Glass		*(.srodata)
20dd46eef2SSimon Glass		*(.rodata*)
21dd46eef2SSimon Glass		. = ALIGN(16);
22dd46eef2SSimon Glass	}
23dd46eef2SSimon Glass	_etext = .;
24dd46eef2SSimon Glass	_text_size = . - _text;
25dd46eef2SSimon Glass	.dynamic  : { *(.dynamic) }
26dd46eef2SSimon Glass	.data : {
27dd46eef2SSimon Glass		_data = .;
28dd46eef2SSimon Glass		*(.sdata)
29dd46eef2SSimon Glass		*(.data)
30dd46eef2SSimon Glass		*(.data1)
31dd46eef2SSimon Glass		*(.data.*)
32dd46eef2SSimon Glass		*(.got.plt)
33dd46eef2SSimon Glass		*(.got)
34dd46eef2SSimon Glass
35dd46eef2SSimon Glass		/*
36dd46eef2SSimon Glass		 * The EFI loader doesn't seem to like a .bss section, so we
37dd46eef2SSimon Glass		 * stick it all into .data:
38dd46eef2SSimon Glass		 */
39dd46eef2SSimon Glass		. = ALIGN(16);
40dd46eef2SSimon Glass		_bss = .;
41dd46eef2SSimon Glass		*(.sbss)
42dd46eef2SSimon Glass		*(.scommon)
43dd46eef2SSimon Glass		*(.dynbss)
44dd46eef2SSimon Glass		*(.bss)
45dd46eef2SSimon Glass		*(.bss.*)
46dd46eef2SSimon Glass		*(COMMON)
47dd46eef2SSimon Glass		. = ALIGN(16);
48dd46eef2SSimon Glass		_bss_end = .;
49dd46eef2SSimon Glass		_edata = .;
50dd46eef2SSimon Glass	}
51dd46eef2SSimon Glass	.rel.dyn : { *(.rel.dyn) }
52dd46eef2SSimon Glass	.rel.plt : { *(.rel.plt) }
53dd46eef2SSimon Glass	.rel.got : { *(.rel.got) }
54dd46eef2SSimon Glass	.rel.data : { *(.rel.data) *(.rel.data*) }
55dd46eef2SSimon Glass	_data_size = . - _etext;
56dd46eef2SSimon Glass
57dd46eef2SSimon Glass	/DISCARD/ : {
58dd46eef2SSimon Glass		*(.rel.reloc)
59dd46eef2SSimon Glass		*(.eh_frame)
60dd46eef2SSimon Glass		*(.note.GNU-stack)
6152a250afSAlexander Graf		*(.dynsym)
6252a250afSAlexander Graf		*(.dynstr)
6352a250afSAlexander Graf		*(.note.gnu.build-id)
6452a250afSAlexander Graf		*(.comment)
65dd46eef2SSimon Glass	}
66dd46eef2SSimon Glass}
67