| #
4249423b |
| 28-Oct-2025 |
Mark Dykes <mark.dykes@arm.com> |
Merge "fix(arm): derive RMM bank size from payload" into integration
|
| #
dbda614c |
| 22-Oct-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
fix(arm): derive RMM bank size from payload
Compute the RMM bank size as half of the RMM payload size instead of using a hardcoded value. This removes duplication and keeps the bank size automatical
fix(arm): derive RMM bank size from payload
Compute the RMM bank size as half of the RMM payload size instead of using a hardcoded value. This removes duplication and keeps the bank size automatically in sync with payload size changes.
Change-Id: I064390ec50115929bf6248344bf08a19fbc15344 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| #
92c0f3ba |
| 10-Oct-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "rmm-lfa" into integration
* changes: feat(arm): handle RMM ep_info during LFA feat(lfa): add helper to check LFA prime completion status feat(lfa): enable LFA of RMM
Merge changes from topic "rmm-lfa" into integration
* changes: feat(arm): handle RMM ep_info during LFA feat(lfa): add helper to check LFA prime completion status feat(lfa): enable LFA of RMM chore(lfa): use standard int return type for prime/activate callbacks feat(rmmd): add warm reset helpers for primary and secondary CPUs
show more ...
|
| #
4ea0ebc2 |
| 26-Aug-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(arm): handle RMM ep_info during LFA
Update the logic for next image handoff to correctly manage the RMM entry point information when LFA is in progress. This ensures control is passed back into
feat(arm): handle RMM ep_info during LFA
Update the logic for next image handoff to correctly manage the RMM entry point information when LFA is in progress. This ensures control is passed back into RMM during the activation sequence.
This change only affects during LFA run, normal boot behavior is unchanged.
Change-Id: I8f85e9a7e0a7e9dab196c69ecf55abb9e7717982 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@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
|
| #
745c129a |
| 09-Jul-2024 |
Andre Przywara <andre.przywara@arm.com> |
feat(rmmd): add RMM_RESERVE_MEMORY SMC handler
At the moment any memory required by an R-EL2 manager (RMM) needs to be known at compile time: that sets the size of the .data and .bss segments. Some
feat(rmmd): add RMM_RESERVE_MEMORY SMC handler
At the moment any memory required by an R-EL2 manager (RMM) needs to be known at compile time: that sets the size of the .data and .bss segments. Some resources depend on the particular machine this will be running on, the prime example is TF-RMM's granule array, which needs to know the maximum memory supported beforehand. Other data structures might depend on the number of CPU cores.
To provide more flexibility, but keep the memory footprint as small as possible, let's introduce some memory reservation SMC. Any RMM implementation can ask EL3 for some memory, and would get the physical address of a usable chunk of memory back. This must happen at RMM boot time, so before the RMM concluded the boot phase with the RMM_BOOT_COMPLETE SMC call. Also there is no provision to free memory again, this would not be needed for the use case of sizing platform resources, and avoids the complexity of a full-fledged memory allocator.
Add the new RMM_RESERVE_MEMORY command to the implementation defined RMM-EL3 SMC interface, both in code and documentation. The actual memory reservation is made a platform implementation, but a simple implementation is provided, which is used for the FVP platform already: it will just pick the next matching chunk of memory from the top end of the RMM carveout. This way the memory reservation will grow down from the end of the carveout, in a stack-like fashion, until it reaches the end of the RMM payload, located at the beginning of the carveout. Since secondary cores might also reserve memory at boot time, there is a spinlock to protect the simple allocation algorithm. Other platforms can choose to provide a more sophisticated reservation algorithm, for instance one taking NUMA locality into account.
This patch just provides the call, at this point there is no obligation to use the feature, although future TF-RMM versions would rely on it.
Change-Id: I096ac8870ee38f44e18850779fcae829a43a8fd1 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
e1362231 |
| 12-Feb-2025 |
Soby Mathew <soby.mathew@arm.com> |
Merge changes from topic "memory_bank" into integration
* changes: fix(qemu): statically allocate bitlocks array feat(qemu): update for renamed struct memory_bank feat(fvp): increase GPT PPS t
Merge changes from topic "memory_bank" into integration
* changes: fix(qemu): statically allocate bitlocks array feat(qemu): update for renamed struct memory_bank feat(fvp): increase GPT PPS to 1TB feat(gpt): statically allocate bitlocks array chore(gpt): define PPS in platform header files feat(fvp): allocate L0 GPT at the top of SRAM feat(fvp): change size of PCIe memory region 2 feat(rmm): add PCIe IO info to Boot manifest feat(fvp): define single Root region
show more ...
|
| #
aeec55c8 |
| 05-Feb-2025 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
feat(fvp): increase GPT PPS to 1TB
- Increase PPS for FVP from 64GB to 1TB. - GPT L0 table for 1TB PPS requires 8KB memory. - Set FVP_TRUSTED_SRAM_SIZE to 384 with ENABLE_RME=1 option. - Add 256MB
feat(fvp): increase GPT PPS to 1TB
- Increase PPS for FVP from 64GB to 1TB. - GPT L0 table for 1TB PPS requires 8KB memory. - Set FVP_TRUSTED_SRAM_SIZE to 384 with ENABLE_RME=1 option. - Add 256MB of PCIe memory region 1 and 3GB of PCIe memory region 2 to FVP PAS regions array.
Change-Id: Icadd528576f53c55b5d461ff4dcd357429ba622a Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| #
7a4a0707 |
| 22-Jan-2025 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
feat(fvp): allocate L0 GPT at the top of SRAM
This patch allocates level 0 GPT at the top of SRAM for FVP. This helps to meet L0 GPT alignment requirements and prevent the occurrence of possible unu
feat(fvp): allocate L0 GPT at the top of SRAM
This patch allocates level 0 GPT at the top of SRAM for FVP. This helps to meet L0 GPT alignment requirements and prevent the occurrence of possible unused gaps in SRAM. Load addresses for FVP TB_FW, SOC_FW and TOS_FW DTBs are defined in fvp_fw_config.dts via ARM_BL_RAM_BASE macro.
Change-Id: Iaa52e302373779d9fdbaf4e1ba40c10aa8d1f8bd Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| #
bef44f60 |
| 14-Oct-2024 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
feat(rmm): add PCIe IO info to Boot manifest
- Add PCIe and SMMUv3 related information to DTS for configurations with ENABLE_RME=1. - Add entries for PCIe IO memory regions to Boot manifest - Upda
feat(rmm): add PCIe IO info to Boot manifest
- Add PCIe and SMMUv3 related information to DTS for configurations with ENABLE_RME=1. - Add entries for PCIe IO memory regions to Boot manifest - Update RMMD_MANIFEST_VERSION_MINOR from 3 to 4. - Read PCIe related information from DTB and write it to Boot manifest. - Rename structures that used to describe DRAM layout and now describe both DRAM and PCIe IO memory regions: - ns_dram_bank -> memory_bank - ns_dram_info -> memory_info.
Change-Id: Ib75d1af86076f724f5c330074e231f1c2ba8e21d Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| #
665a8fdf |
| 13-Mar-2024 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
feat(fvp): define single Root region
For FVP model define single Root PAS which includes EL3 DRAM data, L1 GPTs and SCP TZC. This allows to decrease the number of PAS regions passed to GPT library a
feat(fvp): define single Root region
For FVP model define single Root PAS which includes EL3 DRAM data, L1 GPTs and SCP TZC. This allows to decrease the number of PAS regions passed to GPT library and use GPT mapping with Contiguous descriptor of larger block size.
Change-Id: I70f6babaebc14e5e0bce033783ec423c8a26c542 Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| #
8b68a617 |
| 06-Feb-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "RDV3-hafnium-support" into integration
* changes: feat(rdv3): enable the support to fetch dynamic config feat(rdv3): add dts files to enable hafnium as BL32 feat(rdv3
Merge changes from topic "RDV3-hafnium-support" into integration
* changes: feat(rdv3): enable the support to fetch dynamic config feat(rdv3): add dts files to enable hafnium as BL32 feat(rdv3): define SPMC manifest base address feat(arm): add a macro for SPMC manifest base address feat(rdv3): add carveout for BL32 image feat(rdv3): introduce platform handler for Group0 interrupt feat(neoverse-rd): use larger stack size when S-EL2 spmc is enabled fix(neoverse-rd): set correct SVE vector lengths
show more ...
|
| #
eab1ed54 |
| 29-Apr-2024 |
Rakshit Goyal <rakshit.goyal@arm.com> |
feat(arm): add a macro for SPMC manifest base address
In RESET_TO_BL31, the SPMC manifest base address that is utilized by bl32_image_ep_info has to be statically defined as DT is not available. Com
feat(arm): add a macro for SPMC manifest base address
In RESET_TO_BL31, the SPMC manifest base address that is utilized by bl32_image_ep_info has to be statically defined as DT is not available. Common arm code sets this to the top of SRAM using macros but it can be different for some platforms. Hence, introduce the macro PLAT_ARM_SPMC_MANIFEST_BASE that could be re-defined by platform as per their use-case. Platforms that utilize arm_def.h would use the existing value from arm common code.
Signed-off-by: Rakshit Goyal <rakshit.goyal@arm.com> Change-Id: I4491749ad2b5794e06c9bd11ff61e2e64f21a948
show more ...
|
| #
f9d40b5c |
| 26-Apr-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "hm/handoff" into integration
* changes: feat(handoff): add support for RESET_TO_BL2 feat(arm): support FW handoff b/w BL1 & BL2 feat(handoff): add TL source files to
Merge changes from topic "hm/handoff" into integration
* changes: feat(handoff): add support for RESET_TO_BL2 feat(arm): support FW handoff b/w BL1 & BL2 feat(handoff): add TL source files to BL1 feat(handoff): add TE's for BL1 handoff interface refactor(bl1): clean up bl2 layout calculation feat(arm): support FW handoff b/w BL2 & BL31
show more ...
|
| #
9c11ed7e |
| 22-Dec-2023 |
Harrison Mutai <harrison.mutai@arm.com> |
feat(arm): support FW handoff b/w BL1 & BL2
Leverage the framework between BL1 and BL2. Migrate all handoff structures to the TL.
Change-Id: I79ff3a319596b5656184cde10b5204b10a4d03bb Signed-off-by:
feat(arm): support FW handoff b/w BL1 & BL2
Leverage the framework between BL1 and BL2. Migrate all handoff structures to the TL.
Change-Id: I79ff3a319596b5656184cde10b5204b10a4d03bb Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
show more ...
|
| #
28c79e10 |
| 30-Jan-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "plat_gpt_setup" into integration
* changes: feat(arm): move GPT setup to common BL source feat(arm): retrieve GPT related data from platform refactor(arm): rename L0/
Merge changes from topic "plat_gpt_setup" into integration
* changes: feat(arm): move GPT setup to common BL source feat(arm): retrieve GPT related data from platform refactor(arm): rename L0/L1 GPT base macros
show more ...
|
| #
1e7545ac |
| 18-Jan-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
refactor(arm): rename L0/L1 GPT base macros
In accordance with common naming conventions, macros specifying the base address of a region typically use the prefix "BASE" combined with the region name
refactor(arm): rename L0/L1 GPT base macros
In accordance with common naming conventions, macros specifying the base address of a region typically use the prefix "BASE" combined with the region name, rather than "ADDR_BASE."
Currently, the macros defining the base addresses for L0 and L1 GPT tables within `arm_def.h` are named "ARM_L0_GPT_ADDR_BASE" and "ARM_L1_GPT_ADDR_BASE" respectively. To adhere to the established naming convention, rename these macros as "ARM_L1_GPT_BASE" and "ARM_L0_GPT_BASE" respectively.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: Ibd50a58a1f63ba97d2df141f41a21a89ef97d6fb
show more ...
|
| #
11190c1b |
| 10-Jan-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "cpu_trp_rotpk_fixes" into integration
* changes: fix(rotpk): move rotpk definitions out of arm_def.h feat(cpu): add support for Poseidon V CPU fix(cpu): correct varia
Merge changes from topic "cpu_trp_rotpk_fixes" into integration
* changes: fix(rotpk): move rotpk definitions out of arm_def.h feat(cpu): add support for Poseidon V CPU fix(cpu): correct variant name for default Poseidon CPU fix(rmmd): avoid TRP when external RMM is defined
show more ...
|
| #
0f0fd499 |
| 26-Dec-2023 |
Rohit Mathew <Rohit.Mathew@arm.com> |
fix(rotpk): move rotpk definitions out of arm_def.h
The file arm_def.h currently contains common definitions used by ARM platforms. However, some platforms may have their own definitions, allowing t
fix(rotpk): move rotpk definitions out of arm_def.h
The file arm_def.h currently contains common definitions used by ARM platforms. However, some platforms may have their own definitions, allowing them to avoid a direct dependency on arm_def.h. For a clean platform port of arm_def.h, none of the source files should directly include arm_def.h; instead, they should include the platform header which would indirectly include the required definitions.
Presently, the rotpk module has a source file that directly includes arm_def.h. This could lead to compilation issues if the platform incorporating the rotpk module has a separate implementation of some or all of the definitions in arm_def.h file. To address this, move the relevant definitions out of arm_def.h and into rotpk_def.h.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: I9e8b0d319391f9a167af5c69a7b2d42ac488e7b4
show more ...
|
| #
31a815db |
| 08-Nov-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "sb/remove-cryptocell" into integration
* changes: chore(npcm845x): remove CryptoCell-712/713 support chore(auth)!: remove CryptoCell-712/713 support
|
| #
b65dfe40 |
| 26-Oct-2023 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
chore(auth)!: remove CryptoCell-712/713 support
CryptoCell-712 and CryptoCell-713 drivers have been deprecated since TF-A v2.9 and their removal was announced for TF-A v2.10 release. See [1].
As th
chore(auth)!: remove CryptoCell-712/713 support
CryptoCell-712 and CryptoCell-713 drivers have been deprecated since TF-A v2.9 and their removal was announced for TF-A v2.10 release. See [1].
As the release is approaching, this patch deletes these drivers' code as well as all references to them in the documentation and Arm platforms code (Nuvoton platform is taken care in a subsequent patch). Associated build options (ARM_CRYPTOCELL_INTEG and PLAT_CRYPTOCELL_BASE) have also been removed and thus will have no effect if defined.
This is a breaking change for downstream platforms which use these drivers.
[1] https://trustedfirmware-a.readthedocs.io/en/v2.9/about/release-information.html#removal-of-deprecated-drivers Note that TF-A v3.0 release later got renumbered into v2.10.
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com> Change-Id: Idabbc9115f6732ac1a0e52b273d3380677a39813
show more ...
|
| #
6f802c44 |
| 02-Nov-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "mp/exceptions" into integration
* changes: docs(ras): update RAS documentation docs(el3-runtime): update BL31 exception vector handling fix(el3-runtime): restrict low
Merge changes from topic "mp/exceptions" into integration
* changes: docs(ras): update RAS documentation docs(el3-runtime): update BL31 exception vector handling fix(el3-runtime): restrict lower el EA handlers in FFH mode fix(ras): remove RAS_FFH_SUPPORT and introduce FFH_SUPPORT fix(ras): restrict ENABLE_FEAT_RAS to have only two states feat(ras): use FEAT_IESB for error synchronization feat(el3-runtime): modify vector entry paths
show more ...
|
| #
f87e54f7 |
| 10-Oct-2023 |
Manish Pandey <manish.pandey2@arm.com> |
fix(ras): remove RAS_FFH_SUPPORT and introduce FFH_SUPPORT
This patch removes RAS_FFH_SUPPORT macro which is the combination of ENABLE_FEAT_RAS and HANDLE_EA_EL3_FIRST_NS. Instead introduce an inter
fix(ras): remove RAS_FFH_SUPPORT and introduce FFH_SUPPORT
This patch removes RAS_FFH_SUPPORT macro which is the combination of ENABLE_FEAT_RAS and HANDLE_EA_EL3_FIRST_NS. Instead introduce an internal macro FFH_SUPPORT which gets enabled when platforms wants to enable lower EL EA handling at EL3. The internal macro FFH_SUPPORT will be automatically enabled if HANDLE_EA_EL3_FIRST_NS is enabled. FFH_SUPPORT along with ENABLE_FEAT_RAS will be used in source files to provide equivalent check which was provided by RAS_FFH_SUPPORT earlier. In generic code we needed a macro which could abstract both HANDLE_EA_EL3_FIRST_NS and RAS_FFH_SUPPORT macros that had limitations. Former was tied up with NS world only while the latter was tied to RAS feature.
This is to allow Secure/Realm world to have their own FFH macros in future.
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: Ie5692ccbf462f5dcc3f005a5beea5aa35124ac73
show more ...
|
| #
7bcd3cf5 |
| 16-Oct-2023 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge changes from topic "ecdsa_p384" into integration
* changes: refactor(arm): remove ARM_ROTPK_KEY_LEN comparison fix(st): setting default KEY_SIZE docs(cert-create): add key size options f
Merge changes from topic "ecdsa_p384" into integration
* changes: refactor(arm): remove ARM_ROTPK_KEY_LEN comparison fix(st): setting default KEY_SIZE docs(cert-create): add key size options for ecdsa feat(arm): ecdsa p384/p256 full key support feat(tbbr): update PK_DER_LEN for ECDSA P-384 keys feat(auth): ecdsa p384 key support feat(cert-create): ecdsa p384 key support
show more ...
|
| #
c623fb2d |
| 13-Oct-2023 |
laurenw-arm <lauren.wehrmeister@arm.com> |
refactor(arm): remove ARM_ROTPK_KEY_LEN comparison
Removing ARM_ROTPK_KEY_LEN definition and comparison in full key .S files since there is little value in comparing the defined value with a static
refactor(arm): remove ARM_ROTPK_KEY_LEN comparison
Removing ARM_ROTPK_KEY_LEN definition and comparison in full key .S files since there is little value in comparing the defined value with a static size. This becomes more maintenance than value addition.
Removing defines no longer required and general clean up of .S full key files.
Change-Id: Id286b7078ab9e190e37a43804e2a8d1b0934c235 Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
show more ...
|