arm-trusted-firmware/lib/cpus/aarch64
Moritz Fischer 31a3da83f8 refactor(cpus): convert Neoverse V2 to framework
For V2, 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 at reset or runtime
  - The epilogue with the workaround_<type>_end
  - The checker function with the check_erratum_<type> to check whether
    the erratum applies on the revision of the CPU.

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

Testing was conducted by:

 * 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  CTX_INCLUDE_AARCH32_REGS=0 \
   HW_ASSISTED_COHERENCY=1 USE_COHERENT_MEM=0 \
   BL33=./../tf-a-tests/build/fvp/debug/tftf.bin \
   ERRATA_V2_2801372 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.

Change-Id: Ic968844d6aabea3867189d747769ced8faa87e56
Signed-off-by: Moritz Fischer <moritzf@google.com>
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
2023-08-10 15:49:53 -05:00
..
a64fx.S feat(cpus): add a64fx cpu to tf-a 2022-07-07 07:17:25 +09:00
aem_generic.S chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
cortex_a35.S refactor(cpus): convert the Cortex-A35 to use the cpu helpers 2023-08-04 17:23:18 -05: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(cpus): revert erroneous use of override_vector_table macro in Cortex-A73 2023-08-07 18:22:21 -05:00
cortex_a75.S chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
cortex_a75_pubsub.c chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01: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 refactor(cpus): convert the Cortex-A77 to use the bit set helpers 2023-08-04 11:32:44 -05: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(cpus): convert the Cortex-A78AE to use cpu helpers 2023-08-04 11:52:06 -05: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 refactor(cpus): convert the Cortex-A710 to use cpu helpers 2023-08-07 19:36:56 +01: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 refactor(cpus): convert the Cortex-X3 to use the cpu helpers 2023-08-04 17:23:18 -05: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 chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
denver.S refactor(cpus): convert the Denver cpu to use the errata framework 2023-08-04 11:50:27 -05: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 chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
neoverse_n2.S fix(cpus): workaround for Neoverse N2 erratum 2779511 2023-08-03 22:42:31 +02: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 use CPU helpers 2023-08-03 23:02:39 +02:00
neoverse_v2.S refactor(cpus): convert Neoverse V2 to framework 2023-08-10 15:49:53 -05: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 chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
wa_cve_2017_5715_mmu.S chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
wa_cve_2022_23960_bhb.S chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
wa_cve_2022_23960_bhb_vector.S fix(security): workaround for CVE-2022-23960 2022-03-10 23:57:14 -06:00