The low-level software includes the embedded platform loader and manager (PLM) firmware and processing system manager (PSM) firmware running on two separate MicroBlaze™ triple module redundancy (TMR) processors.
The higher-level software includes the real-time software running in the RPU and the application software environment running in the APU. Linux and bare-metal software stacks can execute in the APU and RPU in a homogeneous or a heterogeneous environment.
- MicroBlaze™ -based TMR PPU processor running PLM firmware initially loaded by the ROM code unit (RCU) BootROM code
- MicroBlaze-based TMR PSM processor running PSM firmware loaded by the PLM
- Arm real-time processing unit (RPU)
- Arm application processing unit (APU)
- MicroBlaze processors instantiated in the PL
Processor Communications
Software has several hardware mechanisms to communicate between processors.
- Inter-Processor Interrupts with small message buffers
- Set of 32 mutex registers
- General system interrupts from all parts of the device can get the attention of the PLM firmware
- General system interrupts to and from the programmable logic
Software Development
Software can be developed on several platforms.
- Bare-metal software stack with standard C libraries: libc and libm, based on the open source Newlib library
- Middleware libraries that provide networking, file system, and encryption support
- Application examples include test applications
- Linux-based tools and operating system software including:
- PetaLinux to quickly build an embedded OS
- U-Boot and Yocto-based tools
The software environments are described in the Versal Adaptive SoC System Software Developers Guide (UG1304).
System Debugger
The AMD system debugger (XSDB) uses the AMD hardware server (hw_server) as the underlying debug engine. The Software Development Kit (SDK) translates each user interface action into a sequence of the target communication framework (TCF) commands. The SDK then processes the output from the system debugger to display the current state of the programs being debugged. It communicates to the processor on the hardware using the AMD hw_server. The SDK includes an Arm CoreSight™ driver to access the debug hardware ingrained in the processing system.