xref: /rk3399_rockchip-uboot/arch/x86/lib/elf_x86_64_efi.lds (revision 2d221489df021393654805536be7effcb9d39702)
1*d36badfdSSimon Glass/*
2*d36badfdSSimon Glass * U-Boot EFI linker script
3*d36badfdSSimon Glass *
4*d36badfdSSimon Glass * SPDX-License-Identifier:	BSD-2-Clause
5*d36badfdSSimon Glass *
6*d36badfdSSimon Glass * Modified from usr/lib32/elf_x86_64_efi.lds in gnu-efi
7*d36badfdSSimon Glass */
8*d36badfdSSimon Glass
9*d36badfdSSimon GlassOUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
10*d36badfdSSimon GlassOUTPUT_ARCH(i386:x86-64)
11*d36badfdSSimon GlassENTRY(_start)
12*d36badfdSSimon GlassSECTIONS
13*d36badfdSSimon Glass{
14*d36badfdSSimon Glass	image_base = .;
15*d36badfdSSimon Glass	.hash : { *(.hash) }	/* this MUST come first, EFI expects it */
16*d36badfdSSimon Glass	. = ALIGN(4096);
17*d36badfdSSimon Glass	.eh_frame : {
18*d36badfdSSimon Glass		*(.eh_frame)
19*d36badfdSSimon Glass	}
20*d36badfdSSimon Glass
21*d36badfdSSimon Glass	. = ALIGN(4096);
22*d36badfdSSimon Glass
23*d36badfdSSimon Glass	.text : {
24*d36badfdSSimon Glass		*(.text)
25*d36badfdSSimon Glass		*(.text.*)
26*d36badfdSSimon Glass		*(.gnu.linkonce.t.*)
27*d36badfdSSimon Glass	}
28*d36badfdSSimon Glass
29*d36badfdSSimon Glass	. = ALIGN(4096);
30*d36badfdSSimon Glass
31*d36badfdSSimon Glass	.reloc : {
32*d36badfdSSimon Glass		*(.reloc)
33*d36badfdSSimon Glass	}
34*d36badfdSSimon Glass
35*d36badfdSSimon Glass	. = ALIGN(4096);
36*d36badfdSSimon Glass
37*d36badfdSSimon Glass	.data : {
38*d36badfdSSimon Glass		*(.rodata*)
39*d36badfdSSimon Glass		*(.got.plt)
40*d36badfdSSimon Glass		*(.got)
41*d36badfdSSimon Glass		*(.data*)
42*d36badfdSSimon Glass		*(.sdata)
43*d36badfdSSimon Glass		/* the EFI loader doesn't seem to like a .bss section, so we stick
44*d36badfdSSimon Glass		 * it all into .data: */
45*d36badfdSSimon Glass		*(.sbss)
46*d36badfdSSimon Glass		*(.scommon)
47*d36badfdSSimon Glass		*(.dynbss)
48*d36badfdSSimon Glass		*(.bss)
49*d36badfdSSimon Glass		*(COMMON)
50*d36badfdSSimon Glass		*(.rel.local)
51*d36badfdSSimon Glass
52*d36badfdSSimon Glass		/* U-Boot lists and device tree */
53*d36badfdSSimon Glass		. = ALIGN(8);
54*d36badfdSSimon Glass		*(SORT(.u_boot_list*));
55*d36badfdSSimon Glass		. = ALIGN(8);
56*d36badfdSSimon Glass		*(.dtb*);
57*d36badfdSSimon Glass	}
58*d36badfdSSimon Glass
59*d36badfdSSimon Glass	. = ALIGN(4096);
60*d36badfdSSimon Glass	.dynamic : { *(.dynamic) }
61*d36badfdSSimon Glass	. = ALIGN(4096);
62*d36badfdSSimon Glass
63*d36badfdSSimon Glass	.rela : {
64*d36badfdSSimon Glass		*(.rela.data*)
65*d36badfdSSimon Glass		*(.rela.got)
66*d36badfdSSimon Glass		*(.rela.stab)
67*d36badfdSSimon Glass	}
68*d36badfdSSimon Glass
69*d36badfdSSimon Glass	. = ALIGN(4096);
70*d36badfdSSimon Glass	.dynsym : { *(.dynsym) }
71*d36badfdSSimon Glass	. = ALIGN(4096);
72*d36badfdSSimon Glass	.dynstr : { *(.dynstr) }
73*d36badfdSSimon Glass	. = ALIGN(4096);
74*d36badfdSSimon Glass	.ignored.reloc : {
75*d36badfdSSimon Glass		*(.rela.reloc)
76*d36badfdSSimon Glass		*(.eh_frame)
77*d36badfdSSimon Glass		*(.note.GNU-stack)
78*d36badfdSSimon Glass	}
79*d36badfdSSimon Glass
80*d36badfdSSimon Glass	.comment 0 : { *(.comment) }
81*d36badfdSSimon Glass}
82