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 274efdc488SMichal SimekXilinx Versal NET platform specific build options 284efdc488SMichal Simek------------------------------------------------- 294efdc488SMichal Simek 304efdc488SMichal Simek* `VERSAL_NET_ATF_MEM_BASE`: Specifies the base address of the bl31 binary. 314efdc488SMichal Simek* `VERSAL_NET_ATF_MEM_SIZE`: Specifies the size of the memory region of the bl31 binary. 324efdc488SMichal Simek* `VERSAL_NET_BL32_MEM_BASE`: Specifies the base address of the bl32 binary. 334efdc488SMichal Simek* `VERSAL_NET_BL32_MEM_SIZE`: Specifies the size of the memory region of the bl32 binary. 344efdc488SMichal Simek 354efdc488SMichal Simek* `VERSAL_NET_CONSOLE`: Select the console driver. Options: 3630e8bc36SAkshay Belsare - `pl011`, `pl011_0`: ARM pl011 UART 0 (default) 374efdc488SMichal Simek - `pl011_1` : ARM pl011 UART 1 3830e8bc36SAkshay Belsare - `dcc` : JTAG Debug Communication Channel(DCC) 394efdc488SMichal Simek 404efdc488SMichal Simek* `TFA_NO_PM` : Platform Management support. 414efdc488SMichal Simek - 0 : Enable Platform Management (Default) 424efdc488SMichal Simek - 1 : Disable Platform Management 43ade92a64SJay Buddhabhatti 44ade92a64SJay Buddhabhatti* `CPU_PWRDWN_SGI`: Select the SGI for triggering CPU power down request to 45ade92a64SJay Buddhabhatti secondary cores on receiving power down callback from 46ade92a64SJay Buddhabhatti firmware. Options: 47ade92a64SJay Buddhabhatti 48ade92a64SJay Buddhabhatti - `0` : SGI 0 49ade92a64SJay Buddhabhatti - `1` : SGI 1 50ade92a64SJay Buddhabhatti - `2` : SGI 2 51ade92a64SJay Buddhabhatti - `3` : SGI 3 52ade92a64SJay Buddhabhatti - `4` : SGI 4 53ade92a64SJay Buddhabhatti - `5` : SGI 5 54ade92a64SJay Buddhabhatti - `6` : SGI 6 (Default) 55ade92a64SJay Buddhabhatti - `7` : SGI 7 5659621c71SPrasad Kummari 5759621c71SPrasad KummariReference DEN0028E SMC calling convention 5859621c71SPrasad Kummari------------------------------------------ 5959621c71SPrasad Kummari 6059621c71SPrasad KummariAllocated subranges of Function Identifier to SIP services 6159621c71SPrasad Kummari----------------------------------------------------------- 6259621c71SPrasad Kummari 6359621c71SPrasad Kummari+-----------------------+-------------------------------------------------------+ 6459621c71SPrasad Kummari| SMC Function | Identifier Service type | 6559621c71SPrasad Kummari+-----------------------+------------------------------+------------------------+ 6659621c71SPrasad Kummari| 0xC2000000-0xC200FFFF | Fast SMC64 SiP Service Calls as per SMCCC Section 6.1 | 6759621c71SPrasad Kummari+-----------------------+-------------------------------------------------------+ 6859621c71SPrasad Kummari 6959621c71SPrasad KummariIPI SMC call ranges 7059621c71SPrasad Kummari------------------------------------------------------------- 7159621c71SPrasad Kummari 7259621c71SPrasad Kummari+---------------------------+-----------------------------------------------------------+ 7359621c71SPrasad Kummari| SMC Function Identifier | Service type | 7459621c71SPrasad Kummari+---------------------------+-----------------------------------------------------------+ 7559621c71SPrasad Kummari| 0xc2001000-0xc2001FFF | Fast SMC64 SiP Service call range used for AMD-Xilinx IPI | 7659621c71SPrasad Kummari+---------------------------+-----------------------------------------------------------+ 7759621c71SPrasad Kummari 78*e1890297SJay BuddhabhattiPM SMC call ranges for SiP SVC version 0.1 7959621c71SPrasad Kummari-------------------------------------------------------- 8059621c71SPrasad Kummari 8159621c71SPrasad Kummari+---------------------------+---------------------------------------------------------------------------+ 8259621c71SPrasad Kummari| SMC Function Identifier | Service type | 8359621c71SPrasad Kummari+---------------------------+---------------------------------------------------------------------------+ 8459621c71SPrasad Kummari| 0xc2000000-0xc2000FFF | Fast SMC64 SiP Service call range used for AMD-Xilinx Platform Management | 8559621c71SPrasad Kummari+---------------------------+---------------------------------------------------------------------------+ 8659621c71SPrasad Kummari 87*e1890297SJay BuddhabhattiPM SMC call ranges for SiP SVC version 0.2 88*e1890297SJay Buddhabhatti-------------------------------------------------------- 89*e1890297SJay Buddhabhatti 90*e1890297SJay Buddhabhatti+---------------------------+---------------------------------------------------------------------------+ 91*e1890297SJay Buddhabhatti| SMC Function Identifier | Service type | 92*e1890297SJay Buddhabhatti+---------------------------+---------------------------------------------------------------------------+ 93*e1890297SJay Buddhabhatti| 0xc2000FFF | Fast SMC64 SiP Service call used for pass-through of AMD-Xilinx Platform | 94*e1890297SJay Buddhabhatti| | Management APIs to firmware | 95*e1890297SJay Buddhabhatti+---------------------------+---------------------------------------------------------------------------+ 96*e1890297SJay Buddhabhatti| 0xc2000A00-0xc2000AFF | Fast SMC64 SiP Service call range used for AMD-Xilinx Platform Management | 97*e1890297SJay Buddhabhatti| | specific TF-A APIs | 98*e1890297SJay Buddhabhatti+---------------------------+---------------------------------------------------------------------------+ 99*e1890297SJay Buddhabhatti 10059621c71SPrasad KummariSMC function IDs for SiP Service queries 10159621c71SPrasad Kummari---------------------------------------------- 10259621c71SPrasad Kummari 10359621c71SPrasad Kummari+--------------+--------------+--------------+ 10459621c71SPrasad Kummari| Service | Call UID | Revision | 10559621c71SPrasad Kummari+--------------+--------------+--------------+ 10659621c71SPrasad Kummari| SiP Service | 0x8200_FF01 | 0x8200_FF03 | 10759621c71SPrasad Kummari+--------------+--------------+--------------+ 10859621c71SPrasad Kummari 10959621c71SPrasad KummariCall UID Query – Returns a unique identifier of the service provider. 11059621c71SPrasad Kummari 11159621c71SPrasad KummariRevision Query – Returns revision details of the service implementor. 112