xilinx-versal.rst 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. Xilinx Versal
  2. =============
  3. Trusted Firmware-A implements the EL3 firmware layer for Xilinx Versal.
  4. The platform only uses the runtime part of TF-A as Xilinx Versal already has a
  5. BootROM (BL1) and PMC FW (BL2).
  6. BL31 is TF-A.
  7. BL32 is an optional Secure Payload.
  8. BL33 is the non-secure world software (U-Boot, Linux etc).
  9. To build:
  10. ```bash
  11. make RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal bl31
  12. ```
  13. To build ATF for different platform (supported are "silicon"(default) and "versal_virt")
  14. ```bash
  15. make RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal VERSAL_PLATFORM=versal_virt bl31
  16. ```
  17. To build TF-A for JTAG DCC console
  18. ```bash
  19. make RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal bl31 VERSAL_CONSOLE=dcc
  20. ```
  21. To build TF-A with Straight-Line Speculation(SLS)
  22. ```bash
  23. make RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal bl31 HARDEN_SLS_ALL=1
  24. ```
  25. Xilinx Versal platform specific build options
  26. ---------------------------------------------
  27. * `VERSAL_ATF_MEM_BASE`: Specifies the base address of the bl31 binary.
  28. * `VERSAL_ATF_MEM_SIZE`: Specifies the size of the memory region of the bl31 binary.
  29. * `VERSAL_BL32_MEM_BASE`: Specifies the base address of the bl32 binary.
  30. * `VERSAL_BL32_MEM_SIZE`: Specifies the size of the memory region of the bl32 binary.
  31. * `VERSAL_CONSOLE`: Select the console driver. Options:
  32. - `pl011`, `pl011_0`: ARM pl011 UART 0
  33. - `pl011_1` : ARM pl011 UART 1
  34. * `VERSAL_PLATFORM`: Select the platform. Options:
  35. - `versal_virt` : Versal Virtual platform
  36. - `spp_itr6` : SPP ITR6
  37. - `emu_itr6` : EMU ITR6
  38. # PLM->TF-A Parameter Passing
  39. ------------------------------
  40. The PLM populates a data structure with image information for the TF-A. The TF-A
  41. uses that data to hand off to the loaded images. The address of the handoff
  42. data structure is passed in the ```PMC_GLOBAL_GLOB_GEN_STORAGE4``` register.
  43. The register is free to be used by other software once the TF-A is bringing up
  44. further firmware images.