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