@@ -150,37 +150,43 @@ Suspend to RAM (S2RAM) operation of the application requires special support fro
150150MCUboot on the nRF54H20 SoC supports Suspend to RAM (S2RAM) functionality in the application.
151151It can detect a wake-up from S2RAM and redirect execution to the application's resume routine.
152152
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 :
154154
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.
159156
160157Also ensure that your board's DTS file includes the following Zephyr nodes, which describe the linker sections used:
161158
162159* 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.
164163
165164Example DTS snippet:
166165
167166.. code-block :: dts
168167
169168 / {
170169 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+ };
184190 };
185191 };
186192
0 commit comments