| #
daab00cf |
| 03-Sep-2024 |
Chris Kay <chris.kay@arm.com> |
build: disable suffix rules globally
This change centralises the logic that disables the default suffix rules that Make provides. These rules are a hold-over from legacy standards of Make, and occas
build: disable suffix rules globally
This change centralises the logic that disables the default suffix rules that Make provides. These rules are a hold-over from legacy standards of Make, and occasionally conflict with our rules.
Change-Id: I9e023edbc01b5ae48a96fa1078d0b81faabb0cb9 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| #
6e622818 |
| 03-Sep-2024 |
Chris Kay <chris.kay@arm.com> |
build: use full paths for generated libraries
This change modifies the build rules for static libraries so that individual rules which use those libraries depend directly on the archive files that a
build: use full paths for generated libraries
This change modifies the build rules for static libraries so that individual rules which use those libraries depend directly on the archive files that are generated, rather than their phony target aliases and `-lX` link flags.
The goal of this is to clean up Make's view of the dependencies between files, avoiding phony targets (which do not honour timestamps) making their way into intermediate dependencies.
Change-Id: I96d655fcd94dc259ffa6e8970b2be7b8c7e11123 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| #
4ec2948f |
| 20-Nov-2024 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge "docs(changelog): changelog for v2.12 release" into integration
|
| #
07a6a654 |
| 15-Nov-2024 |
Govindraj Raja <govindraj.raja@arm.com> |
docs(changelog): changelog for v2.12 release
Generated this change-log using below command: npm run release -- --skip.commit --skip.tag --release-as 2.12.0
Change-Id: Idb74f6a31bf2691e7666e2738030d
docs(changelog): changelog for v2.12 release
Generated this change-log using below command: npm run release -- --skip.commit --skip.tag --release-as 2.12.0
Change-Id: Idb74f6a31bf2691e7666e2738030d6f0e2b8c519 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| #
7ea8852e |
| 08-Nov-2024 |
Yann Gautier <yann.gautier@st.com> |
Merge changes If56ed0ab,I632236a1 into integration
* changes: perf(build): don't check the compiler's flags for every target perf(build): be clever about uppercasing
|
| #
316f5c97 |
| 10-Oct-2024 |
Boyan Karatotev <boyan.karatotev@arm.com> |
perf(build): don't check the compiler's flags for every target
The TF_FLAGS variable must be recursively expanded as the rules that use it are defined before it has been fully defined. That has the
perf(build): don't check the compiler's flags for every target
The TF_FLAGS variable must be recursively expanded as the rules that use it are defined before it has been fully defined. That has the unfortunate side effect of spawning a subshell that calls the compiler for every file that is being built, thrashing multicore build times.
We don't cater to the possibility of the toolchain changing mid build so precomputing this value would be more sensible. Doing a clean build on an Intel dual socket Xeon Gold 5218 (i.e. 64 threads) workstation used to take about 9 seconds. After this patch it takes about 1.5. Single core performance went from ~45 seconds to about 25.
Change-Id: If56ed0ab3cc42bc482d9dd05a41ffbff4dd7f147 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
b40bc36c |
| 07-Nov-2024 |
Yann Gautier <yann.gautier@st.com> |
Merge "build(bl31): support separated memory for RW DATA" into integration
|
| #
212993ae |
| 06-Nov-2024 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge "feat(cpufeat): add ENABLE_FEAT_LS64_ACCDATA" into integration
|
| #
19d52a83 |
| 09-Aug-2024 |
Andre Przywara <andre.przywara@arm.com> |
feat(cpufeat): add ENABLE_FEAT_LS64_ACCDATA
Armv8.6 introduced the FEAT_LS64 extension, which provides a 64 *byte* store instruction. A related instruction is ST64BV0, which will replace the lowest
feat(cpufeat): add ENABLE_FEAT_LS64_ACCDATA
Armv8.6 introduced the FEAT_LS64 extension, which provides a 64 *byte* store instruction. A related instruction is ST64BV0, which will replace the lowest 32 bits of the data with a value taken from the ACCDATA_EL1 system register (so that EL0 cannot alter them). Using that ST64BV0 instruction and accessing the ACCDATA_EL1 system register is guarded by two SCR_EL3 bits, which we should set to avoid a trap into EL3, when lower ELs use one of those.
Add the required bits and pieces to make this feature usable: - Add the ENABLE_FEAT_LS64_ACCDATA build option (defaulting to 0). - Add the CPUID and SCR_EL3 bit definitions associated with FEAT_LS64. - Add a feature check to check for the existing four variants of the LS64 feature and detect future extensions. - Add code to save and restore the ACCDATA_EL1 register on secure/non-secure context switches. - Enable the feature with runtime detection for FVP and Arm FPGA.
Please note that the *basic* FEAT_LS64 feature does not feature any trap bits, it's only the addition of the ACCDATA_EL1 system register that adds these traps and the SCR_EL3 bits.
Change-Id: Ie3e2ca2d9c4fbbd45c0cc6089accbb825579138a Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
86acbbe2 |
| 26-Aug-2022 |
Ye Li <ye.li@nxp.com> |
build(bl31): support separated memory for RW DATA
Update linker file and init codes to allow using separated memory region for RW DATA. Init codes will copy the RW DATA from the image to the linked
build(bl31): support separated memory for RW DATA
Update linker file and init codes to allow using separated memory region for RW DATA. Init codes will copy the RW DATA from the image to the linked address.
On some NXP platforms, after the BL31 image has been verified, the bl31 image space will be locked/protected as RO only, so need to move the RW DATA and NOBITS out of the bl31 image.
Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: I361d9a715890961bf30790a3325f8085a40c0c39
show more ...
|
| #
89363219 |
| 28-Oct-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(d128): add support for FEAT_D128" into integration
|
| #
30655136 |
| 06-Sep-2024 |
Govindraj Raja <govindraj.raja@arm.com> |
feat(d128): add support for FEAT_D128
This patch disables trapping to EL3 when the FEAT_D128 specific registers are accessed by setting the SCR_EL3.D128En bit.
If FEAT_D128 is implemented, then FEA
feat(d128): add support for FEAT_D128
This patch disables trapping to EL3 when the FEAT_D128 specific registers are accessed by setting the SCR_EL3.D128En bit.
If FEAT_D128 is implemented, then FEAT_SYSREG128 is implemented. With FEAT_SYSREG128 certain system registers are treated as 128-bit, so we should be context saving and restoring 128-bits instead of 64-bit when FEAT_D128 is enabled.
FEAT_SYSREG128 adds support for MRRS and MSRR instruction which helps us to read write to 128-bit system register. Refer to Arm Architecture Manual for further details.
Change the FVP platform to default to handling this as a dynamic option so the right decision can be made by the code at runtime.
Change-Id: I1a53db5eac29e56c8fbdcd4961ede3abfcb2411a Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| #
5ec9ade9 |
| 21-Oct-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "fix(brbe): allow RME builds with BRBE" into integration
|
| #
9890eab5 |
| 18-Oct-2024 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(brbe): allow RME builds with BRBE
It used to be the case that a FEAT_RME build could not be built with FEAT_BRBE support. BRBE doesn't have a 3-world aware disable and MDCR_EL3 was not context s
fix(brbe): allow RME builds with BRBE
It used to be the case that a FEAT_RME build could not be built with FEAT_BRBE support. BRBE doesn't have a 3-world aware disable and MDCR_EL3 was not context switched to allow for disabling in Realm world.
As of commit 123002f9171384d976d95935b7f566740d69cc68 MDCR_EL3 is context switched. Since the flag for BRBE support is ENABLE_BRBE_FOR_NS, move brbe_enable() to only happen for NS world. The other worlds will see BRBE disabled and branch recording prohibited. This allows for a build with both RME and BRBE.
Note that EL2 BRBE registers are not context switched. Further work is needed if non-NS support is required.
Change-Id: I82f0f08399dcd080902477dc9636bc4541685f89 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
b6f2e376 |
| 16-Oct-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(sctlr2): add support for FEAT_SCTLR2" into integration
|
| #
1cafc96f |
| 16-Oct-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(the): add support for FEAT_THE" into integration
|
| #
63912657 |
| 16-Oct-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "feat(rmmd): el3 token sign during attestation" into integration
|
| #
6a88ec8b |
| 04-Jun-2024 |
Raghu Krishnamurthy <raghupathyk@nvidia.com> |
feat(rmmd): el3 token sign during attestation
Add required SMCs by RMM to push attestation signing requests to EL3 and get responses. EL3 may then choose to push these requests to a HES as suitable
feat(rmmd): el3 token sign during attestation
Add required SMCs by RMM to push attestation signing requests to EL3 and get responses. EL3 may then choose to push these requests to a HES as suitable for a platform. This patch also supports the new RMM_EL3_FEATURES interface, that RMM can use to query for support for HES based signing. The new interface exposes a feature register with different bits defining different discoverable features. This new interface is available starting the 0.4 version of the RMM-EL3 interface, causing the version to bump up. This patch also adds a platform port for FVP that implements the platform hooks required to enable the new SMCs, but it does not push to a HES and instead copies a zeroed buffer in EL3.
Change-Id: I69c110252835122a9533e71bdcce10b5f2a686b2 Signed-off-by: Raghu Krishnamurthy <raghupathyk@nvidia.com>
show more ...
|
| #
4ec4e545 |
| 06-Sep-2024 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
feat(sctlr2): add support for FEAT_SCTLR2
Arm v8.9 introduces FEAT_SCTLR2, adding SCTLR2_ELx registers. Support this, context switching the registers and disabling traps so lower ELs can access the
feat(sctlr2): add support for FEAT_SCTLR2
Arm v8.9 introduces FEAT_SCTLR2, adding SCTLR2_ELx registers. Support this, context switching the registers and disabling traps so lower ELs can access the new registers.
Change the FVP platform to default to handling this as a dynamic option so the right decision can be made by the code at runtime.
Change-Id: I0c4cba86917b6b065a7e8dd6af7daf64ee18dcda Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| #
6d0433f0 |
| 05-Sep-2024 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
feat(the): add support for FEAT_THE
Arm v8.9 introduces FEAT_THE, adding Translation Hardening Extension Read-Check-Write mask registers, RCWMASK_EL1 and RCWSMASK_EL1. Support this, context switchin
feat(the): add support for FEAT_THE
Arm v8.9 introduces FEAT_THE, adding Translation Hardening Extension Read-Check-Write mask registers, RCWMASK_EL1 and RCWSMASK_EL1. Support this, context switching the registers and disabling traps so lower ELs can access the new registers.
Change the FVP platform to default to handling this as a dynamic option so the right decision can be made by the code at runtime.
Change-Id: I8775787f523639b39faf61d046ef482f73b2a562 Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| #
bd298f5c |
| 04-Oct-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "fix(build): pass the PLAT option during FIP tool compilation" into integration
|
| #
40469bf9 |
| 03-Oct-2024 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
fix(build): pass the PLAT option during FIP tool compilation
Due to change [1], the FIP tool was compiled with the default platform instead of the one specified via the command line, as make_helpers
fix(build): pass the PLAT option during FIP tool compilation
Due to change [1], the FIP tool was compiled with the default platform instead of the one specified via the command line, as make_helpers.mk set the PLAT option to default. This happened because the root Makefile invoked FIP tool compilation without the PLAT option. The issue has been fixed by explicitly providing the PLAT option for FIP tool compilation.
[1]: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/26597
Change-Id: Icc516f8d44706df03c7e6ee123b58afeda72cea7 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| #
d7890a5f |
| 02-Oct-2024 |
André Przywara <andre.przywara@arm.com> |
Merge "feat(build): add ability to define platform specific defaults" into integration
|
| #
ba790730 |
| 30-Sep-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "build: make Poetry optional" into integration
|
| #
d2867397 |
| 26-Sep-2024 |
Chris Kay <chris.kay@arm.com> |
build: make Poetry optional
The Yocto team has requested that we do not use Poetry from within the Makefile, as Yocto does not have network access during the build process.
We want to maintain the
build: make Poetry optional
The Yocto team has requested that we do not use Poetry from within the Makefile, as Yocto does not have network access during the build process.
We want to maintain the current behaviour, so this change makes our use of Poetry contigent on it being available in the environment.
Additionally, explicitly passing an empty toolchain parameter now allows a tool to be *disabled* (e.g. passing `POETRY=` will prevent the build system from trying to use Poetry).
Change-Id: Ibf552a3fee1eaadee767a1b948b559700083b401 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|