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