arm-trusted-firmware/lib/cpus/aarch64
Arvind Ram Prakash 7f798aaa3e refactor(cpus): convert Neoverse V1 to framework
This involves replacing:
 * the reset_func with the standard cpu_reset_func_{start,end} to apply
   errata automatically
 * the <cpu>_errata_report with the errata_report_shim to report errata
   automatically
...and for each erratum:
 * the prologue with the workaround_<type>_start to do the checks and
   framework registration automatically
 * the epilogue with the workaround_<type>_end
 * the checker function with the check_erratum_<type> to make it more
   descriptive

It is important to note that the errata workaround sequences remain
unchanged and preserve their git blame.

Testing was conducted by:

 * Building for release with all errata flags enabled and running script
   in change 19136 to compare output of objdump for each errata. Only
   able to verify the check functions this way, rest had to manually
   verified

 * Manual comparison of disassembly of converted functions with non-
   converted functions

   aarch64-none-elf-objdump -D <trusted-firmware-a with conversion>/build/fvp/release/bl31/bl31.elf
     vs
   aarch64-none-elf-objdump -D <trusted-firmware-a clean repo>/build/fvp/release/bl31/bl31.elf

 * Build for release with all errata flags enabled and run default tftf
   tests

CROSS_COMPILE=aarch64-none-elf- make PLAT=fvp DEBUG=0 \
CTX_INCLUDE_AARCH32_REGS=0 HW_ASSISTED_COHERENCY=1 USE_COHERENT_MEM=0 \
BL33=./../tf-a-tests/build/fvp/release/tftf.bin \
ERRATA_V1_1618635=1 ERRATA_V1_1774420=1 ERRATA_V1_1791573=1 \
ERRATA_V1_1852267=1 ERRATA_V1_1925756=1 ERRATA_V1_1940577=1 \
ERRATA_V1_1966096=1 ERRATA_V1_2108267=1 ERRATA_V1_2139242=1 \
ERRATA_V1_2216392=1 ERRATA_V1_2294912=1 ERRATA_V1_2372203=1 \
ERRATA_V1_2743093=1 ERRATA_V1_2743233=1 ERRATA_V1_2779461=1 \
WORKAROUND_CVE_2022_23960=1 ERRATA_ABI_SUPPORT=1 all fip

 * Build for debug with all errata enabled and step through ArmDS
   at reset to ensure all functions are entered.

Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
Change-Id: Ic5697b7cd2a508dee9978d89136fbe168f34626c
2023-08-03 23:02:33 +02:00
..
a64fx.S feat(cpus): add a64fx cpu to tf-a 2022-07-07 07:17:25 +09:00
aem_generic.S FVP_Base_AEMv8A platform: Fix cache maintenance operations 2019-08-16 11:30:37 +00:00
cortex_a35.S Cortex-A35: Implement workaround for errata 855472 2019-04-17 13:46:43 +01:00
cortex_a53.S refactor(cpus): rename errata_report.h to errata.h 2023-05-30 09:31:15 +01:00
cortex_a55.S refactor(cpus): convert the Cortex-A55 to use cpu helpers 2023-08-03 14:10:28 -05:00
cortex_a57.S fix(security): apply SMCCC_ARCH_WORKAROUND_3 to A73/A75/A72/A57 2022-03-18 01:01:34 +02:00
cortex_a65.S Introducing support for Cortex-A65 2019-10-02 18:12:28 +02:00
cortex_a65ae.S refactor(cpus): convert the Cortex-A65AE to use the errata framework 2023-07-27 09:35:12 +01:00
cortex_a72.S refactor(cpus): convert Cortex-A72 to use cpu helpers 2023-07-31 15:28:38 +01:00
cortex_a73.S fix(security): apply SMCCC_ARCH_WORKAROUND_3 to A73/A75/A72/A57 2022-03-18 01:01:34 +02:00
cortex_a75.S refactor(cpus): convert the Cortex-A75 to use cpu helpers 2023-06-27 17:14:57 -04:00
cortex_a75_pubsub.c Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
cortex_a76.S refactor(cpus): convert the Cortex-A76 to use cpu helpers 2023-08-03 14:10:28 -05:00
cortex_a76ae.S refactor(cpus): convert the Cortex-A76AE to use cpu helpers 2023-08-03 14:10:28 -05:00
cortex_a77.S fix(cpus): workaround for Cortex-A77 erratum 2743100 2022-11-10 15:51:16 +00:00
cortex_a78.S refactor(cpus): convert the Cortex-A78 to use cpu helpers 2023-08-03 14:10:28 -05:00
cortex_a78_ae.S refactor(amu): unify ENABLE_AMU and ENABLE_FEAT_AMUv1 2023-03-27 19:36:00 +01:00
cortex_a78c.S refactor(cpus): convert the Cortex-A78C to use cpu helpers 2023-08-03 14:09:00 -05:00
cortex_a510.S refactor(cpus): convert the Cortex-A510 to use cpu helpers 2023-07-27 09:35:12 +01:00
cortex_a520.S refactor(cpus): use cpu errata wrappers for aarch64 hunter based cpus 2023-07-28 09:16:59 -05:00
cortex_a710.S fix(cpus): workaround for Cortex-A710 erratum 2282622 2023-01-09 23:17:48 -06:00
cortex_a715.S refactor(cpus): convert Cortex-A715 to the errata framework 2023-06-19 14:41:59 +01:00
cortex_a720.S refactor(cpus): use cpu errata wrappers for aarch64 hunter based cpus 2023-07-28 09:16:59 -05:00
cortex_blackhawk.S refactor(cpus): use cpu errata wrappers for aarch64 hunter based cpus 2023-07-28 09:16:59 -05:00
cortex_chaberton.S refactor(cpus): use cpu errata wrappers for aarch64 hunter based cpus 2023-07-28 09:16:59 -05:00
cortex_x1.S refactor(cpus): convert the Cortex-X1 to use cpu helpers 2023-08-03 14:09:00 -05:00
cortex_x2.S refactor(cpus): convert the Cortex-x2 to use cpu helpers 2023-07-27 09:35:12 +01:00
cortex_x3.S fix(cpus): workaround for Cortex-X3 erratum 2615812 2022-11-17 09:41:40 +00:00
cortex_x4.S refactor(cpus): use cpu errata wrappers for aarch64 hunter based cpus 2023-07-28 09:16:59 -05:00
cpu_helpers.S refactor(cpus): convert print_errata_status to C 2023-05-30 09:31:15 +01:00
cpuamu.c Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
cpuamu_helpers.S Add support for Branch Target Identification 2019-05-24 14:44:45 +01:00
denver.S fix(cpus/denver): use CPU_NO_EXTRA3_FUNC for all variants 2022-05-24 15:32:33 +01:00
dsu_helpers.S feat(cpus): conform DSU errata to errata framework PCS 2023-06-08 15:34:53 -04:00
generic.S arm_fpga: Add support for unknown MPIDs 2020-09-25 15:45:50 +01:00
neoverse_e1.S refactor(cpus): convert Neoverse-E1 to framework 2023-07-18 10:47:57 -05:00
neoverse_hermes.S feat(cpus): add support for hermes cpu 2023-06-27 10:49:38 -05:00
neoverse_n1.S refactor(cpus): convert Neoverse-N1 to use helpers 2023-07-26 09:39:48 -05:00
neoverse_n1_pubsub.c Rename Cortex-Ares to Neoverse N1 2019-02-19 13:50:07 +00:00
neoverse_n2.S refactor(amu): unify ENABLE_AMU and ENABLE_FEAT_AMUv1 2023-03-27 19:36:00 +01:00
neoverse_n_common.S Add support for Neoverse-N2 CPUs. 2020-11-30 19:12:56 +00:00
neoverse_poseidon.S fix(security): workaround for CVE-2022-23960 2022-05-11 19:05:48 +02:00
neoverse_v1.S refactor(cpus): convert Neoverse V1 to framework 2023-08-03 23:02:33 +02:00
neoverse_v2.S fix(cpus): workaround for Neoverse V2 erratum 2801372 2023-07-21 16:52:36 +02:00
qemu_max.S refactor(cpus): convert QEMU Max to use the errata framework 2023-06-27 15:41:56 +01:00
rainier.S refactor(cpus): convert Rainier to use errata framework 2023-06-27 15:42:10 +01:00
wa_cve_2017_5715_bpiall.S fix(security): apply SMCCC_ARCH_WORKAROUND_3 to A73/A75/A72/A57 2022-03-18 01:01:34 +02:00
wa_cve_2017_5715_mmu.S fix(security): apply SMCCC_ARCH_WORKAROUND_3 to A73/A75/A72/A57 2022-03-18 01:01:34 +02:00
wa_cve_2022_23960_bhb.S fix(security): optimisations for CVE-2022-23960 2022-10-26 16:45:12 -05:00
wa_cve_2022_23960_bhb_vector.S fix(security): workaround for CVE-2022-23960 2022-03-10 23:57:14 -06:00