Skip to content

Commit 6dc34d7

Browse files
FrancescoSerrlubos
authored andcommitted
doc: backported misc updates
Backported misc updates from the 3.2.0-preview1 prerelease PR. Signed-off-by: Francesco Domenico Servidio <[email protected]>
1 parent a8bcdbd commit 6dc34d7

File tree

7 files changed

+187
-56
lines changed

7 files changed

+187
-56
lines changed

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

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -204,13 +204,5 @@ Update the nRF54H20 SoC binaries
204204
To update the nRF54H20 SoC binaries (versions 2x.x.x, based on IronSide SE) using the debugger on a nRF54H20 SoC, use the west ``ncs-ironside-se-update`` command.
205205
This command takes the nRF54H20 SoC binary ZIP file and uses the IronSide SE update service to update both the IronSide SE and IronSide SE Recovery (or optionally just one of them).
206206

207-
To update the nRF54H20 SoC binaries, do the following:
208-
209-
1. Download the new version of the nRF54H20 SoC binaries for your development kit from the :ref:`abi_compatibility` page.
210-
#. Move the :file:`ZIP` bundle to a folder of your choice and unzip it.
211-
#. |open_terminal_window_with_environment|
212-
#. Run the following command::
213-
214-
west ncs-ironside-se-update --zip ~/path/to//nrf54h20_soc_binaries_v<version_number>.zip --serial $dbg --allow-erase
215-
207+
For more information on how to use the ``ncs-ironside-se-update`` command, see :ref:`ug_nrf54h20_ironside_se_update`.
216208
For more information on the nRF54H20 SoC binaries, see :ref:`abi_compatibility`.

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

Lines changed: 135 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Distribution
2222
************
2323

2424
The |ISE| is provided as a precompiled binary, which is part of the nRF54H20 SoC bundle and is provided independently from the |NCS| release cycle.
25+
For more information, see :ref:`abi_compatibility`.
2526

2627
.. _ug_nrf54h20_ironside_se_uicr:
2728

@@ -494,10 +495,21 @@ UICR.SECONDARY.MPCCONF
494495

495496
.. _ug_nrf54h20_ironside_se_programming:
496497

497-
Programming
498-
***********
498+
Programming |ISE| on the nRF54H20 SoC
499+
*************************************
500+
501+
|ISE| is included in the nRF54H20 SoC binaries.
502+
The nRF54H20 SoC binaries are bundled in a ZIP archive that contains the following components:
503+
504+
* *IronSide SE update firmware* (:file:`ironside_se_update.hex`) - The main |ISE| firmware
505+
* *IronSide SE Recovery update firmware* (:file:`ironside_se_recovery_update.hex`) - The recovery firmware
506+
* The update application (:file:`update_application.hex`) - The application firmware used to trigger the update process
507+
* Additional metadata and manifest files required for the update process
508+
509+
The bundle ZIP file follows the naming convention :file:`<soc>_soc_binaries_v<version>.zip`.
499510

500-
For programming instructions, see :ref:`ug_nrf54h20_SoC_binaries`.
511+
For more information on the nRF54H20 SoC binaries, see :ref:`nRF54H20 SoC binaries<abi_compatibility>`.
512+
For instructions on how to program the nRF54H20 SoC binaries, see :ref:`ug_nrf54h20_SoC_binaries`.
501513

502514
By default, the nRF54H20 SoC uses the following memory and access configurations:
503515

@@ -511,6 +523,120 @@ By default, the nRF54H20 SoC uses the following memory and access configurations
511523
Global domain memory can be protected from write operations by configuring UICR registers.
512524
To remove these protections and disable all other protection mechanisms enforced through UICR settings, perform an ``ERASEALL`` operation.
513525

526+
.. _ug_nrf54h20_ironside_se_update:
527+
528+
Updating |ISE|
529+
**************
530+
531+
|NCS| supports two methods for updating the |ISE| firmware on the nRF54H20 SoC:
532+
533+
* Using the ``west`` command.
534+
You can use the ``west`` command provided by the |NCS| to install the firmware update.
535+
For step-by-step instructions, see :ref:`ug_nrf54h20_ironside_se_update_west`.
536+
537+
* Updating the SoC binaries manually.
538+
Alternatively, you can perform the update by manually executing the same steps carried out by the ``west`` command.
539+
For step-by-step instructions, see :ref:`ug_nrf54h20_ironside_se_update_manual`.
540+
541+
.. caution::
542+
You cannot update the nRF54H20 SoC binaries from a SUIT-based (up to 0.9.6) to an IronSide-SE-based (2x.x.x) version.
543+
544+
.. _ug_nrf54h20_ironside_se_update_west:
545+
546+
Updating using west
547+
===================
548+
549+
To update the |ISE| firmware, you can use the ``west ncs-ironside-se-update`` command with the following syntax:
550+
551+
.. code-block:: console
552+
553+
west ncs-ironside-se-update --zip <path_to_soc_binaries.zip> --allow-erase
554+
555+
The command accepts the following main options:
556+
557+
* ``--zip`` (required) - Sets the path to the nRF54H20 SoC binaries ZIP file.
558+
* ``--allow-erase`` (required) - Enables erasing the device during the update process.
559+
* ``--serial`` - Specifies the serial number of the target device.
560+
* ``--firmware-slot`` - Updates only a specific firmware slot (``uslot`` for |ISE| or ``rslot`` for |ISE| Recovery).
561+
* ``--wait-time`` - Specifies the timeout in seconds to wait for the device to boot (default: 2.0 seconds).
562+
563+
.. _ug_nrf54h20_ironside_se_update_manual:
564+
565+
Updating manually
566+
=================
567+
568+
The manual update process involves the following steps:
569+
570+
1. Executing the update application.
571+
The update application runs on the application core and communicates with the |ISE| update service.
572+
It reads the update firmware from memory and passes the update blob metadata to the |ISE|.
573+
574+
#. Preparing the update.
575+
The |ISE| validates the update parameters and writes the update metadata to the Secure Information Configuration Registers (SICR).
576+
577+
#. Installing the update.
578+
After a reset, the Secure Domain ROM (SDROM) detects the pending update through the SICR registers, verifies the update firmware signature, and installs the new firmware.
579+
580+
#. Completing the update.
581+
The system boots with the updated |ISE| firmware, and the update status can be read to verify successful installation.
582+
583+
Updating manually using nrfutil
584+
-------------------------------
585+
586+
``nrfutil`` commands can replicate the functionality of ``west ncs-ironside-se-update``.
587+
To perform the manual update process using ``nrfutil`` commands, complete the following steps:
588+
589+
1. Extract the update bundle:
590+
591+
.. code-block:: console
592+
593+
unzip <soc_binaries.zip> -d /tmp/update_dir
594+
595+
#. Erase non-volatile memory:
596+
597+
.. code-block:: console
598+
599+
nrfutil device recover --serial-number <serial> --x-sdfw-variant ironside
600+
601+
#. Program the update application:
602+
603+
.. code-block:: console
604+
605+
nrfutil device program --firmware /tmp/update_dir/update/update_application.hex --serial-number <serial> --x-sdfw-variant ironside
606+
607+
#. Program the |ISE| update firmware:
608+
609+
.. code-block:: console
610+
611+
nrfutil device program --options chip_erase_mode=ERASE_NONE --firmware /tmp/update_dir/update/ironside_se_update.hex --serial-number <serial> --x-sdfw-variant ironside
612+
613+
#. Reset to execute the update service:
614+
615+
.. code-block:: console
616+
617+
nrfutil device reset --serial-number <serial> --x-sdfw-variant ironside
618+
619+
#. Reset to trigger the installation of the update:
620+
621+
.. code-block:: console
622+
623+
nrfutil device reset --reset-kind RESET_VIA_SECDOM --serial-number <serial> --x-sdfw-variant ironside
624+
625+
#. Program the |ISE| Recovery update firmware (if updating both slots):
626+
627+
.. code-block:: console
628+
629+
nrfutil device program --options chip_erase_mode=ERASE_NONE --firmware /tmp/update_dir/update/ironside_se_recovery_update.hex --serial-number <serial> --x-sdfw-variant ironside
630+
631+
Then repeat steps 5 and 6.
632+
633+
#. Erase the update application:
634+
635+
.. code-block:: console
636+
637+
nrfutil device erase --all --serial-number <serial> --x-sdfw-variant ironside
638+
639+
514640
.. _ug_nrf54h20_ironside_se_debug:
515641

516642
Debugging
@@ -630,7 +756,7 @@ The secondary firmware feature provides an alternative boot path that can be tri
630756
It can be used for different purposes, some examples are DFU applications in systems that don't use dual banking, recovery firmware, and analysis firmware.
631757

632758
.. note::
633-
The term "primary firmware" is rarely used when describing the firmware that is booted by default by IronSide SE, as it is implicit when the term "secondary" is not specified.
759+
The term "primary firmware" is rarely used when describing the firmware that is booted by default by |ISE|, as it is implicit when the term "secondary" is not specified.
634760

635761
.. note::
636762
The term "secondary slot" and "secondary image" are used in the MCUboot context.
@@ -642,15 +768,15 @@ Configuration and triggering
642768
Configuring a secondary firmware is optional and is done through the ``UICR.SECONDARY`` fields.
643769

644770
The secondary firmware can be triggered automatically, through ``CTRLAP.BOOTMODE`` or through an IPC service (``ironside_bootmode`` service).
645-
Any component that communicates with IronSide SE over IPC can leverage this service.
771+
Any component that communicates with |ISE| over IPC can leverage this service.
646772
Setting bit 5 in ``CTRLAP.BOOTMODE`` will also trigger secondary firmware.
647773

648-
IronSide SE automatically triggers the secondary firmware in any of the following situations:
774+
|ISE| automatically triggers the secondary firmware in any of the following situations:
649775

650776
* The integrity check of the memory specified in ``UICR.PROTECTEDMEM`` fails.
651777
* Any boot failure occurs, such as missing primary firmware or failure to apply ``UICR.PERIPHCONF`` or ``UICR.MPCCONF`` configurations.
652778
* A local domain is reset with a reason configured to trigger the secondary firmware.
653-
* Secondary firmware will be booted by IronSide SE if one of the triggers configured in ``UICR.SECONDARY.TRIGGER.RESETREAS`` occurs.
779+
* Secondary firmware will be booted by |ISE| if one of the triggers configured in ``UICR.SECONDARY.TRIGGER.RESETREAS`` occurs.
654780

655781
The secondary firmware can be protected using ``UICR.SECONDARY.PROTECTEDMEM`` for integrity checking, and can be updated by other components when protection is not enabled.
656782

@@ -661,12 +787,12 @@ The secondary firmware can be protected through integrity checks by enabling ``U
661787
The ``PERIPHCONF`` entries for the secondary firmware can also be placed in memory covered by ``UICR.SECONDARY.PROTECTEDMEM`` to create a fully immutable secondary firmware and configuration.
662788

663789
If the integrity check of the memory specified in this configuration fails, the secondary firmware will not be booted.
664-
Instead, IronSide SE will attempt to boot the primary firmware, and information about the failure is available in the boot report and boot status.
790+
Instead, |ISE| will attempt to boot the primary firmware, and information about the failure is available in the boot report and boot status.
665791

666792
Update
667793
======
668794

669-
As with the primary firmware, IronSide SE does not facilitate updating the secondary firmware.
795+
As with the primary firmware, |ISE| does not facilitate updating the secondary firmware.
670796
The secondary image can be updated by other components as long as ``UICR.SECONDARY.PROTECTEDMEM`` is not set.
671797
Using the secondary firmware as a bootloader capable of validating and updating a second image enables updating firmware in the secondary boot flow while having secure boot enabled through ``UICR.SECONDARY.PROTECTEDMEM``.
672798

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,10 @@ For detailed information on ECIES-X25519 support, refer to the :ref:`ug_nrf54h_e
8989
Suspend to RAM (S2RAM) support
9090
******************************
9191

92-
MCUboot on the nRF54H20 SoC can supports Suspend to RAM (S2RAM) functionality in the Application.
93-
It is able to detect wake-up from S2RAM and redirect execution to the Application's resume routine.
92+
MCUboot on the nRF54H20 SoC supports Suspend to RAM (S2RAM) functionality in the application.
93+
It can detect a wake-up from S2RAM and redirect execution to the application's resume routine.
9494

95-
Follow :ref:`S2RAM operation with MCUboot as the bootloader instruction<ug_nrf54h20_pm_optimizations_bootloader>`
96-
for more information.
95+
For more information, see :ref:`S2RAM operation with MCUboot as the bootloader instruction<ug_nrf54h20_pm_optimizations_bootloader>`.
9796

9897
DFU configuration example
9998
*************************

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

Lines changed: 24 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ For the application running on the radio core, setting the following Kconfig opt
137137
Consider also the following recommendations:
138138

139139
* Disable all unused peripherals before entering sleep (Zephyr's API does this automatically when supported).
140-
* Add ``zephyr,pm-device-runtime-auto`` in the DTS for all peripherals with runtime PM support.
140+
* Add ``zephyr,pm-device-runtime-auto`` in the devicetree source (DTS) file for all peripherals with runtime PM support.
141141
* Build and program an empty image on any unused core to release shared resources.
142142

143143
.. _ug_nrf54h20_pm_optimizations_bootloader:
@@ -147,52 +147,42 @@ Operation with MCUboot as the bootloader
147147

148148
Suspend to RAM (S2RAM) operation of the application requires special support from the bootloader.
149149

150-
MCUboot on the nRF54H20 SoC supports Suspend to RAM (S2RAM) functionality in the Application.
151-
It is able to detect wake-up from S2RAM and redirect execution to the Application's resume routine.
150+
MCUboot on the nRF54H20 SoC supports Suspend to RAM (S2RAM) functionality in the application.
151+
It can detect a wake-up from S2RAM and redirect execution to the application's resume routine.
152+
152153
To enable S2RAM support for your project, set the following MCUboot Kconfig options:
153154

154155
* :kconfig:option:`CONFIG_PM` - Power management support.
155156
* :kconfig:option:`CONFIG_PM_S2RAM` - Suspend to RAM support.
156-
* :kconfig:option:`CONFIG_PM_S2RAM_CUSTOM_MARKING` - Custom S2RAM making support.
157-
* :kconfig:option:`CONFIG_SOC_NRF54H20_PM_S2RAM_OVERRIDE` - Override Nordic s2ram implementation by MCUboot.
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.
158159

159-
Also ensure that your board DTS file includes the following zephyr nodes for describing linker section used:
160+
Also ensure that your board's DTS file includes the following Zephyr nodes, which describe the linker sections used:
160161

161-
* A ``zephyr,memory-region`` compatible node labeled ``pm_s2ram``, with a size of 32 bytes.
162-
This region is used to store the S2RAM CPU context.
163-
* A ``zephyr,memory-region`` compatible node labeled ``pm_s2ram_stack``, with a size of 32 bytes.
164-
This region is used as the program stack during S2RAM resume.
165-
* A ``zephyr,memory-region`` compatible node labeled ``mcuboot_s2ram``, with a size of 4 bytes.
166-
This region is used to store the MCUboot S2RAM magic variable.
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.
167164

168165
Example DTS snippet:
169166

170167
.. code-block:: dts
171168
172-
/ {
169+
/ {
173170
soc {
174-
/* run-time common mcuboot S2RAM support section */
175-
mcuboot_s2ram: cpuapp_s2ram@22007fdc {
176-
compatible = "zephyr,memory-region", "mmio-sram";
177-
reg = <0x22007fdc 4>;
178-
zephyr,memory-region = "mcuboot_s2ram_context";
179-
};
180-
181-
/* temporary stack for S2RAM resume logic */
182-
pm_s2ram_stack: cpuapp_s2ram_stack@22007fd0 {
183-
compatible = "zephyr,memory-region", "mmio-sram";
184-
reg = <0x22007fd0 16>;
185-
zephyr,memory-region = "pm_s2ram_stack";
186-
};
187-
188-
/* S2RAM cpu context RAM allocation */
189-
pm_s2ram: cpuapp_s2ram@22007fe0 {
190-
compatible = "zephyr,memory-region", "mmio-sram";
191-
reg = <0x22007fe0 32>;
192-
zephyr,memory-region = "pm_s2ram_context";
193-
};
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+
};
194184
};
195-
};
185+
};
196186
197187
Memory and cache optimization recommendations
198188
=============================================

doc/nrf/links.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,7 @@
652652
.. _`LwM2M carrier library changelog for v1.9.1`: https://docs.nordicsemi.com/bundle/ncs-1.9.1/page/nrf/libraries/bin/lwm2m_carrier/CHANGELOG.html
653653
.. _`LwM2M carrier library changelog for v1.9.0`: https://docs.nordicsemi.com/bundle/ncs-1.9.0/page/nrf/libraries/bin/lwm2m_carrier/CHANGELOG.html
654654

655+
.. _`Migration guide for nRF Connect SDK v3.2.0`: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/releases_and_maturity/migration/migration_guide_3.2.html
655656
.. _`Migration guide for nRF Connect SDK v3.1.0`: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/releases_and_maturity/migration/migration_guide_3.1.html
656657
.. _`Migration guide for nRF Connect SDK v3.0.0`: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/releases_and_maturity/migration/migration_guide_3.0.html
657658
.. _`Migration guide for nRF Connect SDK v2.9.0-nRF54H20-1`: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/releases_and_maturity/migration/migration_guide_2.9.0-nRF54H20-1.html

doc/nrf/releases_and_maturity/abi_compatibility.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ Provisioning the nRF54H20 SoC
6767

6868
To provision the nRF54H20 SoC using the nRF54H20 SoC binaries, see :ref:`ug_nrf54h20_gs_bringup`.
6969

70+
Updating the nRF54H20 SoC
71+
*************************
72+
73+
To update the nRF54H20 SoC binaries to the latest version, see :ref:`ug_nrf54h20_ironside_se_update`.
74+
7075
nRF54H20 SoC binaries changelog
7176
*******************************
7277

doc/nrf/releases_and_maturity/migration/migration_guide_3.2.rst

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,24 @@ Required changes
2424

2525
The following changes are mandatory to make your application work in the same way as in previous releases.
2626

27+
nRF54H20
28+
========
29+
30+
This section describes the changes specific to the nRF54H20 SoC and DK support in the |NCS|.
31+
32+
nRF54H20 SoC binaries
33+
---------------------
34+
35+
.. toggle::
36+
37+
* The nRF54H20 SoC binaries based on IronSide SE have been updated to version v23.0.1+16.
38+
Starting from the |NCS| v3.2.0, you should always upgrade your nRF54H20 SoC binaries to the latest version.
39+
40+
For more information, see:
41+
42+
* :ref:`abi_compatibility` for details about the SoC binaries.
43+
* :ref:`ug_nrf54h20_ironside_se_update` for instructions on updating the SoC binaries.
44+
2745
Samples and applications
2846
========================
2947

0 commit comments

Comments
 (0)