xref: /openbmc/u-boot/board/qualcomm/dragonboard820c/u-boot.lds (revision 406fd7e207d3593f150079514a371dccdc651ce7)
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