xref: /rk3399_rockchip-uboot/arch/x86/lib/elf_ia32_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_ia32_efi.lds in gnu-efi
7*d36badfdSSimon Glass */
8*d36badfdSSimon Glass
9*d36badfdSSimon GlassOUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
10*d36badfdSSimon GlassOUTPUT_ARCH(i386)
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	.text :
18*d36badfdSSimon Glass	{
19*d36badfdSSimon Glass		*(.text)
20*d36badfdSSimon Glass		*(.text.*)
21*d36badfdSSimon Glass		*(.gnu.linkonce.t.*)
22*d36badfdSSimon Glass	}
23*d36badfdSSimon Glass	. = ALIGN(4096);
24*d36badfdSSimon Glass	.sdata :
25*d36badfdSSimon Glass	{
26*d36badfdSSimon Glass		*(.got.plt)
27*d36badfdSSimon Glass		*(.got)
28*d36badfdSSimon Glass		*(.srodata)
29*d36badfdSSimon Glass		*(.sdata)
30*d36badfdSSimon Glass		*(.sbss)
31*d36badfdSSimon Glass		*(.scommon)
32*d36badfdSSimon Glass	}
33*d36badfdSSimon Glass	. = ALIGN(4096);
34*d36badfdSSimon Glass	.data :
35*d36badfdSSimon Glass	{
36*d36badfdSSimon Glass		*(.rodata*)
37*d36badfdSSimon Glass		*(.data)
38*d36badfdSSimon Glass		*(.data1)
39*d36badfdSSimon Glass		*(.data.*)
40*d36badfdSSimon Glass		*(.sdata)
41*d36badfdSSimon Glass		*(.got.plt)
42*d36badfdSSimon Glass		*(.got)
43*d36badfdSSimon Glass		/*
44*d36badfdSSimon Glass		 * the EFI loader doesn't seem to like a .bss section, so we
45*d36badfdSSimon Glass		 * stick it all into .data:
46*d36badfdSSimon Glass		 */
47*d36badfdSSimon Glass		*(.sbss)
48*d36badfdSSimon Glass		*(.scommon)
49*d36badfdSSimon Glass		*(.dynbss)
50*d36badfdSSimon Glass		*(.bss)
51*d36badfdSSimon Glass		*(COMMON)
52*d36badfdSSimon Glass
53*d36badfdSSimon Glass		/* U-Boot lists and device tree */
54*d36badfdSSimon Glass		. = ALIGN(8);
55*d36badfdSSimon Glass		*(SORT(.u_boot_list*));
56*d36badfdSSimon Glass		. = ALIGN(8);
57*d36badfdSSimon Glass		*(.dtb*);
58*d36badfdSSimon Glass	}
59*d36badfdSSimon Glass
60*d36badfdSSimon Glass	. = ALIGN(4096);
61*d36badfdSSimon Glass	.dynamic  : { *(.dynamic) }
62*d36badfdSSimon Glass	. = ALIGN(4096);
63*d36badfdSSimon Glass	.rel :
64*d36badfdSSimon Glass	{
65*d36badfdSSimon Glass		*(.rel.data)
66*d36badfdSSimon Glass		*(.rel.data.*)
67*d36badfdSSimon Glass		*(.rel.got)
68*d36badfdSSimon Glass		*(.rel.stab)
69*d36badfdSSimon Glass		*(.data.rel.ro.local)
70*d36badfdSSimon Glass		*(.data.rel.local)
71*d36badfdSSimon Glass		*(.data.rel.ro)
72*d36badfdSSimon Glass		*(.data.rel*)
73*d36badfdSSimon Glass		*(.rel.u_boot_list*)
74*d36badfdSSimon Glass	}
75*d36badfdSSimon Glass	. = ALIGN(4096);
76*d36badfdSSimon Glass		.reloc :	/* This is the PECOFF .reloc section! */
77*d36badfdSSimon Glass	{
78*d36badfdSSimon Glass	*(.reloc)
79*d36badfdSSimon Glass	}
80*d36badfdSSimon Glass	. = ALIGN(4096);
81*d36badfdSSimon Glass	.dynsym   : { *(.dynsym) }
82*d36badfdSSimon Glass	. = ALIGN(4096);
83*d36badfdSSimon Glass	.dynstr   : { *(.dynstr) }
84*d36badfdSSimon Glass	. = ALIGN(4096);
85*d36badfdSSimon Glass	/DISCARD/ :
86*d36badfdSSimon Glass	{
87*d36badfdSSimon Glass		*(.rel.reloc)
88*d36badfdSSimon Glass		*(.eh_frame)
89*d36badfdSSimon Glass		*(.note.GNU-stack)
90*d36badfdSSimon Glass	}
91*d36badfdSSimon Glass	.comment 0 : { *(.comment) }
92*d36badfdSSimon Glass}
93