1/* SPDX-License-Identifier: BSD-2-Clause */ 2/* 3 * U-Boot ARM EFI linker script 4 * 5 * Modified from elf_arm_efi.lds in gnu-efi 6 */ 7 8OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") 9OUTPUT_ARCH(arm) 10 11PHDRS 12{ 13 data PT_LOAD FLAGS(3); /* PF_W | PF_X */ 14} 15 16ENTRY(_start) 17SECTIONS 18{ 19 .text 0x0 : { 20 _text = .; 21 *(.text.head) 22 *(.text) 23 *(.text.*) 24 *(.gnu.linkonce.t.*) 25 *(.srodata) 26 *(.rodata*) 27 . = ALIGN(16); 28 *(.dynamic); 29 . = ALIGN(512); 30 } 31 _etext = .; 32 _text_size = . - _text; 33 . = ALIGN(4096); 34 .data : { 35 _data = .; 36 *(.sdata) 37 *(.data) 38 *(.data1) 39 *(.data.*) 40 *(.got.plt) 41 *(.got) 42 43 /* 44 * The EFI loader doesn't seem to like a .bss section, so we 45 * stick it all into .data: 46 */ 47 . = ALIGN(16); 48 _bss = .; 49 *(.sbss) 50 *(.scommon) 51 *(.dynbss) 52 *(.bss) 53 *(.bss.*) 54 *(COMMON) 55 . = ALIGN(512); 56 _bss_end = .; 57 _edata = .; 58 } :data 59 _data_size = . - _data; 60 61 /DISCARD/ : { 62 /* 63 * We don't support relocations. These would have to be 64 * translated from ELF to PE format and added to the .reloc 65 * section. 66 */ 67 *(.rel.dyn) 68 *(.rel.plt) 69 *(.rel.got) 70 *(.rel.data) 71 *(.rel.data*) 72 *(.rel.reloc) 73 *(.eh_frame) 74 *(.note.GNU-stack) 75 *(.dynsym) 76 *(.dynstr) 77 *(.note.gnu.build-id) 78 *(.comment) 79 } 80} 81