Creating a Platform Component from XSA - 2025.2 English - UG1400

Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400)

Document ID
UG1400
Release Date
2025-11-20
Version
2025.2 English

To create a new platform component in the Vitis Unified IDE, execute the following steps.

  1. Click the File option in the Vitis Unified IDE and select New Component > Platform.
    Tip: You can also select the Create Platform Component command from the Welcome page.
  2. This opens the Create Platform Component wizard.
    • Enter a component name and component location and select Next.
    • Select Browse to locate an XSA file. You can also create a platform from an existing platform, or use the drop down menu to select the built-in XSA files. The built-in fixed XSA files only contains PS initialization. Click Next.
      Figure 1. Create Platform Component

      Note: If you select to create a platform from an existing platform, it copies the platform you specified to your current workspace.
      Note: If you want to support emulation, expand Emulation and select Browse to locate an emulation XSA file.
      Note: The input hardware design type determine the platform type you create. If the input hardware design is a fixed XSA, the system creates a platform for an embedded design. If the input hardware design is an extensible XSA, the system creates an extensible platform.
      SDTgen is a built-in tool within the Vitis Unified IDE.
      • The SDTgen tool is responsible for reading the XSA file and generating the SDT (system device tree) files.
      • For more information on SDT, refer to System Device Tree.
      • Another built-in tool, Lopper, parses the SDT and generates the corresponding BSP (Board Support Package) file.
      • To facilitate user debugging and take advantage of the SDT flow, advanced options allow you to switch to a custom version SDTgen tool. The uses of the advanced options are as follows:
        SDT Source REPO
        Input the customer version SDTgen REPO.
        Note: If you encounter issues related to the system device tree or the SDTgen tool, use the updated version of the SDTgen tool for debugging. For more information on the system device tree, refer to System Device Tree Repo.
        Board DTS
        Input the board name to obtain the corresponding board DTS file. For more information, refer to PetaLinux Tools Documentation: Reference Guide (UG1144) for the corresponding board name.
        User DTS
        Specify the user device tree file (DTSI).
    • After selecting the XSA, the tool reads the XSA and identifies the available processors and operating system domains. Specify the Operating system, and the Processor for the platform, and click Next to proceed to the Summary page.



      Note: When you enable the Generate Boot Artifacts and Generate PMU Firmware options:
      • The Vitis tool automatically generates both the FSBL (First Stage Boot Loader) and PMU (Platform Management Unit) firmware components for your platform if the domain is Standalone.
      • The Generate Boot Artifacts option is not available for Versal adaptive SoC. Versal adaptive SoC only require the PDI file.
      Note: When you enable the Generate Device Tree Blob (DTB) option, the system automatically generates the Device Tree Blob for your platform. This only applies if the domain is Linux.
      Note: DT Overlay is only for extensible platform or fixed XSA generated by V++ tool to generate device tree blob overlay.

      For option settings, refer to the following table.

      Table 1. Options Settings for Different Device Families
      Device Family Generate Boot Artifacts PMU DTB DTB Overlay
      Zynq Enable the FSBL for device initialization. No option Only Linux systems require DTB Only Linux systems require the DTB overlay when loading certain devices after the system is up and running.
      ZynqMP Enable the FSBL for device initialization. Standalone domain does not require the PMU, but it is essential for Linux systems to manage high-security functions. Only Linux systems require DTB Only Linux systems require the DTB overlay when loading certain devices after the system is up and running.
      Versal No option No option Only Linux systems require DTB Only Linux systems require the DTB overlay when loading certain devices after the system is up and running.
    • The Summary page reflects the choices you have made on the prior pages. Review the summary and select Finish to create the Platform component, or select Back to return to earlier pages and change your selections.

After you create the Platform component, the vitis-comp.json file for the component opens in the central editor window.

Figure 2. Domain - linux

Depending on the OS you selected for your platform, and possibly the processor, the contents of the platform vitis-comp.json can vary.

  • For the Linux Operating System: specify the Bif file, Boot Component Directory, SD Card Directory and as well as the Qemu data. The Qemu Args file are auto-populated.
  • For standalone (baremetal) OS: The system does not require special operations.
  • For FreeRTOS: The system does not require special operations.

After confirming the settings, you can build the Platform component by selecting it in the Flow Navigator and selecting the Build command. After compilation, the Vitis tool populates the platform and its related software and hardware components in the Output folder of the Platform component.

Note the following compiler support for third-party toolchains:

  • ARMClang support for Versal A72 and R5 processors
  • ARMCC support for the Zynq A9 processor
  • IAR support for the Zynq MP R5 processor and Zynq A9 processor
Important: The Vitis Unified IDE installation does not include these compilers. Therefore, you need to install the compiler yourself and add it to the $PATH environment variable. The following is an example of selecting the 'ARMCLANG' compiler when creating a platform for the vck190.
Figure 3. OS and Processor Summary

If using the CLI flow, the command looks like the following:

platform = client.create_platform_component(name = "platform",hw_design = "vck190",os = "standalone",cpu = "psv_cortexa72_0",domain_name = "standalone_psv_cortexa72_0",generate_dtb = False,advanced_options = advanced_options,compiler = "armclang")
Tip: Open the workspace journal to see the respective CLI commands executed in the Vitis Unified IDE.
Note: The flow is the same for all compilers.