You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/nrf/app_dev/device_guides/nrf54h/ug_nrf54h20_custom_pcb.rst
+1-9Lines changed: 1 addition & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -204,13 +204,5 @@ Update the nRF54H20 SoC binaries
204
204
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.
205
205
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).
206
206
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`.
216
208
For more information on the nRF54H20 SoC binaries, see :ref:`abi_compatibility`.
Copy file name to clipboardExpand all lines: doc/nrf/app_dev/device_guides/nrf54h/ug_nrf54h20_ironside.rst
+135-9Lines changed: 135 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,7 @@ Distribution
22
22
************
23
23
24
24
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`.
25
26
26
27
.. _ug_nrf54h20_ironside_se_uicr:
27
28
@@ -494,10 +495,21 @@ UICR.SECONDARY.MPCCONF
494
495
495
496
.. _ug_nrf54h20_ironside_se_programming:
496
497
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`.
499
510
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`.
501
513
502
514
By default, the nRF54H20 SoC uses the following memory and access configurations:
503
515
@@ -511,6 +523,120 @@ By default, the nRF54H20 SoC uses the following memory and access configurations
511
523
Global domain memory can be protected from write operations by configuring UICR registers.
512
524
To remove these protections and disable all other protection mechanisms enforced through UICR settings, perform an ``ERASEALL`` operation.
513
525
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:
@@ -630,7 +756,7 @@ The secondary firmware feature provides an alternative boot path that can be tri
630
756
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.
631
757
632
758
.. 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.
634
760
635
761
.. note::
636
762
The term "secondary slot" and "secondary image" are used in the MCUboot context.
@@ -642,15 +768,15 @@ Configuration and triggering
642
768
Configuring a secondary firmware is optional and is done through the ``UICR.SECONDARY`` fields.
643
769
644
770
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.
646
772
Setting bit 5 in ``CTRLAP.BOOTMODE`` will also trigger secondary firmware.
647
773
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:
649
775
650
776
* The integrity check of the memory specified in ``UICR.PROTECTEDMEM`` fails.
651
777
* Any boot failure occurs, such as missing primary firmware or failure to apply ``UICR.PERIPHCONF`` or ``UICR.MPCCONF`` configurations.
652
778
* 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.
654
780
655
781
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.
656
782
@@ -661,12 +787,12 @@ The secondary firmware can be protected through integrity checks by enabling ``U
661
787
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.
662
788
663
789
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.
665
791
666
792
Update
667
793
======
668
794
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.
670
796
The secondary image can be updated by other components as long as ``UICR.SECONDARY.PROTECTEDMEM`` is not set.
671
797
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``.
0 commit comments