Power management
Caution
The High-Performance Framework (HPF) support in the nRF Connect SDK is experimental and is limited to the nRF54L15 and nRF54LM20 devices.
The following page outlines the approaches and mechanisms employed to ensure efficient power management in High-Performance Framework (HPF) systems, focusing on resource allocation, system states, and interactions between different components.
Note
This page outlines best practices for architecture design. You might need to implement some components, as they are not yet available.
Power management strategies
Power Management in HPF should be considered from two perspectives: the Host controller and the HPF firmware.
Host controller
The Host is responsible for managing power state of the following resources:
FLPR core with HPF firmware running on it
RAM
To achieve optimal power state, you must use the Device Runtime Power Management and System Power Off.
See an example flow of the Host power management:
Note
VPR driver is not yet implemented, it should be implemented when writing HPF software. It shall run on application core. Its purpose is to control basic FLPR functionalities like initialization of inter processor communication and power mode management.
HPF firmware
HPF firmware is responsible for managing power states of the following resources:
FLPR CPU power state
Hardware peripherals used by the HPF firmware
FLPR CPU power state management
Your HPF firmware should not use the Zephyr libraries for System Power Management, as the libraries rely on multithreading. Instead, you must implement a distinct approach.
Your HPF firmware should configure a sleep mode that is activated using both the SLEEPSTATE and STACKONSLEEP fields in the NORDIC.VPRNORDICSLEEPCTRL register.
For details, see the Sleep mode operation section in the VPR peripheral description.
This configuration must occur in the following cases:
When the FLPR starts (the sleep mode setting is derived from a Kconfig option).
When the Host receives the
SUSPENDorRESUMEsignal.
In the main loop, the HPF firmware should call k_cpu_idle to enter sleep mode.
Ensure that k_cpu_idle() is only called within the main loop to prevent the FLPR from entering an incorrect power state.
Sleep modes should be application-specific. Consider the following:
Latency requirements of the emulated protocol
Minimum time in sleep mode that brings power savings
Hardware limitations (for example, constraints on waking up from hibernation)
Hardware peripherals
You might have to use specific hardware peripherals with the HPF firmware.
When FLPR starts, it must initialize the required peripherals. When the Host sends a request for shutdown, these peripherals should be deinitialized and powered down before signaling that preparations for shutdown are complete.
To ensure the optimal power state of hardware peripherals, the HPF firmware should employ nrfx drivers, which are designed to manage the power states of hardware peripherals effectively.