blob: 9895cf9f8c77359ca7a00e32ad40c094d973a7c8 [file] [log] [blame]
/*
* Copyright (c) 2021-2023, Arm Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <common/bl_common.ld.h>
#include <lib/xlat_tables/xlat_tables_defs.h>
/* Mapped using 4K pages, requires us to align different sections with
* different property at the same granularity. */
PAGE_SIZE_4K = 4096;
OUTPUT_FORMAT("elf64-littleaarch64")
OUTPUT_ARCH(aarch64)
ENTRY(trp_head)
MEMORY {
RAM (rwx): ORIGIN = RMM_BASE, LENGTH = RMM_LIMIT - RMM_BASE
}
SECTIONS
{
. = RMM_BASE;
.text : {
*(.head.text)
. = ALIGN(8);
*(.text*)
} >RAM
. = ALIGN(PAGE_SIZE_4K);
.rodata : {
*(.rodata*)
} >RAM
. = ALIGN(PAGE_SIZE_4K);
__RW_START__ = . ;
.data : {
*(.data*)
} >RAM
.bss (NOLOAD) : {
__BSS_START__ = .;
*(.bss*)
__BSS_END__ = .;
} >RAM
__BSS_SIZE__ = SIZEOF(.bss);
STACK_SECTION >RAM
/*
* Define a linker symbol to mark the end of the RW memory area for this
* image.
*/
__RW_END__ = .;
__RMM_END__ = .;
/DISCARD/ : { *(.dynstr*) }
/DISCARD/ : { *(.dynamic*) }
/DISCARD/ : { *(.plt*) }
/DISCARD/ : { *(.interp*) }
/DISCARD/ : { *(.gnu*) }
/DISCARD/ : { *(.note*) }
}