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