mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00

TRP is a small test payload that implements Realm Monitor Management (RMM) functionalities. RMM runs in the Realm world (R-EL2) and manages the execution of Realm VMs and their interaction with the hypervisor in Normal world. TRP is used to test the interface between RMM and Normal world software, known as Realm Management Interface (RMI). Current functions includes returning RMM version and transitioning granules from Non-secure to Realm world and vice versa. More information about RMM can be found at: https://developer.arm.com/documentation/den0125/latest Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: Ic7b9a1e1f3142ef6458d40150d0b4ba6bd723ea2
71 lines
1.1 KiB
Text
71 lines
1.1 KiB
Text
/*
|
|
* (C) COPYRIGHT 2021 Arm Limited or its affiliates.
|
|
* ALL RIGHTS RESERVED
|
|
*/
|
|
|
|
#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*) }
|
|
}
|