Starting from the 2025.1 release, the support for powering down individual processors/cores and power domains using the force power down API is deprecated.
The force power down API was originally designed to provide a mechanism to forcibly power down a target entity when a seamless shutdown was not possible. However, certain use cases involving processor or power-domain level force power down have been identified as unsafe or functionally incorrect due to the following reasons:
- Processor/Core Force Power Down
- When a processor or core is force powered down, only the processor’s power is turned off. Any active transactions initiated by that processor (such as memory or peripheral accesses) can still be in progress at the time of shutdown. As these transactions are not properly terminated, this can lead to data corruption, bus errors, or undefined system behavior. Hence, forcibly powering down an individual processor without coordinating with its dependent resources is not considered a valid or safe use case.
- Power Domain Force Power Down
- Power domains in the system are often shared among multiple subsystems. For example, one power domain can supply multiple peripherals or cores that belong to different subsystems. Forcibly powering down such a shared domain can inadvertently disable components that are still in use by other active subsystems, leading to partial system shutdown, instability, or unexpected failures.
To prevent these unsafe operations and to ensure proper subsystem-level isolation and reliability, the force power down API is restricted to only support cross-subsystem force power down that is forcefully powering down a complete subsystem, which includes all associated devices, cores, and resources under a controlled and well-defined boundary.