1AMD Versal Gen 2 2================ 3 4Trusted Firmware-A implements the EL3 firmware layer for AMD Versal Gen 2. 5The platform only uses the runtime part of TF-A as AMD Versal Gen 2 already 6has a BootROM (BL1) and PMC FW (BL2). 7 8BL31 is TF-A. 9BL32 is an optional Secure Payload. 10BL33 is the non-secure world software (U-Boot, Linux etc). 11 12To build: 13```bash 14make RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal2 bl31 15``` 16 17To build TF-A for JTAG DCC console: 18```bash 19make RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal2 CONSOLE=dcc bl31 20``` 21 22To build TF-A with Errata management interface 23```bash 24make RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal2 bl31 ERRATA_ABI_SUPPORT=1 25``` 26 27To build TF-A with IPI CRC check: 28```bash 29make RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal2 bl31 IPI_CRC_CHECK=1 30``` 31 32AMD Versal Gen 2 platform specific build options 33------------------------------------------------- 34 35* `MEM_BASE`: Specifies the base address of the bl31 binary. 36* `MEM_SIZE`: Specifies the size of the memory region of the bl31 binary. 37* `BL32_MEM_BASE`: Specifies the base address of the bl32 binary. 38* `BL32_MEM_SIZE`: Specifies the size of the memory region of the bl32 binary. 39 40* `CONSOLE`: Select the console driver. Options: 41 - `pl011`, `pl011_0`: ARM pl011 UART 0 (default) 42 - `pl011_1` : ARM pl011 UART 1 43 - `dcc` : JTAG Debug Communication Channel(DCC) 44 45 46Reference DEN0028E SMC calling convention 47------------------------------------------ 48 49Allocated subranges of Function Identifier to SIP services 50------------------------------------------------------------ 51 52+-----------------------+-------------------------------------------------------+ 53| SMC Function | Identifier Service type | 54+-----------------------+-------------------------------------------------------+ 55| 0xC2000000-0xC200FFFF | Fast SMC64 SiP Service Calls as per SMCCC Section 6.1 | 56+-----------------------+-------------------------------------------------------+ 57 58IPI SMC call ranges 59------------------- 60 61+---------------------------+-----------------------------------------------------------+ 62| SMC Function Identifier | Service type | 63+---------------------------+-----------------------------------------------------------+ 64| 0xc2001000-0xc2001FFF | Fast SMC64 SiP Service call range used for AMD-Xilinx IPI | 65+---------------------------+-----------------------------------------------------------+ 66 67PM SMC call ranges 68------------------ 69 70+---------------------------+---------------------------------------------------------------------------+ 71| SMC Function Identifier | Service type | 72+---------------------------+---------------------------------------------------------------------------+ 73| 0xc2000000-0xc2000FFF | Fast SMC64 SiP Service call range used for AMD-Xilinx Platform Management | 74+---------------------------+---------------------------------------------------------------------------+ 75 76SMC function IDs for SiP Service queries 77---------------------------------------- 78 79+--------------+--------------+--------------+ 80| Service | Call UID | Revision | 81+--------------+--------------+--------------+ 82| SiP Service | 0x8200_FF01 | 0x8200_FF03 | 83+--------------+--------------+--------------+ 84 85Call UID Query – Returns a unique identifier of the service provider. 86 87Revision Query – Returns revision details of the service implementor. 88