183d290c5STom Rini/* SPDX-License-Identifier: GPL-2.0+ */ 24b684a6bSJorge Ramirez-Ortiz/* 34b684a6bSJorge Ramirez-Ortiz * Override linker script for fastboot-readable images 44b684a6bSJorge Ramirez-Ortiz * 54b684a6bSJorge Ramirez-Ortiz * (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikowski@gmail.com> 64b684a6bSJorge Ramirez-Ortiz * 74b684a6bSJorge Ramirez-Ortiz * Based on arch/arm/cpu/armv8/u-boot.lds (Just add header) 84b684a6bSJorge Ramirez-Ortiz */ 94b684a6bSJorge Ramirez-Ortiz 104b684a6bSJorge Ramirez-OrtizOUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64") 114b684a6bSJorge Ramirez-OrtizOUTPUT_ARCH(aarch64) 124b684a6bSJorge Ramirez-OrtizENTRY(_arm64_header) 134b684a6bSJorge Ramirez-OrtizSECTIONS 144b684a6bSJorge Ramirez-Ortiz{ 154b684a6bSJorge Ramirez-Ortiz . = 0x00000000; 164b684a6bSJorge Ramirez-Ortiz 174b684a6bSJorge Ramirez-Ortiz . = ALIGN(8); 184b684a6bSJorge Ramirez-Ortiz .text : 194b684a6bSJorge Ramirez-Ortiz { 204b684a6bSJorge Ramirez-Ortiz *(.__image_copy_start) 214b684a6bSJorge Ramirez-Ortiz board/qualcomm/dragonboard820c/head.o (.text*) 224b684a6bSJorge Ramirez-Ortiz CPUDIR/start.o (.text*) 23*7e21fbcaSAlexander Graf } 24*7e21fbcaSAlexander Graf 25*7e21fbcaSAlexander Graf /* This needs to come before *(.text*) */ 26*7e21fbcaSAlexander Graf .efi_runtime : { 27*7e21fbcaSAlexander Graf __efi_runtime_start = .; 28*7e21fbcaSAlexander Graf *(.text.efi_runtime*) 29*7e21fbcaSAlexander Graf *(.rodata.efi_runtime*) 30*7e21fbcaSAlexander Graf *(.data.efi_runtime*) 31*7e21fbcaSAlexander Graf __efi_runtime_stop = .; 32*7e21fbcaSAlexander Graf } 33*7e21fbcaSAlexander Graf 34*7e21fbcaSAlexander Graf .text_rest : 35*7e21fbcaSAlexander Graf { 364b684a6bSJorge Ramirez-Ortiz *(.text*) 374b684a6bSJorge Ramirez-Ortiz } 384b684a6bSJorge Ramirez-Ortiz 394b684a6bSJorge Ramirez-Ortiz . = ALIGN(8); 404b684a6bSJorge Ramirez-Ortiz .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } 414b684a6bSJorge Ramirez-Ortiz 424b684a6bSJorge Ramirez-Ortiz . = ALIGN(8); 434b684a6bSJorge Ramirez-Ortiz .data : { 444b684a6bSJorge Ramirez-Ortiz *(.data*) 454b684a6bSJorge Ramirez-Ortiz } 464b684a6bSJorge Ramirez-Ortiz 474b684a6bSJorge Ramirez-Ortiz . = ALIGN(8); 484b684a6bSJorge Ramirez-Ortiz 494b684a6bSJorge Ramirez-Ortiz . = .; 504b684a6bSJorge Ramirez-Ortiz 514b684a6bSJorge Ramirez-Ortiz . = ALIGN(8); 524b684a6bSJorge Ramirez-Ortiz .u_boot_list : { 534b684a6bSJorge Ramirez-Ortiz KEEP(*(SORT(.u_boot_list*))); 544b684a6bSJorge Ramirez-Ortiz } 554b684a6bSJorge Ramirez-Ortiz 564b684a6bSJorge Ramirez-Ortiz . = ALIGN(8); 574b684a6bSJorge Ramirez-Ortiz 584b684a6bSJorge Ramirez-Ortiz .efi_runtime_rel : { 594b684a6bSJorge Ramirez-Ortiz __efi_runtime_rel_start = .; 60*7e21fbcaSAlexander Graf *(.rel*.efi_runtime) 61*7e21fbcaSAlexander Graf *(.rel*.efi_runtime.*) 624b684a6bSJorge Ramirez-Ortiz __efi_runtime_rel_stop = .; 634b684a6bSJorge Ramirez-Ortiz } 644b684a6bSJorge Ramirez-Ortiz 654b684a6bSJorge Ramirez-Ortiz . = ALIGN(8); 664b684a6bSJorge Ramirez-Ortiz 674b684a6bSJorge Ramirez-Ortiz .image_copy_end : 684b684a6bSJorge Ramirez-Ortiz { 694b684a6bSJorge Ramirez-Ortiz *(.__image_copy_end) 704b684a6bSJorge Ramirez-Ortiz } 714b684a6bSJorge Ramirez-Ortiz 724b684a6bSJorge Ramirez-Ortiz . = ALIGN(8); 734b684a6bSJorge Ramirez-Ortiz 744b684a6bSJorge Ramirez-Ortiz .rel_dyn_start : 754b684a6bSJorge Ramirez-Ortiz { 764b684a6bSJorge Ramirez-Ortiz *(.__rel_dyn_start) 774b684a6bSJorge Ramirez-Ortiz } 784b684a6bSJorge Ramirez-Ortiz 794b684a6bSJorge Ramirez-Ortiz .rela.dyn : { 804b684a6bSJorge Ramirez-Ortiz *(.rela*) 814b684a6bSJorge Ramirez-Ortiz } 824b684a6bSJorge Ramirez-Ortiz 834b684a6bSJorge Ramirez-Ortiz .rel_dyn_end : 844b684a6bSJorge Ramirez-Ortiz { 854b684a6bSJorge Ramirez-Ortiz *(.__rel_dyn_end) 864b684a6bSJorge Ramirez-Ortiz } 874b684a6bSJorge Ramirez-Ortiz 884b684a6bSJorge Ramirez-Ortiz _end = .; 894b684a6bSJorge Ramirez-Ortiz 904b684a6bSJorge Ramirez-Ortiz . = ALIGN(8); 914b684a6bSJorge Ramirez-Ortiz 924b684a6bSJorge Ramirez-Ortiz .bss_start : { 934b684a6bSJorge Ramirez-Ortiz KEEP(*(.__bss_start)); 944b684a6bSJorge Ramirez-Ortiz } 954b684a6bSJorge Ramirez-Ortiz 964b684a6bSJorge Ramirez-Ortiz .bss : { 974b684a6bSJorge Ramirez-Ortiz *(.bss*) 984b684a6bSJorge Ramirez-Ortiz . = ALIGN(8); 994b684a6bSJorge Ramirez-Ortiz } 1004b684a6bSJorge Ramirez-Ortiz 1014b684a6bSJorge Ramirez-Ortiz .bss_end : { 1024b684a6bSJorge Ramirez-Ortiz KEEP(*(.__bss_end)); 1034b684a6bSJorge Ramirez-Ortiz } 1044b684a6bSJorge Ramirez-Ortiz 1054b684a6bSJorge Ramirez-Ortiz /DISCARD/ : { *(.dynsym) } 1064b684a6bSJorge Ramirez-Ortiz /DISCARD/ : { *(.dynstr*) } 1074b684a6bSJorge Ramirez-Ortiz /DISCARD/ : { *(.dynamic*) } 1084b684a6bSJorge Ramirez-Ortiz /DISCARD/ : { *(.plt*) } 1094b684a6bSJorge Ramirez-Ortiz /DISCARD/ : { *(.interp*) } 1104b684a6bSJorge Ramirez-Ortiz /DISCARD/ : { *(.gnu*) } 1114b684a6bSJorge Ramirez-Ortiz} 112