| 73d98e37 | 02-Dec-2024 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(trbe): add a tsb before context switching
Just like for SPE, we need to synchronize TRBE samples before we change the context to ensure everything goes where it was intended to. If that is not d
fix(trbe): add a tsb before context switching
Just like for SPE, we need to synchronize TRBE samples before we change the context to ensure everything goes where it was intended to. If that is not done, the in-flight entries might use any piece of now incorrect context as there are no implicit ordering requirements.
Prior to root context, the buffer drain hooks would have done that. But now that must happen much earlier. So add a tsb to prepare_el3_entry as well.
Annoyingly, the barrier can be reordered relative to other instructions by default (rule RCKVWP). So add an isb after the psb/tsb to assure that they are ordered, at least as far as context is concerned.
Then, drop the buffer draining hooks. Everything they need to do is already done by now. There's a notable difference in that there are no dsb-s now. Since EL3 does not access the buffers or the feature specific context, we don't need to wait for them to finish.
Finally, drop a stray isb in the context saving macro. It is now absorbed into root context, but was missed.
Change-Id: I30797a40ac7f91d0bb71ad271a1597e85092ccd5 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| f8088733 | 21-Nov-2024 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(spe): add a psb before updating context and remove context saving
In the chapter about FEAT_SPE (D16.4 specifically) it is stated that "Sampling is always disabled at EL3". That means that disab
fix(spe): add a psb before updating context and remove context saving
In the chapter about FEAT_SPE (D16.4 specifically) it is stated that "Sampling is always disabled at EL3". That means that disabling sampling (writing PMBLIMITR_EL1.E to 0) is redundant and can be removed. The only reason we save/restore SPE context is because of that disable, so those can be removed too.
There's the issue of draining the profiling buffer though. No new samples will have been generated since entering EL3. However, old samples might still be in-flight. Unless synchronised by a psb csync, those might be affected by our extensive context mutation. Adding a psb in prepare_el3_entry should cater for that. Note that prior to the introduction of root context this was not a problem as context remained unchanged and the hooks took care of the rest.
Then, the only time we care about the buffer actually making it to memory is when we exit coherency. On HW_ASSISTED_COHERENCY systems we don't have to do anything, it should be handled for us. Systems without it need a dsb to wait for them to complete. There should be one already in each cpu's powerdown hook which should work.
While on the topic of barriers, the esb barrier is no longer used. Remove it.
Change-Id: I9736fc7d109702c63e7d403dc9e2a4272828afb2 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| a57e18e4 | 11-Nov-2024 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
feat(fpmr): disable FPMR trap
This patch enables support of FEAT_FPMR by enabling access to FPMR register. It achieves it by setting the EnFPM bit of SCR_EL3. This feature is currently enabled for N
feat(fpmr): disable FPMR trap
This patch enables support of FEAT_FPMR by enabling access to FPMR register. It achieves it by setting the EnFPM bit of SCR_EL3. This feature is currently enabled for NS world only.
Reference: https://developer.arm.com/documentation/109697/2024_09/ Feature-descriptions/The-Armv9-5-architecture-extension?lang=en
Change-Id: I580c409b9b22f8ead0737502280fb9093a3d5dd2 Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
show more ...
|
| 52d29345 | 11-Nov-2024 |
Ryan Everett <ryan.everett@arm.com> |
fix(psa): increase psa-mbedtls heap size for rsa
The value assigned for the mbedtls heap size for large rsa keys was too small when PSA_CRYPTO is set to 1, leading to run-time failures if one was to
fix(psa): increase psa-mbedtls heap size for rsa
The value assigned for the mbedtls heap size for large rsa keys was too small when PSA_CRYPTO is set to 1, leading to run-time failures if one was to attempt to use a large RSA key with PSA_CRYPTO=1.
Change-Id: Id9b2648ae911879f483f1b88301f28694af0721d Signed-off-by: Ryan Everett <ryan.everett@arm.com>
show more ...
|
| c307efce | 09-Dec-2024 |
Ryan Everett <ryan.everett@arm.com> |
feat(mbedtls): mbedtls config update for v3.6.2
This new update to the LTS branch of MbedTLS provides the fix for a buffer underrun vulnerability. TF-A does not use the previously vulnerable functio
feat(mbedtls): mbedtls config update for v3.6.2
This new update to the LTS branch of MbedTLS provides the fix for a buffer underrun vulnerability. TF-A does not use the previously vulnerable functions `mbedtls_pk_write_key_der` or `mbedtls_pk_write_key_pem`. Full patch notes to this MbedTLS update can be found at https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.6.2.
We now enforce the mbedtls version to be greater than or equal to 3.6.2 in our default configs.
Change-Id: I79027f6c741ab3f419f7b555321507e6a78b977b Signed-off-by: Ryan Everett <ryan.everett@arm.com>
show more ...
|
| 640ba634 | 09-Dec-2024 |
Ryan Everett <ryan.everett@arm.com> |
refactor(mbedtls): rename default mbedtls confs
Change the name of these confs to be version agnostic, we will later use these configs to enforce the mbedtls minimum version
Change-Id: I1f665c24718
refactor(mbedtls): rename default mbedtls confs
Change the name of these confs to be version agnostic, we will later use these configs to enforce the mbedtls minimum version
Change-Id: I1f665c2471877ecc833270c511749ff845046f10 Signed-off-by: Ryan Everett <ryan.everett@arm.com>
show more ...
|
| 8953568a | 13-May-2024 |
Levi Yun <yeoreum.yun@arm.com> |
feat(lib): introduce Hob creation library
According to Platform Initialization (PI) Specification [1] and discussion on edk2 mailing list [2], StandaloneMm shouldn't create Hob but it should be pass
feat(lib): introduce Hob creation library
According to Platform Initialization (PI) Specification [1] and discussion on edk2 mailing list [2], StandaloneMm shouldn't create Hob but it should be passed from TF-A. IOW, TF-A should pass boot information via HOB list to initialise StandaloneMm properly.
And this HOB lists could be delivered via - SPM_MM: Transfer List according to the firmware handoff spec[3]
- FF-A v1.1 >= : FF-A boot protocol.
This patch introduces a TF-A HOB creation library and some of definitions which StandaloneMm requires to boot.
Link: https://uefi.org/sites/default/files/resources/PI_Spec_1_6.pdf [1] Link: https://edk2.groups.io/g/devel/topic/103675962#114283 [2] Link: https://github.com/FirmwareHandoff/firmware_handoff [3] Signed-off-by: Levi Yun <yeoreum.yun@arm.com> Change-Id: I5e0838adce487110206998a8b79bc3adca922cec
show more ...
|
| 940ecd07 | 29-Nov-2024 |
Igor Podgainõi <igor.podgainoi@arm.com> |
feat(cpus): add support for Alto CPU
Add basic CPU library code to support the Alto CPU.
Change-Id: I45958be99c4a350a32a9e511d3705fb568b97236 Signed-off-by: Igor Podgainõi <igor.podgainoi@arm.com> |
| a869e2dc | 24-Oct-2024 |
Sudeep Holla <sudeep.holla@arm.com> |
fix(spmd): fix build failure due to redefinition
Clang build breaks with the following warning:
| In file included from services/std_svc/spmd/spmd_logical_sp.c:15: | include/services/el3_spmd
fix(spmd): fix build failure due to redefinition
Clang build breaks with the following warning:
| In file included from services/std_svc/spmd/spmd_logical_sp.c:15: | include/services/el3_spmd_logical_sp.h:15:38: error: redefinition of | typedef 'spmd_spm_core_context_t' is a C11 feature [-Werror,-Wtypedef-redefinition]. | 15 | typedef struct spmd_spm_core_context spmd_spm_core_context_t; | | ^ | services/std_svc/spmd/spmd_private.h:58:3: note: previous definition is here | 58 | } spmd_spm_core_context_t; | | ^ | CC services/std_svc/std_svc_setup.c | 1 error generated. | In file included from services/std_svc/spmd/spmd_main.c:35: | services/std_svc/spmd/spmd_private.h:58:3: error: redefinition of typedef | 'spmd_spm_core_context_t' is a C11 feature [-Werror,-Wtypedef-redefinition] | 58 | } spmd_spm_core_context_t; | | ^ | include/services/el3_spmd_logical_sp.h:15:38: note: previous definition is here | 15 | typedef struct spmd_spm_core_context spmd_spm_core_context_t; | | ^ | 1 error generated.
A structure 'spmd_spm_core_context_t' defined in 'spmd_private.h' is also declared in 'el3_spmd_logical_sp.h' as it is used in a couple of function declarations. These function declarations can be moved to spmd_private.h as they are not needed elsewhere.
Change-Id: Ic6b9a277abe00cb7129f671570abf7255be62dfa Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
show more ...
|
| aa99881d | 15-Nov-2024 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
fix(rme): add console name to checksum calculation
The name field of console_info structure was missed in checksum calculation. This is corrected by adding a new helper checksum_calc() which compute
fix(rme): add console name to checksum calculation
The name field of console_info structure was missed in checksum calculation. This is corrected by adding a new helper checksum_calc() which computes the checksum in a field agnostic manner.
Change-Id: I5c39ee43f1fa20872c37846e3feeabd0525a47ae Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| 7623e085 | 11-Sep-2024 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
feat(cm): test integrity of el1_ctx registers
* This patch adds support to tsp (BL32) Image, to exercise EL1_context registers at S-EL1.
* Adds a SMC function ID "MODIFY_EL1_CTX" to handle EL1_CT
feat(cm): test integrity of el1_ctx registers
* This patch adds support to tsp (BL32) Image, to exercise EL1_context registers at S-EL1.
* Adds a SMC function ID "MODIFY_EL1_CTX" to handle EL1_CTX registers at S-EL1 and overwrite them.
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> Change-Id: Id4f2b3b748f7bc9e6c9d72a2f03d50aefbfb61cb
show more ...
|
| b40bc36c | 07-Nov-2024 |
Yann Gautier <yann.gautier@st.com> |
Merge "build(bl31): support separated memory for RW DATA" 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 ...
|
| 02711885 | 28-Oct-2024 |
Mark Dykes <mark.dykes@arm.com> |
Merge "fix(intel): refactor SDMMC driver for Altera products" into integration |
| beba2040 | 25-Oct-2024 |
Sieu Mun Tang <sieu.mun.tang@intel.com> |
fix(intel): refactor SDMMC driver for Altera products
Refactor to be more robust. Removed duplicated and not used functions. Add in ADMA read.
Change-Id: I1a5a00397ece6f9ccc5916225ab5317010b01b52 S
fix(intel): refactor SDMMC driver for Altera products
Refactor to be more robust. Removed duplicated and not used functions. Add in ADMA read.
Change-Id: I1a5a00397ece6f9ccc5916225ab5317010b01b52 Signed-off-by: Jit Loon Lim <jit.loon.lim@intel.com> Signed-off-by: Sieu Mun Tang <sieu.mun.tang@intel.com>
show more ...
|
| 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 ...
|
| 190ae702 | 24-Oct-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "feat(cpus): add support for cortex-a720ae" into integration |
| fa5fc59f | 23-Oct-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "fix(el3-runtime): correct CASSERT for cpu data size" into integration |
| cc6dd79e | 22-Oct-2024 |
Mark Dykes <mark.dykes@arm.com> |
Merge "fix(intel): update preloaded_bl33_base for legacy product" into integration |
| f29765fd | 21-Oct-2024 |
Sieu Mun Tang <sieu.mun.tang@intel.com> |
fix(intel): update preloaded_bl33_base for legacy product
Update preloaded_bl33_base for legacy product for Yocto.
The Yocto Jenkins build was initially configured to build products where the start
fix(intel): update preloaded_bl33_base for legacy product
Update preloaded_bl33_base for legacy product for Yocto.
The Yocto Jenkins build was initially configured to build products where the starting of the DDR is from 0x0000 0000. And if there is no NS_image_offset set, the Jenkins is not able to acquire the correct address offset to boot up the system. However, in the direct OS boot, there is no issue as the user shall always include the address offset during the compilation phase. Otherwise, the code shall execute the default address offset. Besides that, this also provides the flexibility to user to customize their SoC design by not restricted to the default address.
SDMMC block size. It was changed due to the need when boot to Linux. Kernel.itb size is big thus we have to increase the available reading block size. Otherwise for normal U-boot and Zephyr it shall not be reading a big block size to avoid "garbage" data.
Change-Id: I1c2a22db28bf0ada734563e40efd4f5749951273 Signed-off-by: Jit Loon Lim <jit.loon.lim@intel.com> Signed-off-by: Sieu Mun Tang <sieu.mun.tang@intel.com>
show more ...
|
| 034b9197 | 21-Oct-2024 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge "chore(cpus): optimise runtime errata applications" into integration |
| 2752c2a8 | 21-Oct-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "feat(cpus): add support for arcadia cpu" into integration |
| 8118078b | 15-Oct-2024 |
Ahmed Azeem <ahmed.azeem@arm.com> |
feat(cpus): add support for cortex-a720ae
Add the basic CPU library code to support Cortex-A720AE. The overall library code is adapted based on Cortex-A720 code.
Signed-off-by: David Hu <david.hu2@
feat(cpus): add support for cortex-a720ae
Add the basic CPU library code to support Cortex-A720AE. The overall library code is adapted based on Cortex-A720 code.
Signed-off-by: David Hu <david.hu2@arm.com> Signed-off-by: Ahmed Azeem <ahmed.azeem@arm.com> Change-Id: I3d64dc5a3098cc823e656a5ad3ea05cd71598dc6
show more ...
|
| 5ec9ade9 | 21-Oct-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "fix(brbe): allow RME builds with BRBE" into integration |