System software running in the RPU, APU, or a PL-instantiated MicroBlaze™ processor can request platform services that are performed by the platform loader and manager (PLM) firmware and the processing system manager (PSM) firmware. The PMC PPU processor runs the PLM firmware. The initial PLM firmware is loaded during the hardware boot process by the RCU. The PLM firmware then loads the PSM firmware.
To request platform management services, the system software writes to the PMC and PSM global registers to generate interrupts to the PLM and PSM firmware. The PLM firmware can provide several services and can send an inter-processor interrupt (IPI) to the PSM firmware to manage PS-based services including power domain and island control, functional isolation, and sleep/wake events. For example, the PSM firmware can be used to quiescent the AXI and NoC interconnects prior to powering down a processor, a memory, or a complete power domain. After the PSM firmware commands the interconnect components to quiescent, the PSM receives an acknowledgment interrupt from the isolation control blocks.
There are several types of platform service requests:
- Major subsystem power up and down in Power and Isolation Requests
- Subsystem and controller resets in Reset Service Requests
- Test and debug CoreSight Wake-Up Requests
- PL reconfiguration in Dynamic Function eXchange (DFX) section
The PLM and PSM firmware needs to analyze the system state and take action on the request. If the request can be granted, it accesses local and other registers to satisfy the request. If the request cannot be granted or there is an issue, it needs to communicate back to the requester. This can be done in several ways including clearing the status bit, using an established IPI channel, or other means.