Skip to content

Commit 60eaa90

Browse files
committed
doc: ironside: Update architecture section
Adds more details for architecture of update procedure, as well as a graph of the process between local and secure domains. Signed-off-by: Stephen Stauts <stephen.stauts@nordicsemi.no>
1 parent cc1e524 commit 60eaa90

File tree

2 files changed

+49
-9
lines changed

2 files changed

+49
-9
lines changed
102 KB
Loading

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

Lines changed: 49 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -177,20 +177,60 @@ See the :zephyr:code-sample:`update application <nrf_ironside_update>` sample fo
177177
.. _ug_nrf54h20_ironside_se_update_architecture:
178178

179179
Architecture
180-
************
180+
============
181181

182-
The structure of the update procedure consists of the following steps:
182+
The |ISE| update process starts when Application firmware invokes the :ref:`update service <ug_nrf54h20_ironside_se_update_service>` with the address of where the update release package has been written in MRAM.
183183

184-
1. The :zephyr:code-sample:`update application <nrf_ironside_update>` runs on the application core and communicates with |ISE| using the :ref:`update service <ug_nrf54h20_ironside_se_update_service>`.
184+
The diagram below illustrates the process flow between Application, |ISE|, and Secure Domain ROM (SDROM) in performing the firmware update.
185185

186-
#. The application invokes the IronSide SE update service and passes the parameters that correspond to the location of the HEX file (blob metadata) of the |ISE| firmware update in memory.
186+
.. figure:: images/nrf54h20_ironside_update.svg
187187

188-
#. The |ISE| validates the update parameters and writes the update metadata to the Secure Information Configuration Registers (SICR).
188+
.. _ug_nrf54h20_ironside_se_update_architecture_app:
189189

190-
#. After the service call completes, the IronSide SE firmware updates the internal state of the device.
190+
Application side
191+
----------------
191192

192-
#. The application prints the return value of the service call and outputs information from the update HEX file.
193+
The following describes the procedure for an |ISE| update from Application firmware:
193194

194-
#. 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.
195+
1. Program update image into MRAM.
196+
#. Call the |ISE| update service with update image location.
197+
#. Verify update request is acknowledged.
198+
#. Trigger a reset.
199+
#. Check version in boot report on startup.
195200

196-
Once the operation has completed, you can read the boot report to verify that the update has taken place.
201+
.. _ug_nrf54h20_ironside_se_update_architecture_ise:
202+
203+
|ISE| side
204+
----------
205+
206+
The |ISE| side of the update process involves both |ISE| firmware and SDROM.
207+
208+
The following describes the update procedure in the |ISE| upon request:
209+
210+
1. Service receives update request with update image location in MRAM.
211+
#. Update request is validated.
212+
#. SICR registers are updated with image metadata.
213+
#. Service request is acknowledged.
214+
#. Operation continues normally until a reset is performed.
215+
216+
Once the device comes out of reset, SDROM performs the following:
217+
218+
1. Enables write-protection on the update image and firmware contents.
219+
#. Checks firmware metadata stored in SICR registers against address range and size constraints.
220+
#. Verifies update version against current firmware to prevent downgrades.
221+
#. Computes and validates digest of the public key.
222+
#. Checks public key is not revoked.
223+
#. Computes and validates digest of update firmware.
224+
#. Verifies signature of the update firmware.
225+
#. Updates SICR's update status with result.
226+
227+
If any of the above steps fail, the installation is aborted and the existing |ISE| is booted.
228+
Otherwise, the update firmware's metadata is stored in SICR and the new image is installed.
229+
230+
If the updated firmware is for |ISE| Recovery, the device is reset into Safe Mode after installation.
231+
When Safe Mode has acknowledged its update, the device is reset to boot back into the |ISE| context.
232+
233+
On boot, |ISE| reads the update result from the SICR update status register and writes the value into the boot report.
234+
235+
.. note::
236+
|ISE| does not delete the update image contents from MRAM after a successful update.

0 commit comments

Comments
 (0)