Skip to content

Commit 873864e

Browse files
nvlsianpurlubos
authored andcommitted
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 4d64160 commit 873864e

File tree

1 file changed

+18
-21
lines changed

1 file changed

+18
-21
lines changed

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

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -150,37 +150,34 @@ 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:
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.
153+
To enable S2RAM support for your project, set the :kconfig:option:`CONFIG_SOC_EARLY_RESET_HOOK` MCUboot Kconfig option.
154+
This option integrates the S2RAM resume bridge into the start-up code.
159155

160156
Also ensure that your board's DTS file includes the following Zephyr nodes, which describe the linker sections used:
161157

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.
158+
* a ``zephyr,memory-region`` compatible node labeled ``mcuboot_s2ram``, with a size of 8 bytes, used for placing MCUboot's S2RAM magic variable.
159+
* a ``zephyr,memory-region`` compatible node labeled ``pm_s2ram_stack``, with a size of 16 bytes.
160+
This region is used as the program stack by MCUboot during S2RAM resume.
164161

165162
Example DTS snippet:
166163

167164
.. code-block:: dts
168165
169166
/ {
170167
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-
};
168+
/* run-time common mcuboot S2RAM support section */
169+
mcuboot_s2ram: cpuapp_s2ram@22007fd8 {
170+
compatible = "zephyr,memory-region", "mmio-sram";
171+
reg = <0x22007fd8 8>;
172+
zephyr,memory-region = "mcuboot_s2ram_context";
173+
};
174+
175+
/* temporary stack for S2RAM resume logic */
176+
pm_s2ram_stack: cpuapp_s2ram_stack@22007fc0 {
177+
compatible = "zephyr,memory-region", "mmio-sram";
178+
reg = <0x22007fc0 16>;
179+
zephyr,memory-region = "pm_s2ram_stack";
180+
};
184181
};
185182
};
186183

0 commit comments

Comments
 (0)