| 07da4854 | 24-Jan-2024 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
Merge changes from topics "rcar-tools-fix", "toolchain-cleanup" into integration
* changes: build: remove the `NM` variable build: prefer `gcc-ar` over `ar` build: add `--no-warn-rwx-segments`
Merge changes from topics "rcar-tools-fix", "toolchain-cleanup" into integration
* changes: build: remove the `NM` variable build: prefer `gcc-ar` over `ar` build: add `--no-warn-rwx-segments` when linking with GCC build: always use the C compiler to assemble build: always use the C compiler to preprocess fix(rcar): fix implicit rule invocations in tools
show more ...
|
| 0a33adc0 | 21-Dec-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
refactor(mte): deprecate CTX_INCLUDE_MTE_REGS
Currently CTX_INCLUDE_MTE_REGS is used for dual purpose, to enable allocation tags register and to context save and restore them and also to check if mt
refactor(mte): deprecate CTX_INCLUDE_MTE_REGS
Currently CTX_INCLUDE_MTE_REGS is used for dual purpose, to enable allocation tags register and to context save and restore them and also to check if mte feature is available.
To make it more meaningful, remove CTX_INCLUDE_MTE_REGS and introduce FEAT_MTE. This would enable allocation tags register when FEAT_MTE is enabled and also supported from platform.
Also arch features can be conditionally enabled disabled based on arch version from `make_helpers/arch_features.mk`
Change-Id: Ibdd2d43874634ad7ddff93c7edad6044ae1631ed Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| 86e489c1 | 16-Jan-2024 |
Chris Kay <chris.kay@arm.com> |
build: add `--no-warn-rwx-segments` when linking with GCC
This flag is currently not included when linking with BFD via GCC. Without it, builds can fail when linking via GCC.
Change-Id: Id37e05f6fb
build: add `--no-warn-rwx-segments` when linking with GCC
This flag is currently not included when linking with BFD via GCC. Without it, builds can fail when linking via GCC.
Change-Id: Id37e05f6fb4eea4620861eb1bc8668c41f21ba20 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 781cb314 | 15-Jan-2024 |
Chris Kay <chris.kay@arm.com> |
build: always use the C compiler to preprocess
We're a bit inconsistent about which tool we use to preprocess source files; in some places we use `$(CC) -E` whilst in others we use `cpp`.
This chan
build: always use the C compiler to preprocess
We're a bit inconsistent about which tool we use to preprocess source files; in some places we use `$(CC) -E` whilst in others we use `cpp`.
This change forces all invocations of the C preprocessor to use the first scheme, which ensures that the preprocessor behaves the same way as the C compiler used when compiling C source files.
Change-Id: Iede2f25ff86ea8b43d7a523e32648058d5023832 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| bfef8b90 | 08-Nov-2023 |
Juan Pablo Conde <juanpablo.conde@arm.com> |
feat(context-mgmt): report context memory usage
This patch provides a reporting functionality to display the memory consumed by the context in each security state and for each exception level. Flag
feat(context-mgmt): report context memory usage
This patch provides a reporting functionality to display the memory consumed by the context in each security state and for each exception level. Flag PLATFORM_REPORT_CTX_MEM_USE enables or disables this feature.
Change-Id: I1515366bf87561dcedf2b3206be167804df681d4 Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com> Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| 9acff28a | 06-Oct-2023 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
build(mpam): add new build option CTX_INCLUDE_MPAM_REGS
New build option CTX_INCLUDE_MPAM_REGS is added to select if the firmware needs to save the MPAM EL2 registers during world switches. This opt
build(mpam): add new build option CTX_INCLUDE_MPAM_REGS
New build option CTX_INCLUDE_MPAM_REGS is added to select if the firmware needs to save the MPAM EL2 registers during world switches. This option is currently disabled as MPAM is only enabled for NS world.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: Ie2e5e184cdb65f7e1a98d8fe81590253fd859679
show more ...
|
| 8ddb02d5 | 30-Nov-2023 |
André Przywara <andre.przywara@arm.com> |
Merge changes from topic "fix-lto-build" into integration
* changes: fix(build): don't generate build-id fix(build): add forgotten BL_LDFLAGS to lto command line feat(build): check that .text
Merge changes from topic "fix-lto-build" into integration
* changes: fix(build): don't generate build-id fix(build): add forgotten BL_LDFLAGS to lto command line feat(build): check that .text section starts at page boundary
show more ...
|
| ad866942 | 28-Nov-2023 |
Mark Dykes <mark.dykes@arm.com> |
Merge "feat(security): add support for SLS mitigation" into integration |
| 538516f5 | 28-Sep-2023 |
Bipin Ravi <bipin.ravi@arm.com> |
feat(security): add support for SLS mitigation
This patch enables support for the gcc compiler option "-mharden-sls", the default is not to use this option. Setting HARDEN_SLS=1 sets "-mharden-sls=a
feat(security): add support for SLS mitigation
This patch enables support for the gcc compiler option "-mharden-sls", the default is not to use this option. Setting HARDEN_SLS=1 sets "-mharden-sls=all" that enables all hardening against straight line speculation.
Signed-off-by: Bipin Ravi <bipin.ravi@arm.com> Change-Id: I59f5963c22431571f5aebe7e0c5642b32362f4c9
show more ...
|
| 878354a8 | 07-Nov-2023 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
refactor(rss)!: remove PLAT_RSS_NOT_SUPPORTED build option
Removed the PLAT_RSS_NOT_SUPPORTED build option, which was initially introduced for building the Base AEM FVP platform platform with RSS. H
refactor(rss)!: remove PLAT_RSS_NOT_SUPPORTED build option
Removed the PLAT_RSS_NOT_SUPPORTED build option, which was initially introduced for building the Base AEM FVP platform platform with RSS. However, we now have a well-defined TC2 platform with RSS, making it unnecessary to keep this flag.
Note - Theoretically this is a breaking change. Other platforms could be using the PLAT_RSS_NOT_SUPPORTED build option. Among upstream platforms, only the Base AEM FVP uses it right now but we don't know about downstream platforms.
Change-Id: I931905a4c6ac1ebe3895ab6e0287d0fa07721707 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| 183329a5 | 15-Aug-2023 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
refactor(cm): introduce INIT_UNUSED_NS_EL2 macro
Introducing INIT_UNUSED_NS_EL2 macro which guards the code that disables the unused EL2 when a platform hands off from EL3 to NS-EL1 instead of NS-EL
refactor(cm): introduce INIT_UNUSED_NS_EL2 macro
Introducing INIT_UNUSED_NS_EL2 macro which guards the code that disables the unused EL2 when a platform hands off from EL3 to NS-EL1 instead of NS-EL2. Platforms without NS-EL2 in use must enable this flag.
BREAKING CHANGE: Initialisation code for handoff from EL3 to NS-EL1 disabled by default. Platforms which do that need to enable this macro going forward
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I61431cc4f7e2feb568d472828e5fd79cc73e51f5
show more ...
|
| 49ba1df5 | 05-Sep-2023 |
Andrey Skvortsov <andrej.skvortzov@gmail.com> |
fix(build): add forgotten BL_LDFLAGS to lto command line
as a result of missing BL_LDFLAGS '-Wl,--sort-section=alignment' was missing in link arguments for bl31.
Signed-off-by: Andrey Skvortsov <an
fix(build): add forgotten BL_LDFLAGS to lto command line
as a result of missing BL_LDFLAGS '-Wl,--sort-section=alignment' was missing in link arguments for bl31.
Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com> Change-Id: I78878e49da21fdc565abb3072e4abaf9face49f4
show more ...
|
| f87e54f7 | 10-Oct-2023 |
Manish Pandey <manish.pandey2@arm.com> |
fix(ras): remove RAS_FFH_SUPPORT and introduce FFH_SUPPORT
This patch removes RAS_FFH_SUPPORT macro which is the combination of ENABLE_FEAT_RAS and HANDLE_EA_EL3_FIRST_NS. Instead introduce an inter
fix(ras): remove RAS_FFH_SUPPORT and introduce FFH_SUPPORT
This patch removes RAS_FFH_SUPPORT macro which is the combination of ENABLE_FEAT_RAS and HANDLE_EA_EL3_FIRST_NS. Instead introduce an internal macro FFH_SUPPORT which gets enabled when platforms wants to enable lower EL EA handling at EL3. The internal macro FFH_SUPPORT will be automatically enabled if HANDLE_EA_EL3_FIRST_NS is enabled. FFH_SUPPORT along with ENABLE_FEAT_RAS will be used in source files to provide equivalent check which was provided by RAS_FFH_SUPPORT earlier. In generic code we needed a macro which could abstract both HANDLE_EA_EL3_FIRST_NS and RAS_FFH_SUPPORT macros that had limitations. Former was tied up with NS world only while the latter was tied to RAS feature.
This is to allow Secure/Realm world to have their own FFH macros in future.
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: Ie5692ccbf462f5dcc3f005a5beea5aa35124ac73
show more ...
|
| 72f027c3 | 31-Oct-2023 |
Harrison Mutai <harrison.mutai@arm.com> |
fix(build): convert tabs and ifdef comparisons
Make interprets lines prefixed with the tab characters as recipes (commands to run in the shell). Convert the use of ifdef as this incorrectly interpre
fix(build): convert tabs and ifdef comparisons
Make interprets lines prefixed with the tab characters as recipes (commands to run in the shell). Convert the use of ifdef as this incorrectly interprets when a flag is disabled i.e. `ENABLE_FEAT_MPAM=0`.
Change-Id: I5173d18a20ef0e3ffc32f0ffb1e70dc30aa4c4a9 Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
show more ...
|
| f0c813b7 | 17-Oct-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
build(refactor): avoid ifdef comparison
During build 'ENABLE_SPE_FOR_NS=0' is a valid build option however using ifdef would incorrectly translate this as enabled.
Change-Id: I1c516fb68f6e382bb83c5
build(refactor): avoid ifdef comparison
During build 'ENABLE_SPE_FOR_NS=0' is a valid build option however using ifdef would incorrectly translate this as enabled.
Change-Id: I1c516fb68f6e382bb83c578e499cbb86869d9eca Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| fb730117 | 09-Oct-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
refactor(build): reorder arch features handling
With commit@f5211420b(refactor(cpufeat): refactor arch feature build options all mandatory options are enabled with 'make_helpers/arch_features.mk'
H
refactor(build): reorder arch features handling
With commit@f5211420b(refactor(cpufeat): refactor arch feature build options all mandatory options are enabled with 'make_helpers/arch_features.mk'
However the commit makes it impossible for enabling of mandatory features through command line and platform make files, So re-order handling of mandatory features in 'make_helpers/arch_features.mk'
Use below order to enable mandatory features.
1.) first enable mandatory features by arch major/minor 2.) check if features were not earlier defined in platform makefile or through cmdline if defined earlier don't initialise them to '0' but retain their values from prior initialisation.
Change-Id: Icea3180c9dda0cd6e0b59316add9f3290ae51972 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| 3547270f | 20-Sep-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
refactor(build): reorder platform Makefile evaluation
Commit(f5211420b refactor(cpufeat): refactor arch feature build options) ensures mandatory arch features are enabled based on ARM_ARCH_MAJOR and
refactor(build): reorder platform Makefile evaluation
Commit(f5211420b refactor(cpufeat): refactor arch feature build options) ensures mandatory arch features are enabled based on ARM_ARCH_MAJOR and ARM_ARCH_MINOR, which would be expected to be provided from platform makefile. However it missed ensuring platform makefile is included before parsing and enabling any mandatory arch features.
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com> Change-Id: Ia0ccb7d73b2d24c87d3d235babed4704230bec28
show more ...
|
| 0e1dc0f2 | 25-Oct-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix(mpam): refine MPAM initialization and enablement process" into integration |
| edebefbc | 11-Oct-2023 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(mpam): refine MPAM initialization and enablement process
Restricts MPAM to only NS world and enables trap to EL3 for access of MPAM registers from lower ELs of Secure and Realm world.
This patc
fix(mpam): refine MPAM initialization and enablement process
Restricts MPAM to only NS world and enables trap to EL3 for access of MPAM registers from lower ELs of Secure and Realm world.
This patch removes MPAM enablement from global context and adds it to EL3 State context which enables/disables MPAM during world switches. Renamed ENABLE_MPAM_FOR_LOWER_ELS to ENABLE_FEAT_MPAM and removed mpam_init_el3() as RESET behaviour is trapping.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I131f9dba5df236a71959b2d425ee11af7f3c38c4
show more ...
|
| 1ca73b4f | 20-Sep-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
fix(build): convert tabs to spaces
Convert any used tabs in arch_features.mk to spaces to avoid makefile build issues. Only recipes should be indented with tabs.
ENABLE_TRBE_FOR_NS should be enable
fix(build): convert tabs to spaces
Convert any used tabs in arch_features.mk to spaces to avoid makefile build issues. Only recipes should be indented with tabs.
ENABLE_TRBE_FOR_NS should be enabled only for aarch64 but accidentally its enabled for aarch32 as well in FVP makefile.
Change-Id: Iee913a04d6b60a4738183a17421754c2638e8e6d Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| 430be439 | 26-Sep-2023 |
Harrison Mutai <harrison.mutai@arm.com> |
fix(build): pass parameters through response files
CMD.exe limits prompts to 8191 characters [1], unfortunately our command line lengths when building with make get really long and in certain instan
fix(build): pass parameters through response files
CMD.exe limits prompts to 8191 characters [1], unfortunately our command line lengths when building with make get really long and in certain instances exceed this limit. Get around this by passing options to the compiler and linker via the response file mechanism.
[1] https://learn.microsoft.com/en-us/troubleshoot/windows-client/shell-experience/command-line-string-limitation
Change-Id: I6fee83c5892542f887daf25227fcb595a36f26b9 Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
show more ...
|
| 801cd3c8 | 26-Jun-2023 |
Nishant Sharma <nishant.sharma@arm.com> |
feat(el3-spmc): add a flag to enable support to load SEL0 SP
Introduce a build flag for enabling the support for loading SEL0 SP in EL3 SPMC.
Signed-off-by: Nishant Sharma <nishant.sharma@arm.com>
feat(el3-spmc): add a flag to enable support to load SEL0 SP
Introduce a build flag for enabling the support for loading SEL0 SP in EL3 SPMC.
Signed-off-by: Nishant Sharma <nishant.sharma@arm.com> Change-Id: I1d63ae4d0d8374a732113565be90d58861506e39
show more ...
|
| 85bebe18 | 11-Oct-2023 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
refactor(console): disable getc() by default
The ability to read a character from the console constitutes an attack vector into TF-A, as it gives attackers a means to inject arbitrary data into TF-A
refactor(console): disable getc() by default
The ability to read a character from the console constitutes an attack vector into TF-A, as it gives attackers a means to inject arbitrary data into TF-A. It is dangerous to keep that feature enabled if not strictly necessary, especially in production firmware builds.
Thus, we need a way to disable this feature. Moreover, when it is disabled, all related code should be eliminated from the firmware binaries, such that no remnant/dead getc() code remains in memory, which could otherwise be used as a gadget as part of a bigger security attack.
This patch disables getc() feature by default. For legitimate getc() use cases [1], it can be explicitly enabled by building TF-A with ENABLE_CONSOLE_GETC=1.
The following changes are introduced when getc() is disabled:
- The multi-console framework no longer provides the console_getc() function.
- If the console driver selected by the platform attempts to register a getc() callback into the multi-console framework then TF-A will now fail to build.
If registered through the assembly function finish_console_register(): - On AArch64, you'll get: Error: undefined symbol CONSOLE_T_GETC used as an immediate value. - On AArch32, you'll get: Error: internal_relocation (type: OFFSET_IMM) not fixed up
If registered through the C function console_register(), this requires populating a struct console with a getc field, which will trigger: error: 'console_t' {aka 'struct console'} has no member named 'getc'
- All console drivers which previously registered a getc() callback have been modified to do so only when ENABLE_CONSOLE_GETC=1.
[1] Example of such use cases would be: - Firmware recovery: retrieving a golden BL2 image over the console in order to repair a broken firmware on a bricked board. - Factory CLI tool: Drive some soak tests through the console.
Discussed on TF-A mailing list here: https://lists.trustedfirmware.org/archives/list/tf-a@lists.trustedfirmware.org/thread/YS7F6RCNTWBTEOBLAXIRTXWIOYINVRW7/
Change-Id: Icb412304cd23dbdd7662df7cf8992267b7975cc5 Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com> Acked-by: Baruch Siach <baruch@tkos.co.il>
show more ...
|
| 5782b890 | 06-Sep-2023 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(mbedtls-psa): introduce PSA_CRYPTO build option
This is a preparatory patch to provide MbedTLS PSA Crypto API support, with below changes -
1. Added a build macro PSA_CRYPTO to enable the Mbed
feat(mbedtls-psa): introduce PSA_CRYPTO build option
This is a preparatory patch to provide MbedTLS PSA Crypto API support, with below changes -
1. Added a build macro PSA_CRYPTO to enable the MbedTLS PSA Crypto API support in the subsequent patches. 2. Compile necessary PSA crypto files from MbedTLS source code when PSA_CRYPTO=1.
Also, marked PSA_CRYPTO as an experimental feature.
Change-Id: I45188f56c5c98b169b2e21e365150b1825c6c450 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| 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 ...
|