@@ -150,37 +150,35 @@ 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
- * 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.
159
+ * a ``zephyr,memory-region `` compatible node with nodelabel ``mcuboot_s2ram `` of 8 B size for placing MCUboot's S2RAM magic variable.
160
+ * a ``zephyr,memory-region `` compatible node labeled ``pm_s2ram_stack ``, with a size of 16 bytes.
161
+ This region is used as the program stack during S2RAM resume by MCUboot.
164
162
165
163
Example DTS snippet:
166
164
167
165
.. code-block :: dts
168
166
169
167
/ {
170
168
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
- };
169
+ /* run-time common mcuboot S2RAM support section */
170
+ mcuboot_s2ram: cpuapp_s2ram@22007fd8 {
171
+ compatible = "zephyr,memory-region", "mmio-sram";
172
+ reg = <0x22007fd8 8 >;
173
+ zephyr,memory-region = "mcuboot_s2ram_context";
174
+ };
175
+
176
+ /* temporary stack for S2RAM resume logic */
177
+ pm_s2ram_stack: cpuapp_s2ram_stack@22007fc0 {
178
+ compatible = "zephyr,memory-region", "mmio-sram";
179
+ reg = <0x22007fc0 16 >;
180
+ zephyr,memory-region = "pm_s2ram_stack ";
181
+ };
184
182
};
185
183
};
186
184
0 commit comments