| 513faf51 | 30-Oct-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "fix-compiler-wrappers" into integration
* changes: fix(build): fix compiler wrapper detection feat(build): update `shell-map` to also pass indices |
| bba54a3f | 30-Oct-2025 |
Chris Kay <chris.kay@arm.com> |
fix(build): scan symbols until all are resolved
This small change ensures that unresolved references between object files are resolved regardless of the order that they are provided to the linker. T
fix(build): scan symbols until all are resolved
This small change ensures that unresolved references between object files are resolved regardless of the order that they are provided to the linker. This is beneficial for us, because it allows us to append libraries to variables like `BLx_LIBS` without concern for ordering.
No update is necessary for armlink, which already implements this behaviour by default.
Change-Id: I2fd2aa04f5911a1d45162c065dfe2a5049b5b14f Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 19f4e199 | 30-Oct-2025 |
Chris Kay <chris.kay@arm.com> |
fix(build): add include directory dependencies
The bootloader images and their sources are missing dependencies on their include directories. This can trigger errors and/or race conditions when a ta
fix(build): add include directory dependencies
The bootloader images and their sources are missing dependencies on their include directories. This can trigger errors and/or race conditions when a target is dependent on generated headers.
Change-Id: I71a65669aa0107445d5dda1bd237b87c99c9c8fd Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 1988ea81 | 22-Oct-2025 |
Olivier Deprez <olivier.deprez@arm.com> |
docs: deprecate SPM_MM build option
Following the ML post [1] deprecating the SPM-MM build option.
[1] https://lists.trustedfirmware.org/archives/list/tf-a@lists.trustedfirmware.org/thread/Z6GAD7OG
docs: deprecate SPM_MM build option
Following the ML post [1] deprecating the SPM-MM build option.
[1] https://lists.trustedfirmware.org/archives/list/tf-a@lists.trustedfirmware.org/thread/Z6GAD7OGKNDPNKECJ63HQZ4XEYUJXTNM/
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Change-Id: Ie845335989a6b11382ebe2f32962f534ad1bf8c6
show more ...
|
| 3dc69bcb | 29-Oct-2025 |
Chris Kay <chris.kay@arm.com> |
fix(build): fix compiler wrapper detection
A late change in the recently-merged compiler wrapper detection change stack introduced two issues:
Firstly, the `irange` function - a dependency of the c
fix(build): fix compiler wrapper detection
A late change in the recently-merged compiler wrapper detection change stack introduced two issues:
Firstly, the `irange` function - a dependency of the compiler wrapper detection implementation - was taken out of the change stack, which meant uses of it evaluated to empty.
Secondly, the shell command used by the `shell-slice` function was replaced with an alternative implementation which incorrectly sliced the shell words inclusively rather than exclusively.
This change resolves the issues caused by these changes by replacing the use of the `irange` function with `shell-map`, and by ensuring that the `shell-slice` function correctly uses an exclusive end value.
Change-Id: Ic6ef007d3a3c5da1152775634fbeb5fc6ccd41d8 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 1d5ae1e5 | 29-Oct-2025 |
Chris Kay <chris.kay@arm.com> |
feat(build): update `shell-map` to also pass indices
This small change updates the `shell-map` function to also provide the word index to the map function.
Change-Id: I636dcdb9945681208b9b64a7532a3
feat(build): update `shell-map` to also pass indices
This small change updates the `shell-map` function to also provide the word index to the map function.
Change-Id: I636dcdb9945681208b9b64a7532a31f6130ac500 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| d6affea1 | 02-Oct-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
fix(security): add clrbhb support
TF-A mitigates spectre-bhb(CVE-2022-23960) issue with loop workaround based on - https://developer.arm.com/documentation/110280/latest/
On platforms that support `
fix(security): add clrbhb support
TF-A mitigates spectre-bhb(CVE-2022-23960) issue with loop workaround based on - https://developer.arm.com/documentation/110280/latest/
On platforms that support `clrbhb` instruction it is recommended to use `clrbhb` instruction instead of the loop workaround.
Ref- https://developer.arm.com/documentation/102898/0108/
Change-Id: Ie6e56e96378503456a1617d5e5d51bc64c2e0f0b Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| 7e277564 | 27-Oct-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "ck/tf-a/cmake-cc-fix" into integration
* changes: fix(build): forward compiler launcher to CMake fix(build): force CMake to cross-compile fix(build): correctly forwar
Merge changes from topic "ck/tf-a/cmake-cc-fix" into integration
* changes: fix(build): forward compiler launcher to CMake fix(build): force CMake to cross-compile fix(build): correctly forward C compiler to CMake feat(build): add helpers for managing compiler launchers refactor(build): track toolchain tool origin refactor(build): unify toolchain derivation
show more ...
|
| b5deac9a | 27-Oct-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "comp_build_macro" into integration
* changes: feat(build): setting CRYPTO_LIB via CRYPTO_SUPPORT feat(build): set CRYPTO_SUPPORT macro per BL feat(build): create defi
Merge changes from topic "comp_build_macro" into integration
* changes: feat(build): setting CRYPTO_LIB via CRYPTO_SUPPORT feat(build): set CRYPTO_SUPPORT macro per BL feat(build): create define macro to be used by BL
show more ...
|
| 5c24052a | 26-Sep-2025 |
Chris Kay <chris.kay@arm.com> |
feat(build): add helpers for managing compiler launchers
With the introduction of the Event Log library, we now need to forward some of our toolchain information to CMake. However, CMake always trea
feat(build): add helpers for managing compiler launchers
With the introduction of the Event Log library, we now need to forward some of our toolchain information to CMake. However, CMake always treats the first shell word in `CC` as the path to the compiler, which is problematic for users of compiler launchers like `ccache`.
This change introduces some additional heuristics to the toolchain interface to detect compiler launchers and isolate their arguments from the underlying compiler command, which can then be forwarded separately to CMake.
Change-Id: I783833c523380b989bbac05b57503bc76881f6a4 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 93f45539 | 26-Sep-2025 |
Chris Kay <chris.kay@arm.com> |
refactor(build): track toolchain tool origin
If a toolchain tool cannot be identified, the warning now includes a report describing whether the program was given by a user-specified parameter, the C
refactor(build): track toolchain tool origin
If a toolchain tool cannot be identified, the warning now includes a report describing whether the program was given by a user-specified parameter, the C compiler, or a default value.
Change-Id: Ic71ad33d3123f17433a3c176a93310b39bfa5fff Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 3cc5e789 | 29-Sep-2025 |
Chris Kay <chris.kay@arm.com> |
refactor(build): unify toolchain derivation
At the moment, the process we go through to derive the value for the toolchain tool variables is fairly complicated and not particularly consistent. This
refactor(build): unify toolchain derivation
At the moment, the process we go through to derive the value for the toolchain tool variables is fairly complicated and not particularly consistent. This change brings the three mechanisms we support into alignment in terms of their inputs and outputs via three helpers:
- `toolchain-from-parameter`: load the command from its parameter - `toolchain-from-cc`: load the command from its C compiler - `toolchain-from-default`: load the command from its built-in defaults
These functions take a toolchain identifier and a tool class identifer, and return either a program name/path or a shell command. Sanitisation is then done inside `toolchain-determine-tool`, which now makes a stronger guarantee that the toolchain tools are correctly escaped for the shell.
Change-Id: I3ce73134824e805e8ee47a119c982e7fe4923fae Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 7a0a320d | 24-Oct-2025 |
Chris Kay <chris.kay@arm.com> |
Merge changes from topic "ck/tf-a/shell-utilities" into integration
* changes: feat(build): add shell program reference utility (`shell-program`) feat(build): add shell word map utility (`shell-
Merge changes from topic "ck/tf-a/shell-utilities" into integration
* changes: feat(build): add shell program reference utility (`shell-program`) feat(build): add shell word map utility (`shell-map`) feat(build): add shell fragment joining utility (`shell-join`) feat(build): add shell fragment slicing utility (`shell-slice`) feat(build): add shell fragment length utility (`shell-words`) feat(build): add shell word extraction utility (`shell-word`) feat(build): add shell quoting utility (`shell-quote`) feat(build): add temporary variable binding utility (`with`)
show more ...
|
| 0322d7af | 30-Jan-2025 |
Jay Monkman <jmonkman@google.com> |
feat(el3-spmc): allow physical partitions to have multiple UUIDs
Physical partitions can now be assigned multiple UUIDs. This updates - FFA_PARTITION_INFO_GET handling to return all the required
feat(el3-spmc): allow physical partitions to have multiple UUIDs
Physical partitions can now be assigned multiple UUIDs. This updates - FFA_PARTITION_INFO_GET handling to return all the required parttion descriptors - device tree parsing to read multiple UUIDs
Change-Id: Ib9a961130aace75ba31b6610873138f35d355f09 Signed-off-by: Jay Monkman <jmonkman@google.com> Signed-off-by: Andrei Homescu <ahomescu@xwf.google.com>
show more ...
|
| cd92fb24 | 28-Jul-2025 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
feat(build): setting CRYPTO_LIB via CRYPTO_SUPPORT
Setting CRYPTO_LIB based on CRYPTO_SUPPORT via the CRYPTO_SUPPORT macro to be called by component-specific makefiles.
Signed-off-by: Lauren Wehrme
feat(build): setting CRYPTO_LIB via CRYPTO_SUPPORT
Setting CRYPTO_LIB based on CRYPTO_SUPPORT via the CRYPTO_SUPPORT macro to be called by component-specific makefiles.
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com> Change-Id: Ib400e4668c60c24bb4399de6a320b5c16205affb
show more ...
|
| 6e2fe623 | 06-Jun-2025 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
feat(build): set CRYPTO_SUPPORT macro per BL
Moving the setting of CRYPTO_SUPPORT from the main Makefile to individual component makefiles using the new build macro make_defines for each BL-specific
feat(build): set CRYPTO_SUPPORT macro per BL
Moving the setting of CRYPTO_SUPPORT from the main Makefile to individual component makefiles using the new build macro make_defines for each BL-specific CPPFLAGS.
Rework romlib build command to use CRYPTO_LIB to determine mbedtls need instead of CRYPTO_SUPPORT. If CRYPTO_SUPPORT is set for any component, then CRYPTO_LIB will be filled, romlib can use this instead.
Add a convenience makefile macro for setting CRYPTO_SUPPORT from component specific makefiles, have components call the macro based on whether authenication verification (NEED_AUTH) and/or hash calculation (NEED_HASH) is required for the specific boot stage.
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com> Change-Id: I7e81fede74fb9c04694b022e8eebed460616565c
show more ...
|
| 116d2c09 | 06-Jun-2025 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
feat(build): create define macro to be used by BL
Adding make_defines that creates defines using make_define to be used per the specified boot loader. This can be used for many build flags with the
feat(build): create define macro to be used by BL
Adding make_defines that creates defines using make_define to be used per the specified boot loader. This can be used for many build flags with the intention to separate by BL. First, specifically for use of CRYPTO_SUPPORT to be set separately by BL through the CPPFLAGS build option.
This can be called per component makefile to specify build configurations per BL, i.e. for BL1, BL1_CPPFLAGS += $(call make_defines,CRYPTO_SUPPORT)
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com> Change-Id: Iee40c1e673f04c83534bdbfafe8b1c1dd4898e23
show more ...
|
| aa6edba3 | 10-Sep-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(build): put the -target definitions in toolchain.mk
Knowing the target is quite important and must be known early - it is necessary for flag discovery and should be available much earlier than c
fix(build): put the -target definitions in toolchain.mk
Knowing the target is quite important and must be known early - it is necessary for flag discovery and should be available much earlier than cflags.mk's inclusion. So put it in toolchain.mk with the rest of the toolchain configuration.
Change-Id: Ia8b522376d27171ad1282d05c162cddc0fca69ab Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| 28973741 | 10-Sep-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(build): align the cpu-ops flags with all others
Since the cpu-ops file was created we've obtained the constraints.mk and cflags.mk files and we also have the defaults.mk. The cpu-ops file is not
fix(build): align the cpu-ops flags with all others
Since the cpu-ops file was created we've obtained the constraints.mk and cflags.mk files and we also have the defaults.mk. The cpu-ops file is not much different to these three, just much more complex. This patch keeps the complicated bit in cpu-ops.mk but it makes it behave like defaults.mk. The non-complicated bits (like cross referencing and compiler flags) go to their corresponding files. This centralises responsibilities and makes it nicer to keep track of.
The reason for doing this untangling is that the order of defaulting, cross referencing, and compiler flag selection is significant and we can run into problems where seemingly identical lines of code produce different outcomes.
Change-Id: Id4b7714e432a0d628d33412836fd5c93f0488970 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| a72154ce | 30-Sep-2025 |
Chris Kay <chris.kay@arm.com> |
feat(build): add shell program reference utility (`shell-program`)
This change adds the `shell-program` function to the build system, which accepts a program name, path or shell fragment and ensures
feat(build): add shell program reference utility (`shell-program`)
This change adds the `shell-program` function to the build system, which accepts a program name, path or shell fragment and ensures it is safely and correctly escaped for use in shell command.
Change-Id: I31d00e6da0cc2fd464bb794c7efb8d6ff3685c4b Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 37cd6184 | 30-Sep-2025 |
Chris Kay <chris.kay@arm.com> |
feat(build): add shell word map utility (`shell-map`)
This change adds the `shell-map` function to the build system, which applies a function to every shell word in a shell fragment.
Change-Id: I20
feat(build): add shell word map utility (`shell-map`)
This change adds the `shell-map` function to the build system, which applies a function to every shell word in a shell fragment.
Change-Id: I2053e9741876cfa25878a7cadfbecb6b1127fc19 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| a75ab9a7 | 26-Sep-2025 |
Chris Kay <chris.kay@arm.com> |
feat(build): add shell fragment joining utility (`shell-join`)
This change adds the `shell-join` function to the build system, which parses a shell fragment and joins it shell words with an optional
feat(build): add shell fragment joining utility (`shell-join`)
This change adds the `shell-join` function to the build system, which parses a shell fragment and joins it shell words with an optional user- specified delimiter.
Change-Id: I201f728c2101bf67f14a037454a7b17d9b1c34a2 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 9a782d40 | 26-Sep-2025 |
Chris Kay <chris.kay@arm.com> |
feat(build): add shell fragment slicing utility (`shell-slice`)
This change adds the `shell-slice` function to the build system, which parses a shell fragment and extracts a sequence of shell words,
feat(build): add shell fragment slicing utility (`shell-slice`)
This change adds the `shell-slice` function to the build system, which parses a shell fragment and extracts a sequence of shell words, returned as a new shell fragment.
Change-Id: I0df1e451bae6b973711e26c75b435939251aeb51 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 8165d826 | 26-Sep-2025 |
Chris Kay <chris.kay@arm.com> |
feat(build): add shell fragment length utility (`shell-words`)
This change adds the `shell-words` function to the build system, which parses a shell fragment and counts the number of shell words in
feat(build): add shell fragment length utility (`shell-words`)
This change adds the `shell-words` function to the build system, which parses a shell fragment and counts the number of shell words in it.
Change-Id: Ief031efd5e013a74e6e5a09fc8e8382c4d47e591 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 5980fa7c | 26-Sep-2025 |
Chris Kay <chris.kay@arm.com> |
feat(build): add shell word extraction utility (`shell-word`)
This change adds the `shell-word` function to the build system, which parses a shell fragment and extracts the N-th shell word.
Change-
feat(build): add shell word extraction utility (`shell-word`)
This change adds the `shell-word` function to the build system, which parses a shell fragment and extracts the N-th shell word.
Change-Id: Ie35d5164b58188eade851bbcc3f700e51c0837df Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|