platforminfo Utility

The platforminfo command line utility reports platform meta-data including information on interface, clock, valid SLRs and allocated resources, and memory in a structured format. This information can be referenced when allocating kernels to SLRs or memory resources for instance.

The following command options are available to use with platforminfo:

Table 1. platforminfo Commands
Option Description
-h [ --help ] Print help message and exit.
-k [ --keys ] Get keys for a given platform. Returns a list of JSON paths.
-l [ --list ] List platforms. Searches the user repo paths $PLATFORM_REPO_PATHS and then the install locations to find .xpfm files.
-e [ --extended ] List platforms with extended information. Use with '--list'.
-d [ --hw ] <arg> Hardware platform definition (*.dsa) on which to operate. The value must be a full path, including file name and .dsa extension.
-s [ --sw ] <arg> Software platform definition (*.spfm) on which to operate. The value must be a full path, including file name and .spfm extension.
-p [ --platform ] <arg> Xilinx® platform definition (*.xpfm) on which to operate. The value for --platform can be a full path including file name and .xpfm extension, as shown in example 1 below. If supplying a file name and .xpfm extension without a path, this utility will search only the current working directory. You can also specify just the base name for the platform. When the value is a base name, this utility will search the $PLATFORM_REPO_PATHS, and the install locations, to find a corresponding .xpfm file, as shown in example 2 below.
Example 1: --platform /opt/xilinx/platforms/xilinx_u200_xdma_201830_1.xpfm

Example 2: --platform xilinx_u200_xdma_201830_1
-o [ --output ] <arg> Specify an output file to write the results to. By default the output is returned to the terminal (stdout).
-j [ --json ] <arg> Specify JSON format for the generated output. When used with no value, the platforminfo utility prints the entire platform in JSON format. This option also accepts an argument that specifies a JSON path, as returned by the -k option. The JSON path, when valid, is used to fetch a JSON subtree, list, or value.
Example 1: 
platforminfo --json="hardwarePlatform" --platform <platform base name>

Example 2: Specify the index when referring to an item in a list.
platforminfo --json="hardwarePlatform.devices[0].name" --platform <platform base name>

Example 3: When using the short option form (-j), the value must follow immediately.
platforminfo -j"hardwarePlatform.systemClocks[]" -p <platform base name>
-v [ --verbose ] Specify more detailed information output. The default behavior is to produce a human-readable report containing the most important characteristics of the specified platform.
Note: Except when using the --help or --list options, a platform must be specified. You can specify the platform using the --platform option, or using either --hw, --sw. You can also simply insert the platform name or full path into the command line positionally.

To understand the generated report, condensed output logs, based on the following command are reviewed. Note that the report is broken down into specific sections for better understandability.

platforminfo -p $PLATFORM_REPO_PATHS/xilinx_u200_xdma_201830_1.xpfm
TIP: See Platforminfo for xilinx_zcu104_base_202010_1 for an example of embedded processor platforms.

Basic Platform Information

Platform information and high-level description are reported.

Platform:      xdma
File:          /opt/xilinx/platforms/xilinx_u200_xdma_201830_1/
			   xilinx_u200_xdma_201830_1.xpfm
Description:   This platform targets the Alveo U200 Data Center Accelerator 
			   Card. This high-performance acceleration platform features 
			   up to four channels of DDR4-2400 SDRAM which are 
			   instantiated as required by the user kernels for high fabric 
			   resource availability, and Xilinx DMA Subsystem for PCI 
			   Express with PCIe Gen3 x16 connectivity.
Platform Type: Vitis

Hardware Platform Information

General information on the hardware platform is reported. For the Software Emulation and Hardware Emulation field, a "1" indicates this platform is suitable for these configurations. The Maximum Number of Compute Units field gives the maximum number of compute units allowable in this platform.

Vendor:                           xilinx
Board:                            U200 (xdma)
Name:                             xdma
Version:                          201830.1
Generated Version:                2018.3
Software Emulation:               1
Hardware Emulation:               1
FPGA Family:                      virtexuplus
FPGA Device:                      xcu200
Board Vendor:                     xilinx.com
Board Name:                       xilinx.com:au200:1.0
Board Part:                       xcu200-fsgd2104-2-e
Maximum Number of Compute Units:  60

Interface Information

The following shows the reported PCIe interface information.

  Interface Name: PCIe
  Interface Type: gen3x16
  PCIe Vendor Id:    0x10EE
  PCIe Device Id:    0x5000
  PCIe Subsystem Id: 0x000E

Clock Information

Reports the maximum kernel clock frequencies available. The Clock Index is the reference used in the --kernel_frequency v++ directive when overriding the default value.

  Default Clock Index: 0
  Clock Index:         1
    Frequency:         500.000000
  Clock Index:         0
    Frequency:         300.000000

Valid SLRs

Reports the valid SLRs in the platform.

  SLR0, SLR1, SLR2

Resource Availability

The total available resources and resources available per SLR are reported. This information can be used to assess applicability of the platform for the design and help guide allocation of compute unit to available SLRs.

  Total...
    LUTs:  1051996
    FFs:   2197301
    BRAMs: 1896
    DSPs:  6833
  Per SLR...
    SLR0:
      LUTs:  354825
      FFs:   723370
      BRAMs: 638
      DSPs:  2265
    SLR1:
      LUTs:  159108
      FFs:   329166
      BRAMs: 326
      DSPs:  1317
    SLR2:
      LUTs:  354966
      FFs:   723413
      BRAMs: 638
      DSPs:  2265

Memory Information

Reports the available DDR and PLRAM memory connections per SLR as shown in the example output below.
  Type: ddr4
  Bus SP Tag: DDR
    Segment Index: 0
      Consumption: automatic
      SP Tag:      bank0
      SLR:         SLR0
      Max Masters: 15
    Segment Index: 1
      Consumption: default
      SP Tag:      bank1
      SLR:         SLR1
      Max Masters: 15
    Segment Index: 2
      Consumption: automatic
      SP Tag:      bank2
      SLR:         SLR1
      Max Masters: 15
    Segment Index: 3
      Consumption: automatic
      SP Tag:      bank3
      SLR:         SLR2
      Max Masters: 15
  Bus SP Tag: PLRAM
    Segment Index: 0
      Consumption: explicit
      SLR:         SLR0
      Max Masters: 15
    Segment Index: 1
      Consumption: explicit
      SLR:         SLR1
      Max Masters: 15
    Segment Index: 2
      Consumption: explicit
      SLR:         SLR2
      Max Masters: 15

The Bus SP Tag heading can be DDR or PLRAM and gives associated information below.

The Segment Index field is used in association with the SP Tag to generate the associated memory resource index as shown below.

Bus SP Tag[Segment Index]

For example, if Segment Index is 0, then the associated DDR resource index would be DDR[0].

This memory index is used when specifying memory resources in the v++ command as shown below:

v++ … --connectivity.sp vadd.m_axi_gmem:DDR[3]

There can be more than one Segment Index associated with an SLR. For instance, in the output above, SLR1 has both Segment Index 1 and 2.

The Consumption field indicates how a memory resource is used when building the design:

default
If the --connectivity.sp directive is not specified, it uses this memory resource by default during v++ build. For example in the report below, DDR with Segment Index 1 is used by default.
automatic
When the maximum number of memory interfaces have been used under Consumption: default have been fully applied, then the interfaces under automatic is used. The maximum number of interfaces per memory resource are given in the Max Masters field.
explicit
For PLRAM, consumption is set to explicit which indicates this memory resource is only used when explicitly indicated through the v++ command line.

Feature ROM Information

The feature ROM information provides build related information on ROM platform and can be requested by Xilinx Support when debugging system issues.

  ROM Major Version:       10
  ROM Minor Version:       1
  ROM Vivado Build ID:     2388429
  ROM DDR Channel Count:   5
  ROM DDR Channel Size:    16
  ROM Feature Bit Map:     655885
  ROM UUID:                00194bb3-707b-49c4-911e-a66899000b6b
  ROM CDMA Base Address 0: 620756992
  ROM CDMA Base Address 1: 0
  ROM CDMA Base Address 2: 0
  ROM CDMA Base Address 3: 0

Software Platform Information

Although software platform information is reported, it is only useful for users that have an OS running on the device, and not applicable to users that use a host machine.

Number of Runtimes:            1
Linux root file system path:   tbd
Default System Configuration:  config0_0
System Configurations:
  System Config Name:                      config0_0
  System Config Description:               config0_0 Linux OS on x86_0
  System Config Default Processor Group:   x86_0
  System Config Default Boot Image:        
  System Config Is QEMU Supported:         0
  System Config Processor Groups:
    Processor Group Name:      x86_0
    Processor Group CPU Type:  x86
    Processor Group OS Name:   Linux OS
  System Config Boot Images:
Supported Runtimes:
  Runtime: OpenCL

Platforminfo for xilinx_zcu104_base_202010_1

Use the following command to return the platforminfo for the xilinx_zcu104_base_202010_1 platform:
platforminfo -p xilinx_zcu104_base_202010_1
The results returned are as follows:

==========================
Basic Platform Information
==========================
Platform:           xilinx_zcu104_base_202010_1
File:               /platforms/xilinx_zcu104_base_202010_1/xilinx_zcu104_base_202010_1.xpfm
Description:        
A basic static platform targeting the ZCU104 evaluation board, which includes 2GB DDR4, GEM, USB, SDIO interface and UART of the Processing System. It reserves most of the PL resources for user to add acceleration kernels
    

=====================================
Hardware Platform (Shell) Information
=====================================
Vendor:                           xilinx
Board:                            zcu104_base
Name:                             zcu104_base
Version:                          1.0
Generated Version:                2020.1
Software Emulation:               1
Hardware Emulation:               0
FPGA Family:                      zynquplus
FPGA Device:                      xczu7ev
Board Vendor:                     xilinx.com
Board Name:                       xilinx.com:zcu104:1.1
Board Part:                       xczu7ev-ffvc1156-2-e
Maximum Number of Compute Units:  60

=================
Clock Information
=================
  Default Clock Index: 0
  Clock Index:         0
    Frequency:         150.000000
  Clock Index:         1
    Frequency:         300.000000
  Clock Index:         2
    Frequency:         75.000000
  Clock Index:         3
    Frequency:         100.000000
  Clock Index:         4
    Frequency:         200.000000
  Clock Index:         5
    Frequency:         400.000000
  Clock Index:         6
    Frequency:         600.000000

==================
Memory Information
==================
  Bus SP Tag: HP0
  Bus SP Tag: HP1
  Bus SP Tag: HP2
  Bus SP Tag: HP3
  Bus SP Tag: HPC0
  Bus SP Tag: HPC1
=======================
Feature ROM Information
=======================

=============================
Software Platform Information
=============================
Number of Runtimes:            1
Default System Configuration:  xilinx_zcu104_base_202010_1
System Configurations:
  System Config Name:                      xilinx_zcu104_base_202010_1
  System Config Description:               xilinx_zcu104_base_202010_1
  System Config Default Processor Group:   xrt
  System Config Default Boot Image:        standard
  System Config Is QEMU Supported:         1
  System Config Processor Groups:
    Processor Group Name:      xrt
    Processor Group CPU Type:  cortex-a53
    Processor Group OS Name:   linux
  System Config Boot Images:
    Boot Image Name:           standard
    Boot Image Type:           
    Boot Image BIF:            xilinx_zcu104_base_202010_1/boot/linux.bif
    Boot Image Data:           xilinx_zcu104_base_202010_1/xrt/image
    Boot Image Boot Mode:      sd
    Boot Image RootFileSystem: 
    Boot Image Mount Path:     /mnt
    Boot Image Read Me:        xilinx_zcu104_base_202010_1/boot/generic.readme
    Boot Image QEMU Args:      xilinx_zcu104_base_202010_1/qemu/pmu_args.txt:xilinx_zcu104_base_202010_1/qemu/qemu_args.txt
    Boot Image QEMU Boot:      
    Boot Image QEMU Dev Tree:  
Supported Runtimes:
  Runtime: OpenCL