@@ -150,37 +150,43 @@ Suspend to RAM (S2RAM) operation of the application requires special support fro
150
150
MCUboot on the nRF54H20 SoC supports Suspend to RAM (S2RAM) functionality in the application.
151
151
It can detect a wake-up from S2RAM and redirect execution to the application's resume routine.
152
152
153
- To enable S2RAM support for your project, set the following MCUboot Kconfig options :
153
+ To enable S2RAM support for your project, set the following MCUboot Kconfig option :
154
154
155
- * :kconfig:option: `CONFIG_PM ` - Power management support.
156
- * :kconfig:option: `CONFIG_PM_S2RAM ` - Suspend to RAM support.
157
- * :kconfig:option: `CONFIG_PM_S2RAM_CUSTOM_MARKING ` - Custom S2RAM marking support.
158
- * :kconfig:option: `CONFIG_SOC_NRF54H20_PM_S2RAM_OVERRIDE ` - Enables MCUboot to override the default Nordic S2RAM implementation.
155
+ * :kconfig:option: `CONFIG_SOC_EARLY_RESET_HOOK ` - Enables MCUboot to integrate S2RAM resume bridge into start-up code.
159
156
160
157
Also ensure that your board's DTS file includes the following Zephyr nodes, which describe the linker sections used:
161
158
162
159
* a ``zephyr,memory-region `` compatible node with nodelabel ``pm_s2ram `` of 32 B size for placing S2RAM cpu context RAM.
163
- * a ``zephyr,memory-region `` compatible node with nodelabel ``mcuboot_s2ram `` of 4 B size for placing MCUboot's S2RAM magic variable.
160
+ * a ``zephyr,memory-region `` compatible node with nodelabel ``mcuboot_s2ram `` of 8 B size for placing MCUboot's S2RAM magic variable.
161
+ * A ``zephyr,memory-region `` compatible node labeled ``pm_s2ram_stack ``, with a size of 32 bytes.
162
+ This region is used as the program stack during S2RAM resume by MCUboot.
164
163
165
164
Example DTS snippet:
166
165
167
166
.. code-block :: dts
168
167
169
168
/ {
170
169
soc {
171
- /* run-time common mcuboot S2RAM support section */
172
- mcuboot_s2ram: cpuapp_s2ram@22007fdc {
173
- compatible = "zephyr,memory-region", "mmio-sram";
174
- reg = <0x22007fdc 4>;
175
- zephyr,memory-region = "mcuboot_s2ram_context";
176
- };
177
-
178
- /* S2RAM cpu context RAM allocation */
179
- pm_s2ram: cpuapp_s2ram@22007fe0 {
180
- compatible = "zephyr,memory-region", "mmio-sram";
181
- reg = <0x22007fe0 32>;
182
- zephyr,memory-region = "pm_s2ram_context";
183
- };
170
+ /* run-time common mcuboot S2RAM support section */
171
+ mcuboot_s2ram: cpuapp_s2ram@22007fd8 {
172
+ compatible = "zephyr,memory-region", "mmio-sram";
173
+ reg = <0x22007fd8 8>;
174
+ zephyr,memory-region = "mcuboot_s2ram_context";
175
+ };
176
+
177
+ /* temporary stack for S2RAM resume logic */
178
+ pm_s2ram_stack: cpuapp_s2ram_stack@22007fd0 {
179
+ compatible = "zephyr,memory-region", "mmio-sram";
180
+ reg = <0x22007fd0 16>;
181
+ zephyr,memory-region = "pm_s2ram_stack";
182
+ };
183
+
184
+ /* S2RAM cpu context RAM allocation */
185
+ pm_s2ram: cpuapp_s2ram@22007fe0 {
186
+ compatible = "zephyr,memory-region", "mmio-sram";
187
+ reg = <0x22007fe0 32>;
188
+ zephyr,memory-region = "pm_s2ram_context";
189
+ };
184
190
};
185
191
};
186
192
0 commit comments