PL Configuration - 2023.2 English

Versal Adaptive SoC System Software Developers Guide (UG1304)

Document ID
Release Date
2023.2 English

In Versal devices, the Adaptable Engine integrated into the PL is configured using CDO files such as rCDO and rNPI. PL CDO mainly contains CFrame data along with PL and NoC power domain initialization commands. NPI contains configuration data related to the NPI blocks. NPI blocks include NoC elements (NMU, NSU, NPS, NCRB), DDR memory controller, XPHY, XPIO, GTY, MMCMs, etc.).

The NPI data is generated by the Vivado tool for the various NPI blocks. The NPI blocks that are present in Versal devices include NoC, DDR memory controller, XPHY, XPIO, GTY, MMCMs, etc. Before loading the PL configuration, ensure that PMC is configured.

Vivado also inserts USR_ACCESS information as a function ID in the RCDO. Bootgen uses this information and populates the Image Header with this function ID. PLM consumes the image header and stores this USR_ACCESS information at address 0xF2014168 while loading this image. Any upper layer software or hardware manager can access the USR_ACCESS information by reading this address.

The following table describes the content of the files, and is useful for debugging

Table 1. PL Configuration
File Contents
PL CDO <.rcdo>
  • PM init node command (Scan Clear, BISR, MBIST) for NoC domain
  • The PM init node commands for scan clear, house cleaning, BISR of PL domain
  • Register writes to configure CFU for CRC, compression etc
  • DMA Keyhole Xfer commands to load CFI data
  • Register writes/polls to CFU
  • If NPI not present:
    • Global Signals (GMC_B, GRESTORE, GHIGH_B..): Register writes/polls
  • Global Signals (GWE, EOS, EN_GLOb): Register writes/polls
NPI CDO <.rnpi> NPI data
  • NPI data load: DMA Writes/register writes
  • If CFI present:
    • Global Signals (GMC_B, GRESTORE, GHIGH_B..:) Register writes/polls
  • NPI Sequence: Register writes/polls
  • If CFI present:
    • Global Signals (GWE, EOS, EN_GLOb): Register writes/polls
  • Isolation and PL reset commands