- 19 Aug, 2021 1 commit
-
-
Varun Wadekar authored
Cortex A78 AE erratum 1941500 is a Cat B erratum that applies to revisions <= r0p1. It is still open. This erratum is avoided by by setting CPUECTLR_EL1[8] to 1. There is a small performance cost (<0.5%) for setting this bit. SDEN is available at https://developer.arm.com/documentation/SDEN1707912/0900 Change-Id: I2d72666468b146714a0340ba114ccf0f5165b39c Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
- 17 Aug, 2021 1 commit
-
-
johpow01 authored
This patch adds the basic CPU library code to support the Demeter CPU. This CPU is based on the Makalu-ELP core so that CPU lib code was adapted to create this patch. Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Ib5740b748008a72788c557f0654d8d5e9ec0bb7f
-
- 16 Aug, 2021 1 commit
-
-
Varun Wadekar authored
Cortex A78 AE erratum 1951502 is a Cat B erratum that applies to revisions <= r0p1. It is still open. This erratum is avoided by inserting a DMB ST before acquire atomic instructions without release semantics through a series of writes to implementation defined system registers. SDEN is available at https://developer.arm.com/documentation/SDEN1707912/0900 Change-Id: I812c5a37cdd03486df8af6046d9fa988f6a0a098 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
- 10 Aug, 2021 2 commits
-
-
johpow01 authored
Neoverse V1 erratum 2139242 is a Cat B erratum present in the V1 processor core. This issue is present in revisions r0p0, r1p0, and r1p1, and it is still open. SDEN can be found here: https://documentation-service.arm.com/static/60d499080320e92fa40b4625 Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I5c2e9beec72a64ac4131fb6dd76199821a934ebe
-
johpow01 authored
Neoverse V1 erratum 1966096 is a Cat B erratum present in the V1 processor core. This issue is present in revisions r0p0, r1p0, and r1p1, but the workaround only applies to r1p0 and r1p1, it is still open. SDEN can be found here: https://documentation-service.arm.com/static/60d499080320e92fa40b4625 Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Ic0b9a931e38da8a7000648e221481e17c253563b
-
- 05 Aug, 2021 1 commit
-
-
laurenw-arm authored
Neoverse V1 erratum 1925756 is a Cat B erratum present in r0p0, r1p0, and r1p1 of the V1 processor core, and it is still open. SDEN can be found here: https://documentation-service.arm.com/static/60d499080320e92fa40b4625 Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com> Change-Id: I6500dc98da92a7c405b9ae09d794d666e8f4ae52
-
- 03 Aug, 2021 2 commits
-
-
laurenw-arm authored
Neoverse V1 erratum 1852267 is a Cat B erratum present in r0p0 and r1p0 of the V1 processor core. It is fixed in r1p1. SDEN can be found here: https://documentation-service.arm.com/static/60d499080320e92fa40b4625 Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com> Change-Id: Ide5e0bc09371fbc91c2385ffdff74e604beb2dbe
-
laurenw-arm authored
Neoverse V1 erratum 1774420 is a Cat B erratum present in r0p0 and r1p0 of the V1 processor core. It is fixed in r1p1. SDEN can be found here: https://documentation-service.arm.com/static/60d499080320e92fa40b4625 Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com> Change-Id: I66e27b2518f73faeedd8615a1443a74b6a30f123
-
- 02 Aug, 2021 1 commit
-
-
Manish V Badarkhe authored
Added software CRC32 support in case platform doesn't support hardware CRC32. Platform must include necessary Zlib source files for compilation to use software CRC32 implementation. Change-Id: Iecb649b2edf951944b1a7e4c250c40fe7a3bde25 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
-
- 23 Jul, 2021 1 commit
-
-
Arunachalam Ganapathy authored
If SVE are enabled for both Non-secure and Secure world along with AMU extension, then it causes the TAM_BIT in CPTR_EL3 to be set upon exit from bl31. This restricts access to the AMU register set in normal world. This fix maintains consistency in both TAM_BIT and CPTR_EZ_BIT by saving and restoring CPTR_EL3 register from EL3 context. Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> Change-Id: Id76ce1d27ee48bed65eb32392036377716aff087
-
- 19 Jul, 2021 1 commit
-
-
johpow01 authored
Neoverse V1 erratum 1940577 is a Cat B erratum, present in some revisions of the V1 processor core. The workaround is to insert a DMB ST before acquire atomic instructions without release semantics. This issue is present in revisions r0p0 - r1p1 but this workaround only applies to revisions r1p0 - r1p1, there is no workaround for older versions. SDEN can be found here: https://documentation-service.arm.com/static/60d499080320e92fa40b4625 Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I210ad7d8f31c81b6ac51b028dfbce75a725c11aa
-
- 16 Jul, 2021 1 commit
-
-
johpow01 authored
Neoverse V1 erratum 1791573 is a Cat B erratum present in r0p0 and r1p0 of the V1 processor core. It is fixed in r1p1. SDEN can be found here: https://documentation-service.arm.com/static/60d499080320e92fa40b4625 Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Ic6f92da4d0b995bd04ca5b1673ffeedaebb71d10
-
- 28 Jun, 2021 1 commit
-
-
Max Shvetsov authored
Enables SVE support for the secure world via ENABLE_SVE_FOR_SWD. ENABLE_SVE_FOR_SWD defaults to 0 and has to be explicitly set by the platform. SVE is configured during initial setup and then uses EL3 context save/restore routine to switch between SVE configurations for different contexts. Reset value of CPTR_EL3 changed to be most restrictive by default. Signed-off-by: Max Shvetsov <maksims.svecovs@arm.com> Change-Id: I889fbbc2e435435d66779b73a2d90d1188bf4116
-
- 23 Jun, 2021 2 commits
-
-
johpow01 authored
Cortex A78 erratum 1821534 is a Cat B erratum present in r0p0 and r1p0 of the A78 processor core, it is fixed in r1p1. SDEN can be found here: https://documentation-service.arm.com/static/603e3733492bde1625aa8780 Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I71057c4b9625cd9edc1a06946b453cf16ae5ea2c
-
johpow01 authored
Cortex A77 erratum 1791578 is a Cat B erratum present in r0p0, r1p0, and r1p1 of the A77 processor core, it is still open. SDEN can be found here: https://documentation-service.arm.com/static/60a63a3c982fc7708ac1c8b1 Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Ib4b963144f880002de308def12744b982d3df868
-
- 03 Jun, 2021 1 commit
-
-
Olivier Deprez authored
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Change-Id: Id610f7e4398e799a2fbd74861274fd684c32db53
-
- 28 May, 2021 1 commit
-
-
johpow01 authored
This patch renames the Matterhorn, Matterhorn ELP, and Klein CPUs to Cortex A710, Cortex X2, and Cortex A510 respectively. Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I056d3114210db71c2840a24562b51caf2546e195
-
- 14 May, 2021 1 commit
-
-
Alexei Fedorov authored
This patch adds setting MDCR_EL3.MCCD in 'el3_arch_init_common' macro to disable cycle counting by PMCCNTR_EL0 in EL3 when FEAT_PMUv3p7 is implemented. This fixes failing test 'Leak PMU CYCLE counter values from EL3 on PSCI suspend SMC' on FVP models with 'has_v8_7_pmu_extension' parameter set to 1 or 2. Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Change-Id: I2ad3ef501b31ee11306f76cb5a61032ecfd0fbda
-
- 21 Apr, 2021 1 commit
-
-
Yann Gautier authored
Only BL32 (SP_min) is supported at the moment, BL1 and BL2_AT_EL3 are just stubbed with _pie_fixup_size=0. The changes are an adaptation for AARCH32 on what has been done for PIE support on AARCH64. The RELA_SECTION is redefined for AARCH32, as the created section is .rel.dyn and the symbols are .rel*. Change-Id: I92bafe70e6b77735f6f890f32f2b637b98cf01b9 Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
- 20 Apr, 2021 1 commit
-
-
johpow01 authored
ELP processors can sometimes have different MIDR values or features so we are adding the "_arm" suffix to differentiate the reference implementation from other future versions. Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Ieea444288587c7c18a397d279ee4b22b7ad79e20
-
- 13 Apr, 2021 1 commit
-
-
Leif Lindholm authored
Enable basic support for QEMU "max" CPU. The "max" CPU does not attampt to emulate any specific CPU, but rather just enables all the functions emulated by QEMU. Change-Id: I69c212932ef61433509662d0fefbabb1e9e71cf2 Signed-off-by: Leif Lindholm <leif@nuviainc.com>
-
- 07 Apr, 2021 1 commit
-
-
Max Shvetsov authored
Since there is a secure and non-secure version of the timer registers there is no need to preserve their context in EL3. With that, following registers were removed from EL3 save/restore routine: cnthps_ctl_el2 cnthps_tval_el2 cnthps_cval_el2 cnthvs_ctl_el2 cnthvs_tval_el2 cnthvs_cval_el2 cnthp_ctl_el2 cnthp_cval_el2 cnthp_tval_el2 cnthv_ctl_el2 cnthv_cval_el2 cnthv_tval_el2 Signed-off-by: Max Shvetsov <maksims.svecovs@arm.com> Change-Id: I6e2fc09c74a7375c4fccc11f12af4e39e6dc616b
-
- 06 Apr, 2021 1 commit
-
-
laurenw-arm authored
Cortex A77 erratum 1946167 is a Cat B erratum that applies to revisions <= r1p1. This erratum is avoided by inserting a DMB ST before acquire atomic instructions without release semantics through a series of writes to implementation defined system registers. SDEN can be found here: https://documentation-service.arm.com/static/600057a29b9c2d1bb22cd1be?token= Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com> Change-Id: I53e3b4fb7e7575ec83d75c2f132eda5ae0b4f01f
-
- 31 Mar, 2021 1 commit
-
-
Bipin Ravi authored
Add basic support for Cortex_A78C CPU. Signed-off-by: Bipin Ravi <bipin.ravi@arm.com> Change-Id: Id9e41cbe0580a68c6412d194a5ee67940e8dae56
-
- 24 Mar, 2021 1 commit
-
-
johpow01 authored
Add basic support for Makalu ELP processor core. Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I7b1ddbb8dd43326ecb8ff188f6f8fcf239826a93
-
- 10 Mar, 2021 1 commit
-
-
Usama Arif authored
Change-Id: Ie1acde619a5b21e09717c0e80befb6d53fd16607 Signed-off-by: Usama Arif <usama.arif@arm.com>
-
- 01 Mar, 2021 1 commit
-
-
johpow01 authored
Add basic support for Makalu CPU. Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I4e85d425eedea499adf585eb8ab548931185043d
-
- 25 Feb, 2021 1 commit
-
-
johpow01 authored
ARMv8.6 adds virtual offset registers to support virtualization of the event counters in EL1 and EL0. This patch enables support for this feature in EL3 firmware. Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I7ee1f3d9f554930bf5ef6f3d492e932e6d95b217
-
- 24 Feb, 2021 1 commit
-
-
Andre Przywara authored
MISRA complained about "0"s not being followed by an "U" (please note my protest about this!) and about values not being explicitly compared to 0 (fair enough). Also use explicit pointer types. Fix those issues to make the CI happy. Change-Id: I4d11e49c14f16223a71c78b0fc3e68ba9a1382d3 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
- 23 Feb, 2021 1 commit
-
-
Yann Gautier authored
This is the AARCH32 update of patch [1]. [1] 601e3ed2 ("lib: cpus: sanity check pointers before use") Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: I43dbe00a5802a7e1c6f877e22d1c66ec8275c6fa
-
- 05 Feb, 2021 1 commit
-
-
Manoj Kumar authored
This patch removes the Neoverse N1 CPU errata workaround for bug 1542419 as the bug is not present in Rainier R0P0 core. Change-Id: Icaca299b13ef830b2ee5129576aae655a6288e69 Signed-off-by: Manoj Kumar <manoj.kumar3@arm.com>
-
- 03 Feb, 2021 4 commits
-
-
Madhukar Pappireddy authored
From commit: 21571b1d140ae7bb44e94c0afba2ec61456b275b The coding guidelines[1] in TF-A forbid the use of ato*() functions in favour of strto*(). However, the TF-A libc does not provide an implementation of strto*(), making this rule impossible to satisfy. Also made small changes to fit into TF-A project. Added the source files to the libc makefile [1] https://trustedfirmware-a.readthedocs.io/en/latest/process/coding-guidelines.html#libc-functions-that-are-banned-or-to-be-used-with-caution Change-Id: I2e94a0b227ec39f6f4530dc50bb477999d27730f Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
-
Madhukar Pappireddy authored
From commit: 21571b1d140ae7bb44e94c0afba2ec61456b275b The coding guidelines[1] in TF-A forbid the use of ato*() functions in favour of strto*(). However, the TF-A libc does not provide an implementation of strto*(), making this rule impossible to satisfy. Also made small changes to fit into TF-A project. Added the source files to the libc makefile [1] https://trustedfirmware-a.readthedocs.io/en/latest/process/coding-guidelines.html#libc-functions-that-are-banned-or-to-be-used-with-caution Change-Id: I9cb581574d46de73c3d6917ebf78935fc5ac075a Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
-
Madhukar Pappireddy authored
From commit: 21571b1d140ae7bb44e94c0afba2ec61456b275b The coding guidelines[1] in TF-A forbid the use of ato*() functions in favour of strto*(). However, the TF-A libc does not provide an implementation of strto*(), making this rule impossible to satisfy. Also made small changes to fit into TF-A project. Added the source files to the libc makefile [1] https://trustedfirmware-a.readthedocs.io/en/latest/process/coding-guidelines.html#libc-functions-that-are-banned-or-to-be-used-with-caution Change-Id: I8c3b92751d1ce226c966f7c81fedd83f0846865e Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
-
Madhukar Pappireddy authored
From commit: 21571b1d140ae7bb44e94c0afba2ec61456b275b The coding guidelines[1] in TF-A forbid the use of ato*() functions in favour of strto*(). However, the TF-A libc does not provide an implementation of strto*(), making this rule impossible to satisfy. Also made small changes to fit into TF-A project. Added the source files to the libc makefile [1] https://trustedfirmware-a.readthedocs.io/en/latest/process/coding-guidelines.html#libc-functions-that-are-banned-or-to-be-used-with-caution Change-Id: Ica95bf5da722913834fe90bf3fe743aa34e01e80 Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
-
- 29 Jan, 2021 1 commit
-
-
Madhukar Pappireddy authored
For SoCs which do not implement RAS, use DSB as a barrier to synchronize pending external aborts at the entry and exit of exception handlers. This is needed to isolate the SErrors to appropriate context. However, this introduces an unintended side effect as discussed in the https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/3440 A summary of the side effect and a quick workaround is provided as part of this patch and summarized here: The explicit DSB at the entry of various exception vectors in BL31 for handling exceptions from lower ELs can inadvertently trigger an SError exception in EL3 due to pending asyncrhonouus aborts in lower ELs. This will end up being handled by serror_sp_elx in EL3 which will ultimately panic and die. The way to workaround is to update a flag to indicate if the exception truly came from EL3. This flag is allocated in the cpu_context structure. This is not a bullet proof solution to the problem at hand because we assume the instructions following "isb" that help to update the flag (lines 100-102 & 139-141) execute without causing further exceptions. Change-Id: I4d345b07d746a727459435ddd6abb37fda24a9bf Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
-
- 21 Jan, 2021 1 commit
-
-
Zelalem authored
To avoid a potential out-of-bounds access, check whether a device exists on a channel before calling the corresponding clone function. Signed-off-by: Zelalem <zelalem.aweke@arm.com> Change-Id: Ia0dd66b331d3fa8a33109a02369e1bc9ae0fdd5b
-
- 20 Jan, 2021 3 commits
-
-
Heyi Guo authored
Add macro CHECK_AND_PUT_CHAR to check buffer capacity, save one character to buffer, and then increase character counter by one in one single statement, so that 4 similar code pieces can be cleaned. Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> Change-Id: I2add6b4bd6c24ea3c0d2499a44924e3e8db0f4d1
-
Heyi Guo authored
Enable snprintf()/vsnprintf() in TF-A to print "%" character as C standard, which may be used in platform porting to print percentage information. Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> Change-Id: I9b296372a1002046eabac1df5e8eb99a27efd4a8
-
Heyi Guo authored
Enable printf() in TF-A to print "%" character as C standard, which may be used in platform porting to print percentage information. Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> Change-Id: I7af2f1d153548e426f423fce15dc48b0da56c622
-