14efdc488SMichal SimekXilinx Versal NET 24efdc488SMichal Simek================= 34efdc488SMichal Simek 44efdc488SMichal SimekTrusted Firmware-A implements the EL3 firmware layer for Xilinx Versal NET. 54efdc488SMichal SimekThe platform only uses the runtime part of TF-A as Xilinx Versal NET already 64efdc488SMichal Simekhas a BootROM (BL1) and PMC FW (BL2). 74efdc488SMichal Simek 84efdc488SMichal SimekBL31 is TF-A. 94efdc488SMichal SimekBL32 is an optional Secure Payload. 104efdc488SMichal SimekBL33 is the non-secure world software (U-Boot, Linux etc). 114efdc488SMichal Simek 124efdc488SMichal SimekTo build: 134efdc488SMichal Simek```bash 144efdc488SMichal Simekmake RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal_net bl31 154efdc488SMichal Simek``` 164efdc488SMichal Simek 1741b5a23cSPrasad KummariTo build bl32 TSP you have to rebuild bl31 too 1841b5a23cSPrasad Kummari```bash 1941b5a23cSPrasad Kummarimake CROSS_COMPILE=aarch64-none-elf- PLAT=versal_net SPD=tspd RESET_TO_BL31=1 bl31 bl32 2041b5a23cSPrasad Kummari``` 2141b5a23cSPrasad Kummari 2230e8bc36SAkshay BelsareTo build TF-A for JTAG DCC console: 2330e8bc36SAkshay Belsare```bash 2430e8bc36SAkshay Belsaremake RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal_net VERSAL_NET_CONSOLE=dcc bl31 2530e8bc36SAkshay Belsare``` 2630e8bc36SAkshay Belsare 27*da2c9e58SAmit NagalTo build TF-A with SDEI_SUPPORT: 28*da2c9e58SAmit Nagal```bash 29*da2c9e58SAmit Nagalmake RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal_net SDEI_SUPPORT=1 bl31 30*da2c9e58SAmit Nagal``` 31*da2c9e58SAmit Nagal 324efdc488SMichal SimekXilinx Versal NET platform specific build options 334efdc488SMichal Simek------------------------------------------------- 344efdc488SMichal Simek 354efdc488SMichal Simek* `VERSAL_NET_ATF_MEM_BASE`: Specifies the base address of the bl31 binary. 364efdc488SMichal Simek* `VERSAL_NET_ATF_MEM_SIZE`: Specifies the size of the memory region of the bl31 binary. 374efdc488SMichal Simek* `VERSAL_NET_BL32_MEM_BASE`: Specifies the base address of the bl32 binary. 384efdc488SMichal Simek* `VERSAL_NET_BL32_MEM_SIZE`: Specifies the size of the memory region of the bl32 binary. 394efdc488SMichal Simek 404efdc488SMichal Simek* `VERSAL_NET_CONSOLE`: Select the console driver. Options: 4130e8bc36SAkshay Belsare - `pl011`, `pl011_0`: ARM pl011 UART 0 (default) 424efdc488SMichal Simek - `pl011_1` : ARM pl011 UART 1 4330e8bc36SAkshay Belsare - `dcc` : JTAG Debug Communication Channel(DCC) 444efdc488SMichal Simek 454efdc488SMichal Simek* `TFA_NO_PM` : Platform Management support. 464efdc488SMichal Simek - 0 : Enable Platform Management (Default) 474efdc488SMichal Simek - 1 : Disable Platform Management 48ade92a64SJay Buddhabhatti 49ade92a64SJay Buddhabhatti* `CPU_PWRDWN_SGI`: Select the SGI for triggering CPU power down request to 50ade92a64SJay Buddhabhatti secondary cores on receiving power down callback from 51ade92a64SJay Buddhabhatti firmware. Options: 52ade92a64SJay Buddhabhatti 53ade92a64SJay Buddhabhatti - `0` : SGI 0 54ade92a64SJay Buddhabhatti - `1` : SGI 1 55ade92a64SJay Buddhabhatti - `2` : SGI 2 56ade92a64SJay Buddhabhatti - `3` : SGI 3 57ade92a64SJay Buddhabhatti - `4` : SGI 4 58ade92a64SJay Buddhabhatti - `5` : SGI 5 59ade92a64SJay Buddhabhatti - `6` : SGI 6 (Default) 60ade92a64SJay Buddhabhatti - `7` : SGI 7 6159621c71SPrasad Kummari 6259621c71SPrasad KummariReference DEN0028E SMC calling convention 6359621c71SPrasad Kummari------------------------------------------ 6459621c71SPrasad Kummari 6559621c71SPrasad KummariAllocated subranges of Function Identifier to SIP services 6659621c71SPrasad Kummari----------------------------------------------------------- 6759621c71SPrasad Kummari 6859621c71SPrasad Kummari+-----------------------+-------------------------------------------------------+ 6959621c71SPrasad Kummari| SMC Function | Identifier Service type | 7059621c71SPrasad Kummari+-----------------------+------------------------------+------------------------+ 7159621c71SPrasad Kummari| 0xC2000000-0xC200FFFF | Fast SMC64 SiP Service Calls as per SMCCC Section 6.1 | 7259621c71SPrasad Kummari+-----------------------+-------------------------------------------------------+ 7359621c71SPrasad Kummari 7459621c71SPrasad KummariIPI SMC call ranges 7559621c71SPrasad Kummari------------------------------------------------------------- 7659621c71SPrasad Kummari 7759621c71SPrasad Kummari+---------------------------+-----------------------------------------------------------+ 7859621c71SPrasad Kummari| SMC Function Identifier | Service type | 7959621c71SPrasad Kummari+---------------------------+-----------------------------------------------------------+ 8059621c71SPrasad Kummari| 0xc2001000-0xc2001FFF | Fast SMC64 SiP Service call range used for AMD-Xilinx IPI | 8159621c71SPrasad Kummari+---------------------------+-----------------------------------------------------------+ 8259621c71SPrasad Kummari 83e1890297SJay BuddhabhattiPM SMC call ranges for SiP SVC version 0.1 8459621c71SPrasad Kummari-------------------------------------------------------- 8559621c71SPrasad Kummari 8659621c71SPrasad Kummari+---------------------------+---------------------------------------------------------------------------+ 8759621c71SPrasad Kummari| SMC Function Identifier | Service type | 8859621c71SPrasad Kummari+---------------------------+---------------------------------------------------------------------------+ 8959621c71SPrasad Kummari| 0xc2000000-0xc2000FFF | Fast SMC64 SiP Service call range used for AMD-Xilinx Platform Management | 9059621c71SPrasad Kummari+---------------------------+---------------------------------------------------------------------------+ 9159621c71SPrasad Kummari 92e1890297SJay BuddhabhattiPM SMC call ranges for SiP SVC version 0.2 93e1890297SJay Buddhabhatti-------------------------------------------------------- 94e1890297SJay Buddhabhatti 95e1890297SJay Buddhabhatti+---------------------------+---------------------------------------------------------------------------+ 96e1890297SJay Buddhabhatti| SMC Function Identifier | Service type | 97e1890297SJay Buddhabhatti+---------------------------+---------------------------------------------------------------------------+ 98e1890297SJay Buddhabhatti| 0xc2000FFF | Fast SMC64 SiP Service call used for pass-through of AMD-Xilinx Platform | 99e1890297SJay Buddhabhatti| | Management APIs to firmware | 100e1890297SJay Buddhabhatti+---------------------------+---------------------------------------------------------------------------+ 101e1890297SJay Buddhabhatti| 0xc2000A00-0xc2000AFF | Fast SMC64 SiP Service call range used for AMD-Xilinx Platform Management | 102e1890297SJay Buddhabhatti| | specific TF-A APIs | 103e1890297SJay Buddhabhatti+---------------------------+---------------------------------------------------------------------------+ 104e1890297SJay Buddhabhatti 10559621c71SPrasad KummariSMC function IDs for SiP Service queries 10659621c71SPrasad Kummari---------------------------------------------- 10759621c71SPrasad Kummari 10859621c71SPrasad Kummari+--------------+--------------+--------------+ 10959621c71SPrasad Kummari| Service | Call UID | Revision | 11059621c71SPrasad Kummari+--------------+--------------+--------------+ 11159621c71SPrasad Kummari| SiP Service | 0x8200_FF01 | 0x8200_FF03 | 11259621c71SPrasad Kummari+--------------+--------------+--------------+ 11359621c71SPrasad Kummari 11459621c71SPrasad KummariCall UID Query – Returns a unique identifier of the service provider. 11559621c71SPrasad Kummari 11659621c71SPrasad KummariRevision Query – Returns revision details of the service implementor. 117