| #
c3e5f6b9 |
| 22-Oct-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "bk/simpler_panic" into integration
* changes: fix(aarch64): do not print EL1 registers on EL3 panic refactor(el3-runtime): streamline cpu_data assembly offsets using th
Merge changes from topic "bk/simpler_panic" into integration
* changes: fix(aarch64): do not print EL1 registers on EL3 panic refactor(el3-runtime): streamline cpu_data assembly offsets using the cpu_ops template
show more ...
|
| #
4779becd |
| 06-Aug-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(el3-runtime): streamline cpu_data assembly offsets using the cpu_ops template
The cpu_data structure, just like cpu_ops, is collection of disparate data that must be accessible from both C
refactor(el3-runtime): streamline cpu_data assembly offsets using the cpu_ops template
The cpu_data structure, just like cpu_ops, is collection of disparate data that must be accessible from both C and assembly. Achieving this is tricky as there is no way to export structure offsets from C directly so they must be manually recreated with `#define`s and asserts. However, the cpu_data structure is quite old and the assembly offsets are a patchwork of additions and extremely difficult to reason with and modify. In fact, certain currently unused builds with ENABLE_RUNTIME_INSTRUMENTATION=1 fail to build.
To untangle this, convert the assembly offsets to the pattern used for the cpu_ops structure. That is, first define the sizes of every member, as generically as possible, and then chain their offsets one after the other. To make sure this is always correct, add a CASSERT for the offset of every member. This makes it easy to modify the structure and fixes the build failures.
Change-Id: I61aeb55e9c494896663a3c719c10e3c072f56349 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
6f726d8d |
| 03-Oct-2025 |
Yann Gautier <yann.gautier@st.com> |
Merge "fix(lib): align round_up with MISRA 10.1 and 10.8" into integration
|
| #
fa8b7495 |
| 17-Sep-2025 |
Khristine Andreea Barbulescu <khristineandreea.barbulescu@nxp.com> |
fix(lib): align round_up with MISRA 10.1 and 10.8
Adjust integer literals and operand types to ensure consistent unsigned usage and eliminate implicit type mismatches. This enhances compliance with
fix(lib): align round_up with MISRA 10.1 and 10.8
Adjust integer literals and operand types to ensure consistent unsigned usage and eliminate implicit type mismatches. This enhances compliance with MISRA 10.1 and 10.8.
Change-Id: Icf07313ae36d2a58bfb38c390c988ddcd913953f Signed-off-by: Khristine Andreea Barbulescu <khristineandreea.barbulescu@nxp.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 ...
|
| #
169ea2ce |
| 29-Apr-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes I0b0443d5,Ic454a87a into integration
* changes: fix(gic): quote the correct flag on error feat(lib): add a generic EXTRACT macro
|
| #
f963578b |
| 05-Feb-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(lib): add a generic EXTRACT macro
The EXTRACT macro is useful to extract a named field from a numeric value, usually a register. It is functionally identical to the `ubfx` instruction and uses
feat(lib): add a generic EXTRACT macro
The EXTRACT macro is useful to extract a named field from a numeric value, usually a register. It is functionally identical to the `ubfx` instruction and uses the same #defines (REG_FIELD_SHIFT and REG_FIELD_WIDTH).
This is the same macro that we use in tftf. It works well there and is quite useful for manipulating register fields concisely.
This macro replaces the EXTRACT_FIELD macro. Their function is identical, however, EXTRACT allows for easier interoperation with the `ubfx` instruction, makes code more similar to tftf, and is more concise.
Change-Id: Ic454a87af5e5fac108c7b7cb6b6804ec65a8d0e8 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
ee656609 |
| 16-Apr-2025 |
André Przywara <andre.przywara@arm.com> |
Merge changes Id942c20c,Idd286bea,I8917a26e,Iec8c3477,If3c25dcd, ... into integration
* changes: feat(cpufeat): enable FEAT_PAuth to FEAT_STATE_CHECKED perf(cpufeat): centralise PAuth key saving
Merge changes Id942c20c,Idd286bea,I8917a26e,Iec8c3477,If3c25dcd, ... into integration
* changes: feat(cpufeat): enable FEAT_PAuth to FEAT_STATE_CHECKED perf(cpufeat): centralise PAuth key saving refactor(cpufeat): convert FEAT_PAuth setup to C refactor(cpufeat): prepare FEAT_PAuth for FEATURE_DETECTION chore(cpufeat): remove PAuth presence checks feat(cpufeat): enable FEAT_BTI to FEAT_STATE_CHECKED
show more ...
|
| #
f8138056 |
| 02-Apr-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(cpufeat): convert FEAT_PAuth setup to C
An oversimplified view of FEAT_PAuth is that it's a symmetric encryption of the LR. PAC instructions execute as NOPs until explicitly turned on. So i
refactor(cpufeat): convert FEAT_PAuth setup to C
An oversimplified view of FEAT_PAuth is that it's a symmetric encryption of the LR. PAC instructions execute as NOPs until explicitly turned on. So in a function that turns PAuth on, the signing would have executed as a NOP and the authentication will encrypt the address, leading to a failure. That's why enablement is in assembly - we have full control of when pointer authentications happen.
However, assembly is hard to read, is opaque to the compiler for optimisations, and we need to call into C anyway for the platform hook to get the key. So convert it to C. We can instruct the compiler to not generate branch protection for the enable function only and as long as the caller doesn't do branch protection (and all callers are entrypoints written in assembly) everything will work.
Change-Id: I8917a26e1293033c910e3058664e3ca9207359b7 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
8762735b |
| 12-Mar-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge changes from topic "mb/drtm" into integration
* changes: feat(drtm): validate launch features in DRTM parameters feat(lib): add EXTRACT_FIELD macro for field extraction
|
| #
af1dd6e1 |
| 09-Mar-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(lib): add EXTRACT_FIELD macro for field extraction
Introduce a new EXTRACT_FIELD macro to simplify the extraction of specific fields from a value by shifting the value right and applying the ma
feat(lib): add EXTRACT_FIELD macro for field extraction
Introduce a new EXTRACT_FIELD macro to simplify the extraction of specific fields from a value by shifting the value right and applying the mask.
Change-Id: Iae9573d6d23067bbde13253e264e4f6f18b806c2 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| #
6cec23dc |
| 27-Jun-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "utils_fixes" into integration
* changes: refactor(lib): rename GENMASK parameters fix(lib): avoid CWE-190 for GENMASK macros fix(lib): fix MISRA 12.2 violations for B
Merge changes from topic "utils_fixes" into integration
* changes: refactor(lib): rename GENMASK parameters fix(lib): avoid CWE-190 for GENMASK macros fix(lib): fix MISRA 12.2 violations for BIT32 and BIT64 macros fix(intel): remove redundant BIT_32 macro
show more ...
|
| #
8f375e46 |
| 26-Jun-2024 |
Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com> |
refactor(lib): rename GENMASK parameters
Rename GENMASK parameters for better readability to avoid misinterpreting the 'l' as '1' in BIT(l) usage.
Change-Id: I9a85c750607e098939d70c61c2e29f4788b990
refactor(lib): rename GENMASK parameters
Rename GENMASK parameters for better readability to avoid misinterpreting the 'l' as '1' in BIT(l) usage.
Change-Id: I9a85c750607e098939d70c61c2e29f4788b99016 Signed-off-by: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
show more ...
|
| #
1f0b6e75 |
| 18-Jun-2024 |
Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com> |
fix(lib): avoid CWE-190 for GENMASK macros
Redefine GENMASK_32 and GENMASK_64 to avoid the impact of CWE-190, which applies due to (~0 << (l)) syntax, where a wraparound occurs.
Change-Id: I8d08911
fix(lib): avoid CWE-190 for GENMASK macros
Redefine GENMASK_32 and GENMASK_64 to avoid the impact of CWE-190, which applies due to (~0 << (l)) syntax, where a wraparound occurs.
Change-Id: I8d08911664db7052351312d310566bb546dfb486 Signed-off-by: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
show more ...
|
| #
0605b7e8 |
| 18-Jun-2024 |
Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com> |
fix(lib): fix MISRA 12.2 violations for BIT32 and BIT64 macros
MISRA interprets all unsigned integer literals as UTLR, which has the lowest rank required to represent a value. In this specific case,
fix(lib): fix MISRA 12.2 violations for BIT32 and BIT64 macros
MISRA interprets all unsigned integer literals as UTLR, which has the lowest rank required to represent a value. In this specific case, the value 1U was interpreted as an unsigned char. As a result, explicit casts are necessary to avoid issues with MISRA 12.2.
Change-Id: I4c1231ffabb27442c6a48dabd96942574d27c719 Signed-off-by: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
show more ...
|
| #
df21d41b |
| 27-Feb-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes I1415e402,Ia92cc693,I7a42f72e,I6e75659e,I4c6136c5, ... into integration
* changes: refactor(tc): correlate secure world addresses with platform_def feat(tc): add memory node in the
Merge changes I1415e402,Ia92cc693,I7a42f72e,I6e75659e,I4c6136c5, ... into integration
* changes: refactor(tc): correlate secure world addresses with platform_def feat(tc): add memory node in the device tree feat(tc): pass the DTB address to BL33 in R0 feat(tc): add arm_ffa node in dts chore(tc): add dummy entropy to speed up the Linux boot feat(tc): choose the DPU address and irq based on the target feat(tc): add SCMI power domain and IOMMU toggles refactor(tc): move the FVP RoS to a separate file feat(tc): factor in FVP/FPGA differences feat(tc): introduce an FPGA subvariant and TC3 CPUs feat(tc): add TC3 platform definitions refactor(tc): sanitise the device tree feat(tc): add PMU entry feat(tc): allow booting from DRAM chore(tc): remove unused hdlcd feat(tc): add firmware update secure partition feat(tc): add spmc manifest with trusty sp refactor(tc): unify all the spmc manifests feat(arm): add trusty_sp_fw_config build option fix(tc): do not enable MPMM and Aux AMU counters always fix(tc): correct interrupts feat(tc): interrupt numbers for `smmu_700` feat(tc): enable gpu/dpu scmi power domain and also gpu perf domain
show more ...
|
| #
5ee4deb8 |
| 04-Dec-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(tc): add memory node in the device tree
With new TC revisions, memory banks move around which requires an update in platform_def. It also requires an update in the device tree which doesn't com
feat(tc): add memory node in the device tree
With new TC revisions, memory banks move around which requires an update in platform_def. It also requires an update in the device tree which doesn't come naturally. To avoid this, add the memory node such that it uses the macros defined in platform_def.
By doing this we can put u-boot out of its misery in trying to come up with the correct memory node and tf-a's device tree becomes complete.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: Ia92cc6931abb12be2856ac3fb1455e4f3005b326
show more ...
|
| #
a1377a89 |
| 02-Oct-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "rm/handoff" into integration
* changes: feat(qemu): implement firmware handoff on qemu feat(handoff): introduce firmware handoff library
|
| #
3ba2c151 |
| 25-Jul-2023 |
Raymond Mao <raymond.mao@linaro.org> |
feat(handoff): introduce firmware handoff library
Add transfer list APIs and firmware handoff build option.
Change-Id: I68a0ace22c7e50fcdacd101eb76b271d7b76d8ff Signed-off-by: Raymond Mao <raymond.
feat(handoff): introduce firmware handoff library
Add transfer list APIs and firmware handoff build option.
Change-Id: I68a0ace22c7e50fcdacd101eb76b271d7b76d8ff Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
show more ...
|
| #
72e8f245 |
| 08-Aug-2023 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "chore: update to use Arm word across TF-A" into integration
|
| #
4c700c15 |
| 01-Aug-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
chore: update to use Arm word across TF-A
Align entire TF-A to use Arm in copyright header.
Change-Id: Ief9992169efdab61d0da6bd8c5180de7a4bc2244 Signed-off-by: Govindraj Raja <govindraj.raja@arm.co
chore: update to use Arm word across TF-A
Align entire TF-A to use Arm in copyright header.
Change-Id: Ief9992169efdab61d0da6bd8c5180de7a4bc2244 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| #
5c5ea616 |
| 18-Jan-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "fix: add parenthesis for tests in MIN, MAX and CLAMP macros" into integration
|
| #
8406db14 |
| 18-Nov-2022 |
Yann Gautier <yann.gautier@st.com> |
fix: add parenthesis for tests in MIN, MAX and CLAMP macros
This corrects the MISRA violation C2012-12.1: The precedence of operators within expressions should be made explicit
Signed-off-by: Yann
fix: add parenthesis for tests in MIN, MAX and CLAMP macros
This corrects the MISRA violation C2012-12.1: The precedence of operators within expressions should be made explicit
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: I62083c43b3f633504cac3497efe2e984924c63b2
show more ...
|
| #
70313d36 |
| 19-May-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(fvp): add plat hook for memory transactions feat(spmc): enable handling of the NS bit feat(spmc): add support for v1.1
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(fvp): add plat hook for memory transactions feat(spmc): enable handling of the NS bit feat(spmc): add support for v1.1 FF-A memory data structures feat(spmc/mem): prevent duplicated sharing of memory regions feat(spmc/mem): support multiple endpoints in memory transactions feat(spmc): add support for v1.1 FF-A boot protocol feat(plat/fvp): introduce accessor function to obtain datastore feat(spmc/mem): add FF-A memory management code
show more ...
|