PLM Architecture - 2023.2 English

Versal Adaptive SoC System Software Developers Guide (UG1304)

Document ID
UG1304
Release Date
2023-10-18
Version
2023.2 English

The PLM is designed with a modular subsystem-based configuration, and task-based services. Each functionally distinct feature is designed as a module. The PLM application layer contains the module initialization and start-up tasks. Depending on the modules selected in the configuration, different modules are initialized. Modules can register event handlers, IPI handlers, CDO commands, and scheduler events with the PLM interface layer.

The PLM reads the PDI from the boot device and configures the system with the payloads present in the PDI. The following figure shows components that are part of the PLM ELF file.

Figure 1. PLM ELF Components

Note: For modularity and possible feature reuse by other system software modules, the following PLM application modules are placed into separate libraries. Currently, these libraries are intended to be PLM internal only. Thus, APIs from these libraries are not intended to be called directly from other software layers outside of PLM.
  • XilPLMI
  • XilPDI
  • XilLoader

The following table describes these components.

Table 1. PLM ELF Components
Software Component Scope Libraries/Drivers Used
PLM Application
  • Start-up Events Registration
  • Configuration to include modules and debug levels
  • Event scheduling with queues
All libraries listed in this table.
XilPLMI
  • PLM interface layer
  • Provides interface for parsing CDO files
  • Provides an interface to register handlers for section data
  • Provides an interface to register IPI events
  • Provides an interface to register interrupt events
  • Provides an interface to provide error responses, register error handlers
  • Provides interfaces to write and read CFI data to and from PL, respectively
BSP, PMC DMA, IPI, IOMODULE
XilPDI Provides interface to read and validate the PDI BSP
XilLoader
  • Responsible for loading boot PDI and subsystem images
  • Provides an interface for loading subsystem images from PDI
  • Interfaces with XilPLMI, XilSecure, XilPM and flash drivers
SD/eMMC, QSPI, OSPI, USB, XilPLMI, XilPM, XilPDI
XilPM Provides an interface to create and manage subsystems, MIO, clocks, power, and reset nodes settings. XilPLMI
XilSecure
  • Interfaces with secure module
  • Provides an interface to authenticate and decrypt AMD images
PMC DMA
XilSEM
  • Provides handlers for single event upset (SEU) events in the configuration RAM and NPI registers
  • Schedules handlers for SEU detection scan operations
XilSecure, XilPLMI, CFRAME, CFU
XilNVM Provides IPI handlers for programming and reading eFUSE bits and for programming battery-backed RAM (BBRAM) BSP, XilPLMI, SYSMONPSV
XilPUF
  • Provides support for on demand regeneration of PUF KEK for decryption of black key during boot.
  • Provides IPI handlers for runtime support of PUF registration, PUF regeneration (on demand and ID only) and clearing of PUF ID.
BSP, XilPLMI