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.
The following table describes these components.
|Software Component||Scope||Libraries/Drivers Used|
||All libraries listed in this table.|
||BSP, PMC DMA, IPI, IOMODULE|
|XilPDI||Provides interface to read and validate the PDI||BSP|
||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, XilPLMI, CFRAME, CFU|
|XilNVM||Provides IPI handlers for programming and reading eFUSE bits and for programming battery-backed RAM (BBRAM)||BSP, XilPLMI, SYSMONPSV|