It is necessary to stop/complete any ongoing transaction by any IP or processor of the subsystem before resetting them. Otherwise, it may lead to hanging of the interconnect and eventually hanging of the entire system. Also, to ensure proper operation by the IP after reboot, it is best to reset them and bring them to post bootROM state.
PMU firmware implements peripheral idling and resetting for the PS IPs that can be idled / reset during the subsystem reset. The IPs that will be attempted to idled/reset is based on isolation configuration of the Vivado.
Build PMU firmware with the following idling flags to enable subsystem node idling and resetting:
- ENABLE_NODE_IDLING
- IDLE_PERIPHERALS
Node Reset and Idle
During a subsystem restart, the PMU firmware makes sure that the associated PS peripheral nodes are idled and brought to reset state. Following is the list of currently supported PS peripherals that will undergo idle/reset, if they are part of the subsystem that is undergoing reset:
- TTC
- Ethernet/EMAC
- I2C
- SD
- eMMC
- QSPI
- USB
- DP
- SATA
See GPIO reset to PL to understand the implication of GPIO reset.