| #
634f6742 |
| 17-Oct-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix(trp): report argument errors before bailing out" into integration
|
| #
ab5db334 |
| 26-Aug-2025 |
Andre Przywara <andre.przywara@arm.com> |
fix(trp): report argument errors before bailing out
TRP checks for the extra warmboot arguments (in registers x2 and x3) to be 0, then bails out of the RME initialisation process if they are not. Ho
fix(trp): report argument errors before bailing out
TRP checks for the extra warmboot arguments (in registers x2 and x3) to be 0, then bails out of the RME initialisation process if they are not. However it does not report about that case, so the users will be left clueless about what is going wrong.
Add an error message reporting the fact and the values of the registers, when they are not 0.
Change-Id: I6231551ccdfa9434d0153caa95933044e2b23938 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
aed7dc81 |
| 08-Sep-2025 |
Soby Mathew <soby.mathew@arm.com> |
Merge changes from topic "rmm-lfa" into integration
* changes: feat(rmmd): add RMM_RESERVE_MEMORY SMC handler feat(rmmd): add per-CPU activation token
|
| #
89d979ce |
| 12-Jun-2025 |
Andre Przywara <andre.przywara@arm.com> |
feat(rmmd): add per-CPU activation token
To accommodate Live Firmware Activation (LFA), the RMM needs to preserve some state, between an old and the new copy of itself. The state which needs to be p
feat(rmmd): add per-CPU activation token
To accommodate Live Firmware Activation (LFA), the RMM needs to preserve some state, between an old and the new copy of itself. The state which needs to be preserved and its organisation would be completely under control of the RMM; it will be different between different RMM implementations and even between releases.
To keep the interface small, generic and robust, introduce an "activation token", which is an opaque 64-bit value to gets passed to each RMM as part of the boot/init phase. On the first initialisation, after a cold boot, this value would be initialised to 0. The RMM is expected to pass the actual value (for instance a pointer to a persistent data structure) back to BL31 as an additional argument of the RMM_BOOT_COMPLETE SMC call. On subsequent live activations, this updated token value gets passed to the (updated) RMM init routines, using the respective CPU registers.
Add an activation_token member to the (per-CPU) RMM context, and update its value with the value passed via the x2 register, at the RMM_BOOT_COMPLETE SMC call. Then pass that value into RMM either via x4 (on the primary core) or via x1 (on secondary cores). How the value is used or updated on the RMM side is of no further concern to BL31, it just passes the opaque value around. The TRP seems to be very jealous about the values in the first three registers, so let it ignore the value of x1 on a warmboot, to avoid a panic.
Change-Id: Ie8d96a046b74adb00e2ca5ce3b8458465bacf2b2 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
ec56d595 |
| 15-Apr-2025 |
Soby Mathew <soby.mathew@arm.com> |
Merge changes from topic "sm/rpkm" into integration
* changes: docs(rmmd): document the EL3-RMM IDE KM Interface feat(trp): test el3-rmm ide km interface feat(rmmd): el3-rmm ide key management
Merge changes from topic "sm/rpkm" into integration
* changes: docs(rmmd): document the EL3-RMM IDE KM Interface feat(trp): test el3-rmm ide km interface feat(rmmd): el3-rmm ide key management interface
show more ...
|
| #
8b3a89fa |
| 31-Mar-2025 |
Sona Mathew <sonarebecca.mathew@arm.com> |
feat(trp): test el3-rmm ide km interface
This patch introduces test functions to the Test Realm Payload (TRP) for performing basic sanity checks on the RMM-EL3 IDE KM support added to EL3.
The prim
feat(trp): test el3-rmm ide km interface
This patch introduces test functions to the Test Realm Payload (TRP) for performing basic sanity checks on the RMM-EL3 IDE KM support added to EL3.
The primary goal of this patch is to only to verify the basic functionality and ensure the implemented functions return the correct return values.
The test uses random values for the ecam address, rootport ID, IDE stream info, keys, and IV values.
Change-Id: Icf47627da9a6a7dd0d6e40e20ac94cc977072177 Signed-off-by: Sona Mathew <sonarebecca.mathew@arm.com>
show more ...
|
| #
ee9cfacc |
| 07-May-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "makefile-cleanup" into integration
* changes: build: improve diagnostics for unrecognized toolchain tools build(rzg): separate BL2 and BL31 SREC generation build(rcar
Merge changes from topic "makefile-cleanup" into integration
* changes: build: improve diagnostics for unrecognized toolchain tools build(rzg): separate BL2 and BL31 SREC generation build(rcar): separate BL2 and BL31 SREC generation build: separate preprocessing from DTB compilation build: remove `MAKE_BUILD_STRINGS` function
show more ...
|
| #
758ccb80 |
| 08-Mar-2024 |
Chris Kay <chris.kay@arm.com> |
build: remove `MAKE_BUILD_STRINGS` function
This function causes the build message to be generated and compiled in two different ways, with one way done inside `build_macros.mk` and the other done i
build: remove `MAKE_BUILD_STRINGS` function
This function causes the build message to be generated and compiled in two different ways, with one way done inside `build_macros.mk` and the other done inside `windows.mk`, mostly because it's done by generating the C file on the command line.
We can instead replace this whole build message generation sequence with a simple standard C compilation command and a normal C file.
Change-Id: I8bc136380c9585ddeec9a11154ee39ef70526f81 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| #
7bf18514 |
| 31-Oct-2023 |
Soby Mathew <soby.mathew@arm.com> |
Merge "feat(rmm): update RMI VERSION command as per EAC5" into integration
|
| #
ade6000f |
| 26-Oct-2023 |
Shruti Gupta <shruti.gupta@arm.com> |
feat(rmm): update RMI VERSION command as per EAC5
This patch adds necessary support for RMI_VERSION command. This patch sets RMI version numbers to 1.0 as per RMM Specification 1.0-eac5.
Change-Id:
feat(rmm): update RMI VERSION command as per EAC5
This patch adds necessary support for RMI_VERSION command. This patch sets RMI version numbers to 1.0 as per RMM Specification 1.0-eac5.
Change-Id: If7f88d5b5efa58716752488108fa110fc71ae836 Signed-off-by: Shruti Gupta <shruti.gupta@arm.com>
show more ...
|
| #
e3df3ffa |
| 01-Feb-2023 |
Soby Mathew <soby.mathew@arm.com> |
Merge changes I1b092bc1,Ifc2461b4,I5176caa5 into integration
* changes: docs(rme): update RMM-EL3 Boot Manifest structure description feat(rme): read DRAM information from FVP DTB feat(rme): s
Merge changes I1b092bc1,Ifc2461b4,I5176caa5 into integration
* changes: docs(rme): update RMM-EL3 Boot Manifest structure description feat(rme): read DRAM information from FVP DTB feat(rme): set DRAM information in Boot Manifest platform data
show more ...
|
| #
a97bfa5f |
| 14-Dec-2022 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
feat(rme): set DRAM information in Boot Manifest platform data
This patch adds support for setting configuration of DRAM banks for FVP model in RMM-EL3 Boot Manifest structure. Structure 'rmm_manife
feat(rme): set DRAM information in Boot Manifest platform data
This patch adds support for setting configuration of DRAM banks for FVP model in RMM-EL3 Boot Manifest structure. Structure 'rmm_manifest' is extended with 'plat_dram' structure which contains information about platform's DRAM layout: - number of DRAM banks; - pointer to 'dram_bank[]' array; - check sum: two's complement 64-bit value of the sum of data in 'plat_dram' and 'dram_bank[] array. Each 'dram_bank' structure holds information about DRAM bank base address and its size. This values must be aligned to 4KB page size. The patch increases Boot Manifest minor version to 2 and removes 'typedef rmm_manifest_t' as per "3.4.15.1. Avoid anonymous typedefs of structs/enums in headers" of https://trustedfirmware-a.readthedocs.io/en/latest/process/coding-style.html
Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com> Change-Id: I5176caa5780e27d1e0daeb5dea3e40cf6ad5fd12
show more ...
|
| #
a0f256b0 |
| 08-Dec-2022 |
Alexei Fedorov <Alexei.Fedorov@arm.com> |
Merge "fix(rmmd): add missing padding to RMM Boot Manifest and initialize it" into integration
|
| #
dc0ca64e |
| 01-Dec-2022 |
Javier Almansa Sobrino <javier.almansasobrino@arm.com> |
fix(rmmd): add missing padding to RMM Boot Manifest and initialize it
This patch also: * Enforces the check of RES0 fields on EL3-RMM boot interface and manifest * Fixes a couple of
fix(rmmd): add missing padding to RMM Boot Manifest and initialize it
This patch also: * Enforces the check of RES0 fields on EL3-RMM boot interface and manifest * Fixes a couple of nits on the EL3-RMM Boot Interface documentation.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Change-Id: Idb9e38f9fcda2ba0655646a1e2c4fdbabd5cdc40
show more ...
|
| #
ca32548a |
| 07-Dec-2022 |
Soby Mathew <soby.mathew@arm.com> |
Merge "fix(trp): preserve RMI SMC X4 when not used as return" into integration
|
| #
b96253db |
| 24-Nov-2022 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
fix(trp): preserve RMI SMC X4 when not used as return
This patch adds X2-X6 and 'smc_ret' parameters to trp_rmi_handler(). The last 'smc_ret' parameter passed in X7 contains address of 'trp_smc_resu
fix(trp): preserve RMI SMC X4 when not used as return
This patch adds X2-X6 and 'smc_ret' parameters to trp_rmi_handler(). The last 'smc_ret' parameter passed in X7 contains address of 'trp_smc_result' structure on stack to return result of RMI SMC call.
This allows to preserve X4 if not used as a return argument as per SMCCCv1.2. The patch also removes use of trp_args_t in RMI handling.
Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com> Change-Id: I9e3387a7380b37863eeccc53d13e92e0ac5cffbd
show more ...
|
| #
3f9d5c24 |
| 22-Jul-2022 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix(doc): document missing RMM-EL3 runtime services" into integration
|
| #
e50fedbc |
| 04-Jul-2022 |
Javier Almansa Sobrino <javier.almansasobrino@arm.com> |
fix(doc): document missing RMM-EL3 runtime services
This patch adds documentation for the missing RMM-EL3 runtime services:
* RMM_RMI_REQ_COMPLETE * RMM_GTSI_DELEGATE * RMM_GTSI_UNDELEGATE
This pa
fix(doc): document missing RMM-EL3 runtime services
This patch adds documentation for the missing RMM-EL3 runtime services:
* RMM_RMI_REQ_COMPLETE * RMM_GTSI_DELEGATE * RMM_GTSI_UNDELEGATE
This patch also fixes a couple of minor bugs on return codes for delegate/undelegate internal APIs.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Change-Id: Ic721005e7851e838eebaee7865ba78fadc3309e4
show more ...
|
| #
717daadc |
| 05-Jul-2022 |
Soby Mathew <soby.mathew@arm.com> |
Merge changes from topic "jas/rmm-el3-ifc" into integration
* changes: docs(rmmd): document EL3-RMM Interfaces feat(rmmd): add support to create a boot manifest fix(rme): use RMM shared buffer
Merge changes from topic "jas/rmm-el3-ifc" into integration
* changes: docs(rmmd): document EL3-RMM Interfaces feat(rmmd): add support to create a boot manifest fix(rme): use RMM shared buffer for attest SMCs feat(rmmd): add support for RMM Boot interface
show more ...
|
| #
1d0ca40e |
| 25-Apr-2022 |
Javier Almansa Sobrino <javier.almansasobrino@arm.com> |
feat(rmmd): add support to create a boot manifest
This patch also adds an initial RMM Boot Manifest (v0.1) for fvp platform.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Ch
feat(rmmd): add support to create a boot manifest
This patch also adds an initial RMM Boot Manifest (v0.1) for fvp platform.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Change-Id: I1374f8f9cb207028f1820953cd2a5cf6d6c3b948
show more ...
|
| #
8c980a4a |
| 24-Nov-2021 |
Javier Almansa Sobrino <javier.almansasobrino@arm.com> |
feat(rmmd): add support for RMM Boot interface
This patch adds the infrastructure needed to pass boot arguments from EL3 to RMM and allocates a shared buffer between both worlds that can be used, am
feat(rmmd): add support for RMM Boot interface
This patch adds the infrastructure needed to pass boot arguments from EL3 to RMM and allocates a shared buffer between both worlds that can be used, among others, to pass a boot manifest to RMM. The buffer is composed a single memory page be used by a later EL3 <-> RMM interface by all CPUs.
The RMM boot manifest is not implemented by this patch.
In addition to that, this patch also enables support for RMM when RESET_TO_BL31 is enabled.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Change-Id: I855cd4758ee3843eadd9fb482d70a6d18954d82a
show more ...
|
| #
d62a210a |
| 25-Mar-2022 |
Soby Mathew <soby.mathew@arm.com> |
Merge "refactor(rme): reorg existing RMMD EL3 service FIDs" into integration
|
| #
319fb084 |
| 22-Mar-2022 |
Soby Mathew <soby.mathew@arm.com> |
refactor(rme): reorg existing RMMD EL3 service FIDs
This patch reworks the GTSI service implementation in RMMD such that it is made internal to RMMD. This rework also lays the ground work for additi
refactor(rme): reorg existing RMMD EL3 service FIDs
This patch reworks the GTSI service implementation in RMMD such that it is made internal to RMMD. This rework also lays the ground work for additional RMMD services which can be invoked from RMM.
The rework renames some of the FID macros to make it more suited for adding more RMMD services. All the RMM-EL31 service SMCs are now routed via rmmd_rmm_el3_handler().
Signed-off-by: Soby Mathew <soby.mathew@arm.com> Change-Id: Ic52ca0f33b79a1fd1deefa8136f9586b088b2e07
show more ...
|
| #
1d651211 |
| 06-Oct-2021 |
Soby Mathew <soby.mathew@arm.com> |
Merge changes from topic "za/feat_rme" into integration
* changes: refactor(gpt): productize and refactor GPT library feat(rme): disable Watchdog for Arm platforms if FEAT_RME enabled docs(rme
Merge changes from topic "za/feat_rme" into integration
* changes: refactor(gpt): productize and refactor GPT library feat(rme): disable Watchdog for Arm platforms if FEAT_RME enabled docs(rme): add build and run instructions for FEAT_RME fix(plat/fvp): bump BL2 stack size fix(plat/fvp): allow changing the kernel DTB load address refactor(plat/arm): rename ARM_DTB_DRAM_NS region macros refactor(plat/fvp): update FVP platform DTS for FEAT_RME feat(plat/arm): add GPT initialization code for Arm platforms feat(plat/fvp): add memory map for FVP platform for FEAT_RME refactor(plat/arm): modify memory region attributes to account for FEAT_RME feat(plat/fvp): add RMM image support for FVP platform feat(rme): add GPT Library feat(rme): add ENABLE_RME build option and support for RMM image refactor(makefile): remove BL prefixes in build macros feat(rme): add context management changes for FEAT_RME feat(rme): add Test Realm Payload (TRP) feat(rme): add RMM dispatcher (RMMD) feat(rme): run BL2 in root world when FEAT_RME is enabled feat(rme): add xlat table library changes for FEAT_RME feat(rme): add Realm security state definition feat(rme): add register definitions and helper functions for FEAT_RME
show more ...
|
| #
50a3056a |
| 09-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
feat(rme): add Test Realm Payload (TRP)
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 R
feat(rme): add Test Realm Payload (TRP)
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
show more ...
|