101301b11SAndre Przywara/* 201301b11SAndre Przywara * Copyright (c) 2020, 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) 22*a67ac764SAndre 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"); 36*a67ac764SAndre 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 499177e4fdSAndre Przywara /DISCARD/ : { *(stacks) } 5001301b11SAndre Przywara /DISCARD/ : { *(.debug_*) } 5101301b11SAndre Przywara /DISCARD/ : { *(.note*) } 5201301b11SAndre Przywara /DISCARD/ : { *(.comment*) } 5301301b11SAndre Przywara} 54