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