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(./bl31/bl31.elf) 19INPUT(./rom_trampoline.o) 20 21TARGET(binary) 22INPUT(./fdts/arm_fpga.dtb) 23 24ENTRY(_start) 25 26SECTIONS 27{ 28 .rom (0x0): { 29 *rom_trampoline.o(.text*) 30 KEEP(*(.rom)) 31 } 32 33 .bl31 (BL31_BASE): { 34 ASSERT(. == ALIGN(PAGE_SIZE), "BL31_BASE is not page aligned"); 35 *bl31.elf(.text* .data* .rodata* ro* .bss*) 36 *bl31.elf(.stack) 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 /DISCARD/ : { *(.debug_*) } 45 /DISCARD/ : { *(.note*) } 46 /DISCARD/ : { *(.comment*) } 47} 48