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