index.rst 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. TC Total Compute Platform
  2. ==========================
  3. Some of the features of TC platform referenced in TF-A include:
  4. - A `System Control Processor <https://github.com/ARM-software/SCP-firmware>`_
  5. to abstract power and system management tasks away from application
  6. processors. The RAM firmware for SCP is included in the TF-A FIP and is
  7. loaded by AP BL2 from FIP in flash to SRAM for copying by SCP (SCP has access
  8. to AP SRAM).
  9. - GICv4
  10. - Trusted Board Boot
  11. - SCMI
  12. - MHUv2
  13. The TF-A build is specified by the option `TARGET_PLATFORM` which represents
  14. the Total Compute platform number. The platforms support the CPU variants
  15. listed as below:
  16. - TC0 has support for Cortex A510, Cortex A710 and Cortex X2. (Note TC0 is now deprecated)
  17. - TC1 has support for Cortex A510, Cortex A715 and Cortex X3. (Note TC1 is now deprecated)
  18. - TC2 has support for Cortex A520, Cortex A720 and Cortex x4. (Note TC2 is now deprecated)
  19. - TC3 has support for Cortex A520, Cortex A725 and Cortex x925.
  20. Boot Sequence
  21. -------------
  22. The execution begins from SCP_BL1. SCP_BL1 powers up the AP which starts
  23. executing AP_BL1 and then executes AP_BL2 which loads the SCP_BL2 from
  24. FIP to SRAM. The SCP has access to AP SRAM. The address and size of SCP_BL2
  25. is communicated to SCP using SDS. SCP copies SCP_BL2 from SRAM to its own
  26. RAM and starts executing it. The AP then continues executing the rest of TF-A
  27. stages including BL31 runtime stage and hands off executing to
  28. Non-secure world (u-boot).
  29. Build Procedure (TF-A only)
  30. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  31. - Obtain `Arm toolchain`_ and set the CROSS_COMPILE environment variable to
  32. point to the toolchain folder.
  33. - Build TF-A:
  34. .. code:: shell
  35. make PLAT=tc BL33=<path_to_uboot.bin> \
  36. SCP_BL2=<path_to_scp_ramfw.bin> TARGET_PLATFORM={3} all fip
  37. Enable TBBR by adding the following options to the make command:
  38. .. code:: shell
  39. MBEDTLS_DIR=<path_to_mbedtls_directory> \
  40. TRUSTED_BOARD_BOOT=1 \
  41. GENERATE_COT=1 \
  42. ARM_ROTPK_LOCATION=devel_rsa \
  43. ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem
  44. --------------
  45. *Copyright (c) 2020-2023, Arm Limited. All rights reserved.*
  46. .. _Arm Toolchain: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads