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