1/* SPDX-License-Identifier: BSD-2-Clause */
2/*
3 * U-Boot EFI linker script include
4 *
5 * Modified from elf_aarch64_efi.lds in gnu-efi
6 */
7
8PHDRS
9{
10	data PT_LOAD FLAGS(3); /* SHF_WRITE | SHF_ALLOC */
11}
12
13ENTRY(_start)
14SECTIONS
15{
16	.text 0x0 : {
17		_text = .;
18		*(.text.head)
19		*(.text)
20		*(.text.*)
21		*(.gnu.linkonce.t.*)
22		*(.srodata)
23		*(.rodata*)
24	}
25	. = ALIGN(16);
26	.dynamic : { *(.dynamic) }
27	. = ALIGN(512);
28	.rela.dyn : { *(.rela.dyn) }
29	.rela.plt : { *(.rela.plt) }
30	.rela.got : { *(.rela.got) }
31	.rela.data : { *(.rela.data) *(.rela.data*) }
32	. = ALIGN(4096);
33	_etext = .;
34	_text_size = . - _text;
35	.data : {
36		_data = .;
37		*(.sdata)
38		*(.data)
39		*(.data1)
40		*(.data.*)
41		*(.got.plt)
42		*(.got)
43
44		/*
45		 * The EFI loader doesn't seem to like a .bss section, so we
46		 * stick it all into .data:
47		 */
48		. = ALIGN(16);
49		_bss = .;
50		*(.sbss)
51		*(.scommon)
52		*(.dynbss)
53		*(.bss)
54		*(.bss.*)
55		*(COMMON)
56		. = ALIGN(512);
57		_bss_end = .;
58		_edata = .;
59	} :data
60	_data_size = _edata - _data;
61
62	. = ALIGN(4096);
63	.dynsym   : { *(.dynsym) }
64	. = ALIGN(4096);
65	.dynstr   : { *(.dynstr) }
66	. = ALIGN(4096);
67	.note.gnu.build-id : { *(.note.gnu.build-id) }
68	/DISCARD/ : {
69		*(.rel.reloc)
70		*(.eh_frame)
71		*(.note.GNU-stack)
72	}
73	.comment 0 : { *(.comment) }
74}
75