xref: /rk3399_ARM-atf/plat/arm/board/arm_fpga/build_axf.ld.S (revision 01301b116ea32c6529a69bfc679cab2d2fdaa4d9)
1*01301b11SAndre Przywara/*
2*01301b11SAndre Przywara * Copyright (c) 2020, ARM Limited. All rights reserved.
3*01301b11SAndre Przywara *
4*01301b11SAndre Przywara * SPDX-License-Identifier: BSD-3-Clause
5*01301b11SAndre Przywara *
6*01301b11SAndre Przywara * Linker script for the Arm Ltd. FPGA boards to generate an ELF file that
7*01301b11SAndre Przywara * contains the ROM trampoline, BL31 and the DTB.
8*01301b11SAndre Przywara *
9*01301b11SAndre Przywara * This allows to pass just one file to the uploader tool, and automatically
10*01301b11SAndre Przywara * provides the correct load addresses.
11*01301b11SAndre Przywara */
12*01301b11SAndre Przywara
13*01301b11SAndre Przywara#include <platform_def.h>
14*01301b11SAndre Przywara
15*01301b11SAndre PrzywaraOUTPUT_FORMAT("elf64-littleaarch64")
16*01301b11SAndre PrzywaraOUTPUT_ARCH(aarch64)
17*01301b11SAndre Przywara
18*01301b11SAndre PrzywaraINPUT(./bl31/bl31.elf)
19*01301b11SAndre PrzywaraINPUT(./rom_trampoline.o)
20*01301b11SAndre Przywara
21*01301b11SAndre PrzywaraTARGET(binary)
22*01301b11SAndre PrzywaraINPUT(./fdts/arm_fpga.dtb)
23*01301b11SAndre Przywara
24*01301b11SAndre PrzywaraENTRY(_start)
25*01301b11SAndre Przywara
26*01301b11SAndre PrzywaraSECTIONS
27*01301b11SAndre Przywara{
28*01301b11SAndre Przywara	.rom (0x0): {
29*01301b11SAndre Przywara		*rom_trampoline.o(.text*)
30*01301b11SAndre Przywara		KEEP(*(.rom))
31*01301b11SAndre Przywara	}
32*01301b11SAndre Przywara
33*01301b11SAndre Przywara	.bl31 (BL31_BASE): {
34*01301b11SAndre Przywara		ASSERT(. == ALIGN(PAGE_SIZE), "BL31_BASE is not page aligned");
35*01301b11SAndre Przywara		*bl31.elf(.text* .data* .rodata* ro* .bss*)
36*01301b11SAndre Przywara		*bl31.elf(.stack)
37*01301b11SAndre Przywara	}
38*01301b11SAndre Przywara
39*01301b11SAndre Przywara	.dtb (FPGA_PRELOADED_DTB_BASE): {
40*01301b11SAndre Przywara		ASSERT(. == ALIGN(8), "DTB address is not 8-byte aligned");
41*01301b11SAndre Przywara		*arm_fpga.dtb
42*01301b11SAndre Przywara	}
43*01301b11SAndre Przywara
44*01301b11SAndre Przywara	/DISCARD/ : { *(.debug_*) }
45*01301b11SAndre Przywara	/DISCARD/ : { *(.note*) }
46*01301b11SAndre Przywara	/DISCARD/ : { *(.comment*) }
47*01301b11SAndre Przywara}
48