Subsystem Restart When Linux is Hang - 2025.2 English - UG1304

Versal Adaptive SoC System Software Developers Guide (UG1304)

Document ID
UG1304
Release Date
2025-12-08
Version
2025.2 English

In case of Linux hang user can still be able to do the subsystem restart the subsystem

Figure 1. Subsystem Restart when Linux is Hang
Linux
Register notifier for CPU idle during subsystem restart event from primary processor.

Use Event management driver to register for idle callback during subsystem restart or force power down event.

PLM
Set subsystem and core flag to indicate idle callback registered.
RPU
Send subsystem restart request to PLM.
PLM
Check if idle callback registered.
PLM
Request runtime HB_MON device if added to start timer.
PLM
Change subsystem state to pending restart and change core state to pending power down.
PLM
Send idle callback to TF-A and start timer to get power down event.
TF-A
Notify Linux for restart event through SGI.

Because Linux is hung, it fails to receive notifications.

PLM
Healthy boot monitor timer overflows after timeout value.
PLM
Send idle callback to TF-A again.
TF-A
Raise SGI to secondary cores to power down all secondary cores.
TF-A
Send Self suspend request to PLM.
PLM
Enable PSM direct power down interrupt for APU cores.
TF-A
Put all cores in WFI state.
PSM
Get WFI interrupt for all cores.
PSM
Send APU power down event to PLM.
PLM
Send direct power down request to PSM for powering down APU.
PSM
Power down APU.
PLM
Check subsystem state for pending restart.
PLM
Release all the devices including HB_MON device which stops the timer.
PLM
Reload subsystem image.
PLM
Send direct power up request to PSM for powering up APU.