1.. zephyr:code-sample:: nrf_ironside_update
2   :name: Nordic IronSide SE firmware update
3
4   Update the Nordic IronSide SE firmware.
5
6Overview
7********
8
9The Nordic IronSide SE Update sample updates the IronSide SE firmware on a SoC that already has IronSide SE installed.
10It can update both the main image and the recovery image of IronSide SE using the IronSide SE firmware release ZIP file.
11
12Update procedure
13****************
14
15The update procedure works as follows:
16
171. The application invokes the IronSide SE update service and passes the parameters that correspond to the location of the HEX file of the IronSide SE firmware update.
18
19#. The application prints the return value of the service call and outputs information from the update HEX file.
20
21#. After the service call completes, the IronSide SE firmware updates the internal state of the device.
22
23#. The firmware installs the update during the next device boot.
24   This operation can take several seconds.
25
26Once the operation has completed, you can read the boot report to verify that the update has taken place.
27
28Building and running the application for nrf54h20dk/nrf54h20/cpuapp
29*******************************************************************
30
31.. note::
32   You can use this application only when there is already a version of IronSide SE installed on the device.
33
341. Unzip the IronSide SE release ZIP to get the update hex file:
35
36   .. code-block:: console
37
38      unzip nrf54h20_soc_binaries_v.*.zip
39
40#. Program the appropriate update hex file from the release ZIP using one (not both) of the following commands:
41
42   a) To update IronSide SE firmware:
43
44      .. code-block:: console
45
46         nrfutil device program --traits jlink --firmware update/ironside_se_update.hex
47
48   b) To update IronSide SE recovery firmware:
49
50      .. code-block:: console
51
52         nrfutil device program --traits jlink --firmware update/ironside_se_recovery_update.hex
53
54#. Build and program the application:
55
56   .. zephyr-app-commands::
57      :zephyr-app: samples/boards/nordic/nrf_ironside/update
58      :board: nrf54h20dk/nrf54h20/cpuapp
59      :goals: flash
60
61#. Trigger a reset:
62
63.. code-block:: console
64
65   nrfutil device reset --reset-kind RESET_PIN --traits jlink
66
67#. Check that the new version is installed:
68
69   .. code-block:: console
70
71      # Read the version fields from the boot report
72      nrfutil x-read --direct --address 0x2f88fd04 --bytes 16 --traits jlink
73      # Read the update status in the boot report
74      nrfutil x-read --direct --address 0x2f88fd24 --bytes 4 --traits jlink
75