| 8b2048c1 | 19-Sep-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
fix(cpufeat): move nested virtualization support to optionals
Commit(f5211420b refactor(cpufeat): refactor arch feature build options) accidentally added nested virtualization support to mandatory 8
fix(cpufeat): move nested virtualization support to optionals
Commit(f5211420b refactor(cpufeat): refactor arch feature build options) accidentally added nested virtualization support to mandatory 8.4 features move this to optional 8.4 features list.
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com> Change-Id: I3eb84ea489b6a5cc419359bc056aaadcced0ad0e
show more ...
|
| f5211420 | 17-Aug-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
refactor(cpufeat): refactor arch feature build options
Current build infra defaults all cpufeats in defaults.mk and some mandatory features are enabled in arch_features.mk and optional arch features
refactor(cpufeat): refactor arch feature build options
Current build infra defaults all cpufeats in defaults.mk and some mandatory features are enabled in arch_features.mk and optional arch features are enabled in platform specific makefile. This fragmentation is sometime confusing to figure out which feature is tied to which ARCH_MAJOR.ARCH_MINOR.
So, consolidating and grouping them for tracking and enabling makes more sense. With this change we consolidate all ARCH feature handling within arch_features.mk and disable all optional features that need to be enabled to platform makefile.
This is an ongoing series of effort to consolidate and going forward platform makefile should just specify ARCH_MAJOR and ARCH MINOR and all mandatory feature should be selected based on arch_features.mk any optional feature needed by the platform support can be enabled by platform makefile.
It also makes it easier for platform ports to look upto arch_features.mk and enable any optional feature that platform may need which are supported from TF-A.
Change-Id: I18764008856d81414256b6cbabdfa42a16b8040d Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| f1cb5bd1 | 01-Sep-2023 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
fix(tbbr): unrecognised 'tos-fw-key-cert' option
CCA CoT uses 'core-swd-cert' for signing all secure software, so when using cert_create tool to generate its certificate, it throws an error: "tools
fix(tbbr): unrecognised 'tos-fw-key-cert' option
CCA CoT uses 'core-swd-cert' for signing all secure software, so when using cert_create tool to generate its certificate, it throws an error: "tools/cert_create/cert_create: unrecognized option '--tos-fw-key-cert'". The issue has not been seen so far since "SPM+RME+TBB+Measured-Boot" combination is not tested in CI/local-setup. It is now resolved by guarding usage of '--tos-fw-key-cert' for non-CCA CoTs.
Change-Id: I5e61d851a71c251920171cf410cbd0129e0e0aad Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| bb22fb84 | 05-May-2023 |
Chris Kay <chris.kay@arm.com> |
build: sort bootloader image sources
To avoid duplicate symbol errors when compiling bootloader images which pull in the same source file multiple times, sort source files before generating bootload
build: sort bootloader image sources
To avoid duplicate symbol errors when compiling bootloader images which pull in the same source file multiple times, sort source files before generating bootloader image build rules in order to remove duplicates.
Change-Id: I03a60d9f752f8fe85f17ec14e265fd4a6223de32 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 1ab8c109 | 03-May-2023 |
Chris Kay <chris.kay@arm.com> |
build: allow platform-defined flags
Similarly to the earlier patch enabling BL-specific additions to include directories, preprocessor definitions and toolchain flags, this change allows platforms t
build: allow platform-defined flags
Similarly to the earlier patch enabling BL-specific additions to include directories, preprocessor definitions and toolchain flags, this change allows platforms to add options common to all images.
This is required because some platforms inject dependencies via the `<platform_def.h>` header, and we don't currently have a clean way to model that in build system code.
Change-Id: Ib0b38f9236cba6f56745cb3c756dfc81547da8bd Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 890b5088 | 25-Feb-2023 |
Raghu Krishnamurthy <raghu.ncstate@gmail.com> |
feat(spmd): add spmd logical partitions
Add header file to help with creation of SPMD logical partitions. Also update linker files to create sections to record SPMD logical partitions declared. This
feat(spmd): add spmd logical partitions
Add header file to help with creation of SPMD logical partitions. Also update linker files to create sections to record SPMD logical partitions declared. This follows the same pattern as the EL3 SPMC's logical partitions. This patch also adds initialization of SPMD logical partitions when the SPMD comes up. ENABLE_SPMD_LP is a build flag that is used to enable support for SPMD logical partitions. Note that the approach chosen is to keep SPMD and SPMC logical partition support separate, as opposed to extend the existing SPMC logical partition support since the code would need to have a number of ifdefs and the interactions with various build options such as SPMC_AT_EL3 needs to be accounted for, which would make code more complicated.
Signed-off-by: Raghu Krishnamurthy <raghu.ncstate@gmail.com> Change-Id: I9642ddbf6ea26dd3f4a283baec598d61c07e3661
show more ...
|
| 4d0b6632 | 24-Mar-2023 |
Maksims Svecovs <maksims.svecovs@arm.com> |
feat(mte): adds feature detection for MTE_PERM
Adds feature detection for v8.9 feature FEAT_MTE_PERM. Adds respective ID_AA64PFR2_EL1 definitions and ENABLE_FEAT_MTE_PERM define.
Change-Id: If24b42
feat(mte): adds feature detection for MTE_PERM
Adds feature detection for v8.9 feature FEAT_MTE_PERM. Adds respective ID_AA64PFR2_EL1 definitions and ENABLE_FEAT_MTE_PERM define.
Change-Id: If24b42f1207154e639016b0b840b2d91c6ee13d4 Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com> Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
show more ...
|
| 7794d6c8 | 01-Jun-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
feat(build): march option selection
Current build infra uses ARM_ARCH_MAJOR/MINOR to come up with march version and uses that march version with the compiler.
However in certain situations this is
feat(build): march option selection
Current build infra uses ARM_ARCH_MAJOR/MINOR to come up with march version and uses that march version with the compiler.
However in certain situations this is not ideal, like for example when we build with gcc-11 which supports only till march=armv8.5 but we need to build for 8.8 build, this means we need to bump down MAJOR/MINOR and we can't rely on major and minor values from the platform to select march value and build infra doesn't even try to compile and fails with not supported MAJOR/MINOR.
By adding a march build helper we try to check if compiler supports given march value from MAJOR/MINOR values from platform, if compiler doesn't support then we try to check what's the max or best supported march version by compiler and choose that march value and try to compile with that.
This is a supportive mechanism which will decouple march reliance on MAJOR/MINOR values from platform and will pave way for setting up enabling of features based on MAJOR/MINOR without worrying about the compiler not supporting given MAJOR/MINOR.
Also in TF-A we use generic instructions without much reliance or need for exact march necessity. So enabling and building features from armv-8.8 using an armv-8.5 march value is still going to be fine.
Please note: Platforms are free to freeze their march values using `MARCH_DIRECTIVE`. In absence of this define we are going to poke the compiler and come up with a potential march value.
Change-Id: I673061a269ec9018ff12e75dc375979f5e33b7d1 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| d4089fb8 | 30-May-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
refactor(build): merge march32/64 directives
Both march32-directive and march64-directive eventually generate the same march option that will passed to compiler.
Merge this two separate directives
refactor(build): merge march32/64 directives
Both march32-directive and march64-directive eventually generate the same march option that will passed to compiler.
Merge this two separate directives to a common one as march-directive.
Change-Id: I220d2b782eb3b54e13ffd5b6a581d0e6da68756a Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| 0f19b7aa | 02-May-2023 |
laurenw-arm <lauren.wehrmeister@arm.com> |
feat(build): pass CCA NV ctr option to cert_create
Modifying build system to pass the new CCA NV counter options ccafw_nvctr to cert_create tool in context of CCA COT
Change-Id: I9de2cdc041d96bc19
feat(build): pass CCA NV ctr option to cert_create
Modifying build system to pass the new CCA NV counter options ccafw_nvctr to cert_create tool in context of CCA COT
Change-Id: I9de2cdc041d96bc19180c3189628ed23e68a992b Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
show more ...
|
| 269f3dae | 09-May-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "mp/feat_ras" into integration
* changes: refactor(cpufeat): enable FEAT_RAS for FEAT_STATE_CHECKED refactor(ras): replace RAS_EXTENSION with FEAT_RAS |
| fdf9d768 | 09-May-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "srm/Errata_ABI_El3" into integration
* changes: docs(errata_abi): document the errata abi changes feat(fvp): enable errata management interface fix(cpus): workaround
Merge changes from topic "srm/Errata_ABI_El3" into integration
* changes: docs(errata_abi): document the errata abi changes feat(fvp): enable errata management interface fix(cpus): workaround platforms non-arm interconnect refactor(errata_abi): factor in non-arm interconnect feat(errata_abi): errata management firmware interface
show more ...
|
| c214ced4 | 09-May-2023 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "bk/context_refactor" into integration
* changes: fix(gicv3): restore scr_el3 after changing it refactor(cm): make SVE and SME build dependencies logical |
| 9202d519 | 13-Feb-2023 |
Manish Pandey <manish.pandey2@arm.com> |
refactor(ras): replace RAS_EXTENSION with FEAT_RAS
The current usage of RAS_EXTENSION in TF-A codebase is to cater for two things in TF-A : 1. Pull in necessary framework and platform hooks for Firm
refactor(ras): replace RAS_EXTENSION with FEAT_RAS
The current usage of RAS_EXTENSION in TF-A codebase is to cater for two things in TF-A : 1. Pull in necessary framework and platform hooks for Firmware first handling(FFH) of RAS errors. 2. Manage the FEAT_RAS extension when switching the worlds.
FFH means that all the EAs from NS are trapped in EL3 first and signaled to NS world later after the first handling is done in firmware. There is an alternate way of handling RAS errors viz Kernel First handling(KFH). Tying FEAT_RAS to RAS_EXTENSION build flag was not correct as the feature is needed for proper handling KFH in as well.
This patch breaks down the RAS_EXTENSION flag into a flag to denote the CPU architecture `ENABLE_FEAT_RAS` which is used in context management during world switch and another flag `RAS_FFH_SUPPORT` to pull in required framework and platform hooks for FFH.
Proper support for KFH will be added in future patches.
BREAKING CHANGE: The previous RAS_EXTENSION is now deprecated. The equivalent functionality can be achieved by the following 2 options: - ENABLE_FEAT_RAS - RAS_FFH_SUPPORT
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: I1abb9ab6622b8f1b15712b12f17612804d48a6ec
show more ...
|
| 3e292319 | 09-May-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "assert_boolean_set" into integration
* changes: build!: check boolean flags are not empty fix(build): add a default value for INVERTED_MEMMAP fix(a5ds): add default v
Merge changes from topic "assert_boolean_set" into integration
* changes: build!: check boolean flags are not empty fix(build): add a default value for INVERTED_MEMMAP fix(a5ds): add default value for ARM_DISABLE_TRUSTED_WDOG fix(st-crypto): move flag control into source code fix(stm32mp1): always define PKA algos flags fix(stm32mp1): remove boolean check on PLAT_TBBR_IMG_DEF
show more ...
|
| dea23e24 | 05-May-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
fix(build): allow lower address access with gcc-12
With gcc-12 any lower address access can trigger a warning/error this would be useful in other parts of system but in TF-A there are various reason
fix(build): allow lower address access with gcc-12
With gcc-12 any lower address access can trigger a warning/error this would be useful in other parts of system but in TF-A there are various reasons to access to the lower address ranges, example using mmio_read_*/writes_*
So setup to allow access to lower addresses while using gcc-12
Change-Id: Id1b4012b13bc6876d83b90a347fee12478a1921d Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| ef63f5be | 14-Mar-2023 |
Sona Mathew <SonaRebecca.Mathew@arm.com> |
refactor(errata_abi): factor in non-arm interconnect
Workaround to help enable the kernel to query errata status using the errata abi feature for platforms with a non-arm interconnect.
Change-Id: I
refactor(errata_abi): factor in non-arm interconnect
Workaround to help enable the kernel to query errata status using the errata abi feature for platforms with a non-arm interconnect.
Change-Id: I47b03eaee5a0a763056ae71883fa30dfacb9b3f7 Signed-off-by: Sona Mathew <SonaRebecca.Mathew@arm.com>
show more ...
|
| ffea3844 | 19-Nov-2022 |
Sona Mathew <SonaRebecca.Mathew@arm.com> |
feat(errata_abi): errata management firmware interface
This patch adds the errata management firmware interface for lower ELs to discover details about CPU erratum. Based on the CPU erratum identifi
feat(errata_abi): errata management firmware interface
This patch adds the errata management firmware interface for lower ELs to discover details about CPU erratum. Based on the CPU erratum identifier the interface enables the OS to find the mitigation of an erratum in EL3.
The ABI can only be present in a system that is compliant with SMCCCv1.1 or higher. This implements v1.0 of the errata ABI spec.
For details on all possible return values, refer the design documentation below:
ABI design documentation: https://developer.arm.com/documentation/den0100/1-0?lang=en
Signed-off-by: Sona Mathew <SonaRebecca.Mathew@arm.com> Change-Id: I70f0e2569cf92e6e02ad82e3e77874546232b89a
show more ...
|
| 0d122947 | 08-Mar-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(cm): make SVE and SME build dependencies logical
Currently, enabling SME forces SVE off. However, the SME enablement requires SVE to be enabled, which is reflected in code. This is the oppo
refactor(cm): make SVE and SME build dependencies logical
Currently, enabling SME forces SVE off. However, the SME enablement requires SVE to be enabled, which is reflected in code. This is the opposite of what the build flags require.
Further, the few platforms that enable SME also explicitly enable SVE. Their platform.mk runs after the defaults.mk file so this override never materializes. As a result, the override is only present on the commandline.
Change it to something sensible where if SME is on then code can rely on SVE being on too. Do this with a check in the Makefile as it is the more widely used pattern. This maintains all valid use cases but subtly changes corner cases no one uses at the moment to require a slightly different combination of flags.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: If7ca3972ebc3c321e554533d7bc81af49c2472be
show more ...
|
| 1369fb82 | 24-Apr-2023 |
Yann Gautier <yann.gautier@st.com> |
build!: check boolean flags are not empty
For numeric flags, there is a check for the value to be set. Do the same for boolean flags. This avoids issues where a flag is defined but without a value,
build!: check boolean flags are not empty
For numeric flags, there is a check for the value to be set. Do the same for boolean flags. This avoids issues where a flag is defined but without a value, leading to potential unexpected behaviors.
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: Ib00da2784339471058887e93434d96ccba2aebb2
show more ...
|
| a123cb14 | 22-Mar-2023 |
Chris Kay <chris.kay@arm.com> |
build: allow BL-specific includes/definitions
This change introduces the `BLx_INCLUDE_DIRS` and `BLx_DEFINES` Makefile variables, which can be used to append include directories and preprocessor def
build: allow BL-specific includes/definitions
This change introduces the `BLx_INCLUDE_DIRS` and `BLx_DEFINES` Makefile variables, which can be used to append include directories and preprocessor definitions to specific images created using the `MAKE_BL` Makefile macro.
Change-Id: I9431f9d1cbde5b0b2624d9ce128a4f043c74c87f Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| d494b0ef | 02-May-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(el3-runtime): handle traps for IMPDEF registers accesses" into integration |
| 0ed3be6f | 13-Apr-2023 |
Varun Wadekar <vwadekar@nvidia.com> |
feat(el3-runtime): handle traps for IMPDEF registers accesses
This patch introduces support to handle traps from lower ELs for IMPDEF system register accesses. The actual support is left to the plat
feat(el3-runtime): handle traps for IMPDEF registers accesses
This patch introduces support to handle traps from lower ELs for IMPDEF system register accesses. The actual support is left to the platforms to implement.
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Change-Id: I623d5c432b4ce4328b68f238c15b1c83df97c1e5
show more ...
|
| 03d3c0d7 | 08-Nov-2022 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
feat(sme): enable SME2 functionality for NS world
FEAT_SME2 is an extension of FEAT_SME and an optional feature from v9.2. Its an extension of SME, wherein it not only processes matrix operations ef
feat(sme): enable SME2 functionality for NS world
FEAT_SME2 is an extension of FEAT_SME and an optional feature from v9.2. Its an extension of SME, wherein it not only processes matrix operations efficiently, but also provides outer-product instructions to accelerate matrix operations. It affords instructions for multi-vector operations. Further, it adds an 512 bit architectural register ZT0.
This patch implements all the changes introduced with FEAT_SME2 to ensure that the instructions are allowed to access ZT0 register from Non-secure lower exception levels.
Additionally, it adds support to ensure FEAT_SME2 is aligned with the existing FEATURE DETECTION mechanism, and documented.
Change-Id: Iee0f61943304a9cfc3db8f986047b1321d0a6463 Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| 688ab57b | 14-Mar-2023 |
Mark Brown <broonie@kernel.org> |
feat(gcs): support guarded control stack
Arm v9.4 introduces support for Guarded Control Stack, providing mitigations against some forms of RPO attacks and an efficient mechanism for obtaining the c
feat(gcs): support guarded control stack
Arm v9.4 introduces support for Guarded Control Stack, providing mitigations against some forms of RPO attacks and an efficient mechanism for obtaining the current call stack without requiring a full stack unwind. Enable access to this feature for EL2 and below, context switching the newly added EL2 registers as appropriate.
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.
Signed-off-by: Mark Brown <broonie@kernel.org> Change-Id: I691aa7c22e3547bb3abe98d96993baf18c5f0e7b
show more ...
|