| 015c76d8 | 15-Sep-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(spm): change the SMMUv3TestEngine being used
Use a test engine that's not connected via PCIe as those can't make Secure accesses.
Change-Id: I6f7f235d022090189782381bc88e67de64c11927 Signed-off
fix(spm): change the SMMUv3TestEngine being used
Use a test engine that's not connected via PCIe as those can't make Secure accesses.
Change-Id: I6f7f235d022090189782381bc88e67de64c11927 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| 00e62ff9 | 03-Sep-2025 |
Juan Pablo Conde <juanpablo.conde@arm.com> |
refactor(rmmd): modify MEC update call to meet FIRME
Previous version of MEC refresh call was not compliant with FIRME [1]. This patch modifies the call so it is compliant with the specification.
[
refactor(rmmd): modify MEC update call to meet FIRME
Previous version of MEC refresh call was not compliant with FIRME [1]. This patch modifies the call so it is compliant with the specification.
[1] https://developer.arm.com/documentation/den0149/1-0alp0/
Change-Id: I15a652a021561edca16e79d127e6f08975cf1361 Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com>
show more ...
|
| f856626b | 10-Sep-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix: replace stray BL2_AT_EL3 with RESET_TO_BL2
For FVP, patch 259b67c08 should have used the latter but introduced the former. That was a mistake, correct it.
The nuvoton platform seems to have co
fix: replace stray BL2_AT_EL3 with RESET_TO_BL2
For FVP, patch 259b67c08 should have used the latter but introduced the former. That was a mistake, correct it.
The nuvoton platform seems to have copied arm_def.h and would have been missed at some point. Update that too.
Change-Id: I28123186bb4b69c5d5154dcdd24e5dee9d9e33b8 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| 98ae9017 | 05-Sep-2025 |
Yeoreum Yun <yeoreum.yun@arm.com> |
feat(fvp): introduce fvp_stmm_bl2_sp_list.dts for StandaloneMm
fvp_stmm_l2_sp_list.dts is used to load StandaloneMm with rust-spmc.
This sp information will be included into fvp_tb_fw_config.dts by
feat(fvp): introduce fvp_stmm_bl2_sp_list.dts for StandaloneMm
fvp_stmm_l2_sp_list.dts is used to load StandaloneMm with rust-spmc.
This sp information will be included into fvp_tb_fw_config.dts by specifying ARM_BL2_SP_LIST_DTS build option with this file.
Change-Id: I42b1ed9a04ac29b1a3c31f7267b337d4e3036c10 Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
show more ...
|
| 10f6ccdc | 03-Sep-2025 |
Yeoreum Yun <yeoreum.yun@arm.com> |
feat(fvp): update evtlog info in the xferlist's DT_SPMC_MANIFEST entry
For compatibility with SPMCs that obtain event log information from DT_SPMC_MANIFEST, ensure the event log is updated when TF-A
feat(fvp): update evtlog info in the xferlist's DT_SPMC_MANIFEST entry
For compatibility with SPMCs that obtain event log information from DT_SPMC_MANIFEST, ensure the event log is updated when TF-A uses firmware handoff.
Change-Id: Iafc11c63c86c2ee67481e3085d2e8390d5f99cea Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
show more ...
|
| 3c90095d | 03-Sep-2025 |
Yeoreum Yun <yeoreum.yun@arm.com> |
feat(fvp): move PLAT_ARM_SPMC_SP_MANIFEST_SIZE definition
PLAT_ARM_SPMC_SP_MANIFEST_SIZE is used to allocate transfer entry when TF-A is built with TRANSFER_LIST to pass: - StandaloneMm manifest w
feat(fvp): move PLAT_ARM_SPMC_SP_MANIFEST_SIZE definition
PLAT_ARM_SPMC_SP_MANIFEST_SIZE is used to allocate transfer entry when TF-A is built with TRANSFER_LIST to pass: - StandaloneMm manifest with TL_TAG_DT_FFA_MANIFEST tag in case of SPMC_AT_EL3
- SPMC manifest (i.e) rust-spmc.
Therefore, move the PLAT_ARM_SPMC_SP_MANIFEST_SIZE definition under the TRNASFER_LIST & SPD_spmd condition and increase the size of TRANSFER_LIST as much as PLAT_ARM_SPMC_SP_MANIFEST_SIZE
Change-Id: If5e4c184fcf3aa683554f6d49caf78a5f6bfc2d1 Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
show more ...
|
| 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 ...
|
| 982ee634 | 04-Sep-2025 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
Merge changes from topic "xl/separate-bl2" into integration
* changes: feat(fwu): documentation for BL2 separation feat(fwu): separate bl2 image from rest of the FIP feat(fwu): create flag for
Merge changes from topic "xl/separate-bl2" into integration
* changes: feat(fwu): documentation for BL2 separation feat(fwu): separate bl2 image from rest of the FIP feat(fwu): create flag for BL2 separation
show more ...
|
| 2f5fd826 | 08-Oct-2024 |
Harrison Mutai <harrison.mutai@arm.com> |
feat(arm): unify Linux kernel as BL33 handling
Streamlines and unifies how Arm platforms pass arguments to the Linux kernel when it is loaded as BL33. It replaces the FVP specific macro `FVP_HW_CONF
feat(arm): unify Linux kernel as BL33 handling
Streamlines and unifies how Arm platforms pass arguments to the Linux kernel when it is loaded as BL33. It replaces the FVP specific macro `FVP_HW_CONFIG_ADDR` with a common macro `ARM_HW_CONFIG_ADDR` for accessing the device tree blob base address.
For FVP the DT address is set to use `ARM_PRELOADED_DTB_BASE` if provided, falling back to a default address otherwise.
This provides a consistent mechanism for Arm platforms to define and override the DTB base address used during kernel handoff. It reduces the chance of misconfiguration, and simplifies platform integration.
Change-Id: Ib668dbb1de9d42cf41c0b0ee9a316f054891752a Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
show more ...
|
| d57362bd | 26-Jun-2025 |
Xialin Liu <xialin.liu@arm.com> |
feat(fwu): separate bl2 image from rest of the FIP
Create a separate partition for BL2 image in the GPT. Modify the makefile to package BL2 image and its certificates into a different FIP image.
Ch
feat(fwu): separate bl2 image from rest of the FIP
Create a separate partition for BL2 image in the GPT. Modify the makefile to package BL2 image and its certificates into a different FIP image.
Change-Id: I950883ea0c393a2a063ad9e51bb963cbac742705 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| 19e4312c | 02-Sep-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge "feat(cpufeat): enable FEAT_MPAM_PE_BW_CTRL support" into integration |
| 9bc1e599 | 02-Sep-2025 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
fix(gpt): fix fill_l1_cont_desc() function
GPT library function fill_l1_cont_desc() writes contiguous descriptors and is called in a loop by fill_l1_tbl() which fills out GPI entries in in a single
fix(gpt): fix fill_l1_cont_desc() function
GPT library function fill_l1_cont_desc() writes contiguous descriptors and is called in a loop by fill_l1_tbl() which fills out GPI entries in in a single L1 table. The loop terminates when the address of the first granule in range 'first' exceeds address of the last granule (inclusive) 'last'. This patch fixes the issue when fill_l1_cont_desc() was iterating through all matching contiguous block sizes 512, 32 and 2MB in a loop and filling consecutive smaller descriptors instead of filling a single one with a maximum size. This resulted for memory region 0x80000000 of size 1.5GB (3*512MB)to be filled with 2 512MB, 8 32MB and 128 2MB contiguous descriptors instead of 3 512MB descriptors with build option RME_GPT_MAX_BLOCK=512. This patch also removes unused definition of ARM_PAS_GPI_ANY macro in fvp_pas_def.h.
Change-Id: I9fcff512af306a57d17dee0bade74d2f3f79b5e9 Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| 29d304ed | 02-Sep-2025 |
Mark Dykes <mark.dykes@arm.com> |
Merge "fix(neoverse-rd): add console initialisation to BL31" into integration |
| 4a09b3e2 | 01-Sep-2025 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "feat(cpus): add support for Canyon CPU" into integration |
| c42aefd3 | 12-Aug-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
feat(cpufeat): enable FEAT_MPAM_PE_BW_CTRL support
Implement support for FEAT_MPAM_PE_BW_CTRL, allowing lower Exception Levels to access MPAM_PE_BW_CTRL control registers by disabling their traps to
feat(cpufeat): enable FEAT_MPAM_PE_BW_CTRL support
Implement support for FEAT_MPAM_PE_BW_CTRL, allowing lower Exception Levels to access MPAM_PE_BW_CTRL control registers by disabling their traps to EL3.
When INIT_UNUSED_NS_EL2=1, configure MPAMBW2_EL2 in EL3 so that MPAM_PE_BW_CTRL accesses from EL0/EL1 do not trap to EL2.
At this stage, PE-side MPAM bandwidth controls remain disabled in EL3.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I8e359b0eb912cff3bdda109b21727a627cac3a7e
show more ...
|
| 5fc2895c | 11-Oct-2024 |
Icen Zeyada <icen.zeyada2@arm.com> |
feat(cpus): add support for Canyon CPU
Add basic CPU library code to support the Canyon CPU.
Change-Id: I82edc4384c4fe35ec2cf6b4bfd877a24ad8725dc Signed-off-by: Icen Zeyada <Icen.Zeyada2@arm.com> S
feat(cpus): add support for Canyon CPU
Add basic CPU library code to support the Canyon CPU.
Change-Id: I82edc4384c4fe35ec2cf6b4bfd877a24ad8725dc Signed-off-by: Icen Zeyada <Icen.Zeyada2@arm.com> Signed-off-by: Ryan Everett <ryan.everett@arm.com> Signed-off-by: Min Yao Ng <minyao.ng@arm.com> Signed-off-by: Aditya Deshpande <aditya.deshpande@arm.com>
show more ...
|
| 47fca89d | 21-Aug-2025 |
Chris Kay <chris.kay@arm.com> |
fix(neoverse-rd): add console initialisation to BL31
Neoverse-RD currently neglects to initialise the console in BL31. This change adds the missing initialisation routine.
Change-Id: I946485f4dd857
fix(neoverse-rd): add console initialisation to BL31
Neoverse-RD currently neglects to initialise the console in BL31. This change adds the missing initialisation routine.
Change-Id: I946485f4dd857240208653e237a83e71073c33ff Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 30bbc4fa | 14-Aug-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(drtm): remove plat_system_reset()
The name plat_system_reset() has been in use for some time by a mediatek platform (in plat/mediatek/mt8173/plat_pm.c). However, DRTM added a global hook, that i
fix(drtm): remove plat_system_reset()
The name plat_system_reset() has been in use for some time by a mediatek platform (in plat/mediatek/mt8173/plat_pm.c). However, DRTM added a global hook, that is only implemented on FVP, that conflicts with it. This sometimes results in failed builds.
DRTM remediation ends with a platform reset. However, there is currently an error message printed that this is not supported. In this case, the correct thing to do is to panic and as such this hook is not needed.
Further, the correct sequence to reset the system is different and is only fully implemented by psci_system_reset(). This is a portable implementation supported by a wide variety of platform.
So remove plat_system_reset(). Once DRTM remediation properly supports resetting, the psci_system_reset() function should be used to achieve reset correctly and portably.
Change-Id: Ia4e150c51aeec613838464fbb0e1d0542f19ccab Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| b37872f5 | 19-Aug-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge "feat(juno): increase MAX_XLAT_TABLES for SPMC_AT_EL3" into integration |
| c76e8284 | 08-Aug-2025 |
Yeoreum Yun <yeoreum.yun@arm.com> |
feat(juno): increase MAX_XLAT_TABLES for SPMC_AT_EL3
Because of lack of XLAT_TABLE region, juno with SPMC_AT_EL3 got failure while mapping Rx/Tx buffer with ffa_driver.
To fix this, reduce PLAT_SP_
feat(juno): increase MAX_XLAT_TABLES for SPMC_AT_EL3
Because of lack of XLAT_TABLE region, juno with SPMC_AT_EL3 got failure while mapping Rx/Tx buffer with ffa_driver.
To fix this, reduce PLAT_SP_IMAGE_MAX_XLAT_TABLES and increase MAX_XLAT_TABLES.
Change-Id: I2d9e1f8a7a0661ff9a28781fd14a1376c2a155eb Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
show more ...
|
| 9a099b51 | 18-Jul-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(fvp): add the GICv5 config
The GICv5 FVP needs a gic_config.yaml file to fully configure the platform. The device tree that is provided is tied to this configuration and one does not come in th
feat(fvp): add the GICv5 config
The GICv5 FVP needs a gic_config.yaml file to fully configure the platform. The device tree that is provided is tied to this configuration and one does not come in the public package. So add a gic_config.yaml to have an easy means of fully defining the platform with what we expect. The provided yaml will also boot Linux.
Change-Id: Ib4994807fe397a86f730bd18b163e55453988b5d Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| d358eb21 | 11-Feb-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(fvp): add a GICv5 device tree
Tested with Linux v6.17-rc1, it boots as long as cpu idle is disabled.
Change-Id: Iadeb157e9d911c4228dc62c5610676f4c07f6c11 Co-developed-by: Sascha Bischoff <sasc
feat(fvp): add a GICv5 device tree
Tested with Linux v6.17-rc1, it boots as long as cpu idle is disabled.
Change-Id: Iadeb157e9d911c4228dc62c5610676f4c07f6c11 Co-developed-by: Sascha Bischoff <sascha.bischoff@arm.com> Co-developed-by: Lorenzo Pieralisi <lorenzo.pieralisi2@arm.com> Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| e87562b5 | 11-Feb-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
chore(fvp): remove redundant tsp manifest definitions
They are never consumed as the macros that use them are not used.
Change-Id: Ifcc0e7875f0dd3a842c80e3180119cd8f6818c87 Signed-off-by: Boyan Kar
chore(fvp): remove redundant tsp manifest definitions
They are never consumed as the macros that use them are not used.
Change-Id: Ifcc0e7875f0dd3a842c80e3180119cd8f6818c87 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| baf2e39f | 08-Aug-2025 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes I61d77211,I9cb5c1fa,I8e8a92fd into integration
* changes: refactor(gicv3): clarify redistributor base address usage with USE_GIC_DRIVER=3 fix(gicv3): remove plat_gicv3_base.c ref
Merge changes I61d77211,I9cb5c1fa,I8e8a92fd into integration
* changes: refactor(gicv3): clarify redistributor base address usage with USE_GIC_DRIVER=3 fix(gicv3): remove plat_gicv3_base.c refactor(versal-net): use the generic GIC driver
show more ...
|
| 75170704 | 29-Jul-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(gicv3): clarify redistributor base address usage with USE_GIC_DRIVER=3
The GICv3 driver has 2 methods of discovering the redistributors: a) via setting gicr_base - done at boot and assumes
refactor(gicv3): clarify redistributor base address usage with USE_GIC_DRIVER=3
The GICv3 driver has 2 methods of discovering the redistributors: a) via setting gicr_base - done at boot and assumes all GICR frames are contiguous. This is the original method.
b) via gicv3_rdistif_probe() - called from platform code and requires gicr_base == 0. It relaxes the requirement for frames to be contiguous, like in a multichip configuration, and defers the discovery to core bringup. This was introduced later.
Configurations possible with option a) are also possible with option b) with only slightly different behaviour. USE_GIC_DRIVER=3 inherited option b) from plat_gicv3_base.c and as such option a) is unusable. However, it is unclear from code how this should be used. Clarify this by requiring platforms initialise with gic_set_gicr_frames() and adding relevant comments.
Also rename plat_arm_override_gicr_frames() to gic_set_gicr_frames() as this is not plat arm specific and a part of the generic GIC driver.
Change-Id: I61d77211f8e65dc54cf9904069b500d26a06b5a5 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|