| #
156943e1 |
| 24-Sep-2025 |
Mark Dykes <mark.dykes@arm.com> |
Merge "feat(cpufeat): enable FEAT_CPA2 for EL3" into integration
|
| #
a1032beb |
| 20-Aug-2025 |
John Powell <john.powell@arm.com> |
feat(cpufeat): enable FEAT_CPA2 for EL3
FEAT_CPA2 enables checked pointer arithmetic, which in the event of an arithmetic overflow in pointer generation will result in a non-canonical pointer being
feat(cpufeat): enable FEAT_CPA2 for EL3
FEAT_CPA2 enables checked pointer arithmetic, which in the event of an arithmetic overflow in pointer generation will result in a non-canonical pointer being generated and subsequent address fault.
Note that FEAT_CPA is a trivial implementation that exists in some hardware purely so it can run CPA2-enabled instructions without crashing but they don't actually have checked arithmetic, so FEAT_CPA is not explicitly enabled in TF-A.
Change-Id: I6d2ca7a7e4b986bb9e917aa8baf8091a271c168b Signed-off-by: John Powell <john.powell@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 ...
|
| #
cb0a4e9d |
| 16-Jul-2025 |
Xialin Liu <xialin.liu@arm.com> |
feat(fwu): documentation for BL2 separation
The separation of BL2 introduce a new flag in the build option, SEPARATE_BL2_FIP.
Change-Id: I64e231d40376c39112bce66851af9ccb37d37382 Signed-off-by: Xia
feat(fwu): documentation for BL2 separation
The separation of BL2 introduce a new flag in the build option, SEPARATE_BL2_FIP.
Change-Id: I64e231d40376c39112bce66851af9ccb37d37382 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| #
7924b69f |
| 03-Sep-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(arm): unify Linux kernel as BL33 handling" into integration
|
| #
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 ...
|
| #
19e4312c |
| 02-Sep-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge "feat(cpufeat): enable FEAT_MPAM_PE_BW_CTRL support" 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 ...
|
| #
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 ...
|
| #
abcf135e |
| 04-Aug-2025 |
Mark Dykes <mark.dykes@arm.com> |
Merge "feat(common): add support for kernel DT handoff convention" into integration
|
| #
291e493d |
| 04-Jul-2025 |
Harrison Mutai <harrison.mutai@arm.com> |
feat(common): add support for kernel DT handoff convention
TF-A currently supports multiple DT handoff conventions:
1. Firmware Handoff (FH): DT passed in x0, with x1–x3 carrying additional data
feat(common): add support for kernel DT handoff convention
TF-A currently supports multiple DT handoff conventions:
1. Firmware Handoff (FH): DT passed in x0, with x1–x3 carrying additional data. 2. Kernel-compatible handoff (ARM_LINUX_KERNEL_AS_BL33): DT passed in x0, x1–x3 zeroed. 3. Legacy TF-A convention: DT passed in x1, with x0 used for MPIDR or NT_FW_CONFIG.
After discussions with folks in EDK2 and U-Boot, it's clear that there is no strict requirement for placing the DT in x1. Both projects support x0 for Arm platforms. To standardize behavior and support firmware handoff migration, this patch introduces USE_KERNEL_DT_CONVENTION as a configurable build flag. When enabled, the DT will be passed in x0 for BL33.
This aligns TF-A’s behavior with Linux boot expectations and simplifies integration across bootloaders.
Change-Id: I6bd7154fe07cb2e16e25c058f7cf862f9ae007e7 Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
show more ...
|
| #
35b2bbf4 |
| 28-Jul-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "bk/pabandon_cleanup" into integration
* changes: feat(cpus): add pabandon support to the Alto cpu feat(psci): optimise clock init on a pabandon feat(psci): check that
Merge changes from topic "bk/pabandon_cleanup" into integration
* changes: feat(cpus): add pabandon support to the Alto cpu feat(psci): optimise clock init on a pabandon feat(psci): check that CPUs handled a pabandon feat(psci): make pabandon support generic refactor(psci): unify coherency exit between AArch64 and AArch32 refactor(psci): absorb psci_power_down_wfi() into common code refactor(platforms): remove usage of psci_power_down_wfi fix(cm): disable SPE/TRBE correctly
show more ...
|
| #
04c39e46 |
| 24-Mar-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(psci): make pabandon support generic
Support for aborted powerdowns does not require much dedicated code. Rather, it is largely a matter of orchestrating things to happen in the right order.
T
feat(psci): make pabandon support generic
Support for aborted powerdowns does not require much dedicated code. Rather, it is largely a matter of orchestrating things to happen in the right order.
The only exception to this are older secure world dispatchers, which assume that a CPU_SUSPEND call will be terminal and therefore can clobber context. This was patched over in common code and hidden behind a flag. This patch moves this to the dispatchers themselves.
Dispatchers that don't register svc_suspend{_finish} are unaffected. Those that do must save the NS context before clobbering it and restoring in only in case of a pabandon. Due to this operation being non-trivial, this patch makes the assumption that these dispatchers will only be present on hardware that does not support pabandon and therefore does not add any contexting for them. In case this assumption ever changes, asserts are added that should alert us of this change.
Change-Id: I94a907515b782b4d2136c0d274246cfe1d567c0e Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
7118ad9d |
| 09-Jul-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(cpufeat): add support for FEAT_FGWTE3" into integration
|
| #
4274b526 |
| 23-Jun-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
feat(cpufeat): add support for FEAT_FGWTE3
Enable write traps for key EL3 system registers as per FEAT_FGWTE3, ensuring their values remain unchanged after boot.
Excluded Registers: MDCR_EL3 and MP
feat(cpufeat): add support for FEAT_FGWTE3
Enable write traps for key EL3 system registers as per FEAT_FGWTE3, ensuring their values remain unchanged after boot.
Excluded Registers: MDCR_EL3 and MPAM3_EL3: Not trapped as they are part of the EL3 context. SCTLR_EL3: Not trapped since it is overwritten during powerdown sequence(Included when HW_ASSISTED_COHERENCY=1)
TPIDR_EL3: Excluded due to its use in crash reporting(It is included when CRASH_REPORTING=0)
Reference: https://developer.arm.com/documentation/ddi0601/2025-06/AArch64-Registers/FGWTE3-EL3--Fine-Grained-Write-Traps-EL3
Change-Id: Idcb32aaac7d65a0b0e5c90571af00e01a4e9edb1 Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
show more ...
|
| #
f8901e38 |
| 23-Jun-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(dsu): support power control and autonomous powerdown config" into integration
|
| #
d52ff2b3 |
| 07-May-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
feat(dsu): support power control and autonomous powerdown config
This patch allows platforms to enable certain DSU settings to ensure memory retention and control over cache power requests. We also
feat(dsu): support power control and autonomous powerdown config
This patch allows platforms to enable certain DSU settings to ensure memory retention and control over cache power requests. We also move the driver out of css into drivers/arm. Platforms can configure the CLUSTERPWRCTLR and CLUSTERPWRDN registers [1] to improve power efficiency.
These registers enable finer-grained control of DSU power state transitions, including powerdown and retention.
IMP_CLUSTERPWRCTLR_EL1 provides: - Functional retention: Allows configuration of the duration of inactivity before the DSU uses CLUSTERPACTIVE to request functional retention.
- Cache power request: These bits are output on CLUSTERPACTIVE[19:16] to indicate to the power controller which cache portions must remain powered.
IMP_CLUSTERPWRDN_EL1 includes: - Powerdown: Triggers full cluster powerdown, including control logic.
- Memory retention: Requests memory retention mode, keeping L3 RAM contents while powering off the rest of the DSU.
The DSU-120 TRM [2] provides the full field definitions, which are used as references in the `dsu_driver_data` structure.
References: [1]: https://developer.arm.com/documentation/100453/latest/ [2]: https://developer.arm.com/documentation/102547/0201/?lang=en
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I2eba808b8f2a27797782a333c65dd092b03208fe
show more ...
|
| #
711f42b2 |
| 20-Jun-2025 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "mb/lfa-core-work" into integration
* changes: docs(maintainers): add myself as code owner for LFA service docs(lfa): update porting guide with LFA platform APIs feat(
Merge changes from topic "mb/lfa-core-work" into integration
* changes: docs(maintainers): add myself as code owner for LFA service docs(lfa): update porting guide with LFA platform APIs feat(lfa): add LFA holding pen logic feat(lfa): add initial implementation for LFA_ACTIVATE feat(lfa): add initial implementation for LFA_PRIME feat(fvp): implement platform API for load and auth image feat(lfa): implement LFA_CANCEL SMC feat(fvp): implement platform API for LFA cancel operation feat(lfa): implement LFA_GET_INVENTORY SMC feat(fvp): implement platform API for LFA activation pending check feat(lfa): implement LFA_GET_INFO SMC and integrate LFA build feat(fvp): initialize LFA component activators in platform layer feat(rmm): add placeholder activator callbacks for LFA feat(bl31): add placeholder activator implementation for LFA feat(lfa): add activation handler interface for component activation feat(fvp): implement LFA get components API feat(lfa): create LFA SMC handler template
show more ...
|
| #
cf48f49f |
| 15-Apr-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(lfa): create LFA SMC handler template
As per the specification v1.0[1], added all Live Firmware Activation (LFA) SMCs, including their Function IDs (FIDs) and associated error codes. A dummy ha
feat(lfa): create LFA SMC handler template
As per the specification v1.0[1], added all Live Firmware Activation (LFA) SMCs, including their Function IDs (FIDs) and associated error codes. A dummy handler function has been created as a template. Subsequent patches will implement the handling of these SMCs.
[1]: https://developer.arm.com/documentation/den0147/latest/
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com> Change-Id: I5d6500dcff35aa4a438cd5f97f349cd57406ddce
show more ...
|
| #
d154fe2b |
| 13-Jun-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes I2af839ae,Ifd0c7b4e,I56763cb4,I93aec580,Icbd43503, ... into integration
* changes: docs(fvp): add GICv5 build instructions and limitations feat(fvp): add GICv5 support feat(gicv5
Merge changes I2af839ae,Ifd0c7b4e,I56763cb4,I93aec580,Icbd43503, ... into integration
* changes: docs(fvp): add GICv5 build instructions and limitations feat(fvp): add GICv5 support feat(gicv5): probe components feat(gicv5): initialise the IWB feat(gicv5): initialise the IRS feat(gicv5): assign interrupt sources to appropriate security states feat(gicv5): add a barebones GICv5 driver feat(gicv5): add support for building with gicv5
show more ...
|
| #
8cef63d6 |
| 07-Jan-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(gicv5): add support for building with gicv5
The Generic Interrupt Controller v5 (GICv5) is the next generation of Arm interrupt controllers. It is a clean slate design and has native support fo
feat(gicv5): add support for building with gicv5
The Generic Interrupt Controller v5 (GICv5) is the next generation of Arm interrupt controllers. It is a clean slate design and has native support for the latest Armv9 features. As such it is entirely backwards incompatible with GICv3/v4.
This patch adds the necessary boilerplate to select a build with GICv5. The GIC has always had two parts. BL31 deals directly with the CPU interface while platform code is responsible for managing the IRI. In v5 this split is formalised and the CPU interface, FEAT_GCIE, may be implemented on its own. So reflect this split in our code with ENABLE_FEAT_GCIE which only affects BL31 and the GICv5 IRI lies in the generic GIC driver.
No actual functionality yet.
Change-Id: I97a0c3ba708877c213e50e7ef148e3412aa2af90 Co-developed-by: Achin Gupta <achin.gupta@arm.com> Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
cbab37c9 |
| 09-Jun-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix(build): remove SUPPORT_STACK_MEMTAG" into integration
|
| #
6bf7c6ad |
| 14-Apr-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(build): remove SUPPORT_STACK_MEMTAG
This flag enables the memtag sanitizer in clang. However, for this to work, other generic and platform-specific logic is required that was never implemented.
fix(build): remove SUPPORT_STACK_MEMTAG
This flag enables the memtag sanitizer in clang. However, for this to work, other generic and platform-specific logic is required that was never implemented. So in effect, the feature is half-baked and at best a simple test (of which we have plenty in tftf) or a NOP at worst.
So remove the option to simplify code a little.
Change-Id: Iab4150871c89545d813c5ae14be67bf6459d051a Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
fbab861f |
| 27-May-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge "feat(smcc): introduce a new vendor_el3 service for ACS SMC handler" into integration
|