xref: /rk3399_ARM-atf/plat/arm/board/arm_fpga/build_axf.ld.S (revision 338dbe2f1f4b98da260e556d3f0fbdd8123caf06)
101301b11SAndre Przywara/*
2*da04341eSChris Kay * Copyright (c) 2023, Arm Limited. All rights reserved.
301301b11SAndre Przywara *
401301b11SAndre Przywara * SPDX-License-Identifier: BSD-3-Clause
501301b11SAndre Przywara *
601301b11SAndre Przywara * Linker script for the Arm Ltd. FPGA boards to generate an ELF file that
701301b11SAndre Przywara * contains the ROM trampoline, BL31 and the DTB.
801301b11SAndre Przywara *
901301b11SAndre Przywara * This allows to pass just one file to the uploader tool, and automatically
1001301b11SAndre Przywara * provides the correct load addresses.
1101301b11SAndre Przywara */
1201301b11SAndre Przywara
1301301b11SAndre Przywara#include <platform_def.h>
1401301b11SAndre Przywara
1501301b11SAndre PrzywaraOUTPUT_FORMAT("elf64-littleaarch64")
1601301b11SAndre PrzywaraOUTPUT_ARCH(aarch64)
1701301b11SAndre Przywara
1801301b11SAndre PrzywaraINPUT(./rom_trampoline.o)
19de9fdb9bSAndre PrzywaraINPUT(./kernel_trampoline.o)
2001301b11SAndre Przywara
2101301b11SAndre PrzywaraTARGET(binary)
22a67ac764SAndre PrzywaraINPUT(./bl31.bin)
2301301b11SAndre PrzywaraINPUT(./fdts/arm_fpga.dtb)
2401301b11SAndre Przywara
2501301b11SAndre PrzywaraENTRY(_start)
2601301b11SAndre Przywara
2701301b11SAndre PrzywaraSECTIONS
2801301b11SAndre Przywara{
2901301b11SAndre Przywara	.rom (0x0): {
3001301b11SAndre Przywara		*rom_trampoline.o(.text*)
3101301b11SAndre Przywara		KEEP(*(.rom))
3201301b11SAndre Przywara	}
3301301b11SAndre Przywara
3401301b11SAndre Przywara	.bl31 (BL31_BASE): {
3501301b11SAndre Przywara		ASSERT(. == ALIGN(PAGE_SIZE), "BL31_BASE is not page aligned");
36a67ac764SAndre Przywara		*bl31.bin
3701301b11SAndre Przywara	}
3801301b11SAndre Przywara
3901301b11SAndre Przywara	.dtb (FPGA_PRELOADED_DTB_BASE): {
4001301b11SAndre Przywara		ASSERT(. == ALIGN(8), "DTB address is not 8-byte aligned");
4101301b11SAndre Przywara		*arm_fpga.dtb
4201301b11SAndre Przywara	}
4301301b11SAndre Przywara
44de9fdb9bSAndre Przywara	.kern_tramp (PRELOADED_BL33_BASE): {
45de9fdb9bSAndre Przywara		*kernel_trampoline.o(.text*)
46de9fdb9bSAndre Przywara		KEEP(*(.kern_tramp))
47de9fdb9bSAndre Przywara	}
48de9fdb9bSAndre Przywara
49*da04341eSChris Kay	/DISCARD/ : { *(.stacks) }
5001301b11SAndre Przywara	/DISCARD/ : { *(.debug_*) }
5101301b11SAndre Przywara	/DISCARD/ : { *(.note*) }
5201301b11SAndre Przywara	/DISCARD/ : { *(.comment*) }
5301301b11SAndre Przywara}
54