1/* 2 * Copyright (c) 2020, ARM Limited. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 * Linker script for the Arm Ltd. FPGA boards to generate an ELF file that 7 * contains the ROM trampoline, BL31 and the DTB. 8 * 9 * This allows to pass just one file to the uploader tool, and automatically 10 * provides the correct load addresses. 11 */ 12 13#include <platform_def.h> 14 15OUTPUT_FORMAT("elf64-littleaarch64") 16OUTPUT_ARCH(aarch64) 17 18INPUT(./rom_trampoline.o) 19INPUT(./kernel_trampoline.o) 20 21TARGET(binary) 22INPUT(./bl31.bin) 23INPUT(./fdts/arm_fpga.dtb) 24 25ENTRY(_start) 26 27SECTIONS 28{ 29 .rom (0x0): { 30 *rom_trampoline.o(.text*) 31 KEEP(*(.rom)) 32 } 33 34 .bl31 (BL31_BASE): { 35 ASSERT(. == ALIGN(PAGE_SIZE), "BL31_BASE is not page aligned"); 36 *bl31.bin 37 } 38 39 .dtb (FPGA_PRELOADED_DTB_BASE): { 40 ASSERT(. == ALIGN(8), "DTB address is not 8-byte aligned"); 41 *arm_fpga.dtb 42 } 43 44 .kern_tramp (PRELOADED_BL33_BASE): { 45 *kernel_trampoline.o(.text*) 46 KEEP(*(.kern_tramp)) 47 } 48 49 /DISCARD/ : { *(stacks) } 50 /DISCARD/ : { *(.debug_*) } 51 /DISCARD/ : { *(.note*) } 52 /DISCARD/ : { *(.comment*) } 53} 54