Skip to content

Commit 88f3091

Browse files
committed
doc/..device_guides/nrf54h: update on s2ram Along wit MCUboot
Update the doc to reflect improvement made in S2RAM resume via MCUboot. Also include DTS `mcuboot_s2ram` memory node rise for supporting Direct-XIP. Signed-off-by: Andrzej Puzdrowski <[email protected]>
1 parent eb193d5 commit 88f3091

File tree

1 file changed

+25
-19
lines changed

1 file changed

+25
-19
lines changed

doc/nrf/app_dev/device_guides/nrf54h/ug_nrf54h20_pm_optimization.rst

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -150,37 +150,43 @@ Suspend to RAM (S2RAM) operation of the application requires special support fro
150150
MCUboot on the nRF54H20 SoC supports Suspend to RAM (S2RAM) functionality in the application.
151151
It 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

160157
Also 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

165164
Example 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

Comments
 (0)