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