Skip to content

Commit cc1e524

Browse files
committed
doc: ironside: Consolidate release archive info
Programming steps are discussed in the update docs, as that process is either part of the manual update or provisioning; the latter being documented elsewhere. Describing the ZIP archive is expanded into a release deliverable section and moved into the update context. Default configurations aren't strictly related to either but are still important to discuss in general ISE. Ref: NCSDK-33336 Signed-off-by: Stephen Stauts <stephen.stauts@nordicsemi.no>
1 parent c2683ad commit cc1e524

File tree

2 files changed

+63
-42
lines changed

2 files changed

+63
-42
lines changed

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

Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -23,56 +23,37 @@ The IronSide Secure Element (|ISE|) is a firmware for the :ref:`Secure Domain <u
2323
* PSA Crypto service (:ref:`ug_crypto_architecture_implementation_standards_ironside`)
2424
* PSA Internal Trusted Storage service
2525

26-
See the following pages for details on some |ISE| features and subsystems.
26+
See the following pages for details on |ISE| features and subsystems.
2727

2828
.. toctree::
2929
:maxdepth: 2
3030

3131
ug_nrf54h20_ironside_update
3232

33-
.. _ug_nrf54h20_ironside_se_programming:
33+
.. _ug_nrf54h20_ironside_defaults:
3434

35-
Programming |ISE| on the nRF54H20 SoC
36-
*************************************
35+
Default policies
36+
****************
3737

38-
|ISE| is released independently of the |NCS| release cycle and is provided as a ZIP archive that contains the following components:
38+
By default, |ISE| configures the system with the following access policies on the nRF54H20 SoC:
3939

4040
.. list-table::
4141
:header-rows: 1
4242
:widths: auto
4343

44-
* - Component
45-
- File
46-
- Description
47-
* - IronSide SE firmware
48-
- :file:`ironside_se.hex`
49-
- Used when bringing up a new DK and programming both the recovery firmware and |ISE| for the first time.
50-
* - IronSide SE update firmware
51-
- :file:`ironside_se_update.hex`
52-
- Used when updating |ISE|.
53-
* - IronSide SE Recovery update firmware
54-
- :file:`ironside_se_recovery_update.hex`
55-
- The recovery firmware, reserved for future recovery operations. Currently, it does not provide user-facing functionality. Used when updating the recovery firmware.
56-
* - Update application
57-
- :file:`update_application.hex`
58-
- The local domain :zephyr:code-sample:`update application <nrf_ironside_update>` that is used to perform an |ISE| update. See :ref:`ug_nrf54h20_ironside_se_update_manual`.
59-
60-
For instructions on how to program |ISE|, see :ref:`ug_nrf54h20_SoC_binaries`.
61-
62-
By default, the nRF54H20 SoC uses the following memory and access configurations:
63-
64-
* MRAMC configuration: MRAM operates in Direct Write mode with READYNEXTTIMEOUT disabled.
65-
* MPC configuration: All memory not reserved by Nordic firmware is accessible with read, write, and execute (RWX) permissions by any domain.
66-
* TAMPC configuration: The access ports (AP) for the local domains are enabled, allowing direct programming of all the memory not reserved by Nordic firmware in the default configuration.
67-
44+
* - Configuration
45+
- Policy
46+
* - MRAMC
47+
- MRAM operates in Direct Write mode with READYNEXTTIMEOUT disabled.
48+
* - MPC
49+
- All memory not reserved by Nordic firmware is accessible with read, write, and execute (RWX) permissions by any domain.
50+
* - TAMPC
51+
- Access ports (AP) for the local domains are enabled, allowing direct programming of all the memory not reserved by Nordic firmware in the default configuration.
6852

6953
.. note::
7054
* The Radio Domain AP is only usable when the Radio domain has booted.
7155
* Access to external memory (EXMIF) requires a non-default configuration of the GPIO.CTRLSEL register.
7256

73-
You can protect global domain memory from write operations by configuring the UICR registers.
74-
To remove these protections and disable all other protection mechanisms enforced through UICR settings, perform an ``ERASEALL`` operation.
75-
7657
.. _ug_nrf54h20_ironside_se_uicr:
7758

7859
Global Resource configuration
@@ -120,9 +101,12 @@ The following UICR fields are supported:
120101
+----------------------+---------------------------------------------------------------------+
121102

122103
.. note::
123-
If no UICR values are programmed, |ISE| applies a set of default configurations.
104+
If no UICR values are programmed, |ISE| applies a set of :ref:`default configurations <ug_nrf54h20_ironside_defaults>`.
124105
Applications that do not require custom settings can rely on these defaults without modifying the UICR.
125106

107+
Performing an :ref:`ERASEALL <ug_nrf54h20_ironside_se_eraseall_command>` operation will erase all UICR contents and remove all protection mechanisms enforced through UICR.
108+
See :ref:`ug_nrf54h20_ironside_se_protecting` for more information on protecting UICR contents in the field.
109+
126110
UICR image generation
127111
=====================
128112

@@ -313,6 +297,8 @@ However, it does not prevent erase operations initiated through other means, suc
313297
If this configuration is enabled and :kconfig:option:`CONFIG_GEN_UICR_LOCK` is also set, it is no longer possible to modify the UICR in any way.
314298
Therefore, this configuration should only be enabled during the final stages of production.
315299

300+
.. _ug_nrf54h20_ironside_se_protected_memory:
301+
316302
UICR.PROTECTEDMEM
317303
=================
318304

@@ -653,7 +639,6 @@ For information on how to configure these UICR settings, see :ref:`ug_nrf54h20_i
653639
* :kconfig:option:`CONFIG_GEN_UICR_ERASEPROTECT` - Prevents bulk erasure of protected memory.
654640
It blocks all ``ERASEALL`` operations on NVR0, preserving UICR settings even if an attacker attempts a full-chip erase.
655641

656-
657642
.. _ug_nrf54h20_ironside_se_boot_report:
658643

659644
|ISE| boot report

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

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,43 @@ Updating |ISE|
77
:local:
88
:depth: 2
99

10-
Updating the |ISE| is possible after it has been initially :ref:`provisioned <ug_nrf54h20_SoC_binaries>` on the nRF54H20 SoC.
10+
Updating the |ISE| is only possible after it has been initially :ref:`provisioned <ug_nrf54h20_SoC_binaries>` on the nRF54H20 SoC.
1111

1212
The update operation is initiated through its :ref:`update service <ug_nrf54h20_ironside_se_update_service>` at runtime by application firmware.
1313

14+
.. _ug_nrf54h20_ironside_se_deliverables:
15+
16+
Release package
17+
***************
18+
19+
The |ISE| is released independently of the |NCS| release cycle and is provided as a ZIP archive.
20+
21+
The archive is used to update the existing |ISE| firmware on the nRF54H20 and consists of the following components:
22+
23+
.. list-table::
24+
:header-rows: 1
25+
:widths: auto
26+
27+
* - Component
28+
- File
29+
- Description
30+
* - IronSide SE firmware
31+
- :file:`ironside_se.hex`
32+
- Used when provisioning a new DK with |ISE| and |ISE| Recovery firmware for the first time.
33+
* - IronSide SE update firmware
34+
- :file:`ironside_se_update.hex`
35+
- Used when updating |ISE|.
36+
* - IronSide SE Recovery update firmware
37+
- :file:`ironside_se_recovery_update.hex`
38+
- The recovery firmware, reserved for future recovery operations. Currently, it does not provide user-facing functionality. Used when updating the recovery firmware.
39+
* - Update application
40+
- :file:`update_application.hex`
41+
- The local domain :zephyr:code-sample:`update application <nrf_ironside_update>` that is used to perform an |ISE| update. See :ref:`ug_nrf54h20_ironside_se_update_architecture` for details on its role.
42+
43+
For more information on |ISE| release binaries, see :ref:`abi_compatibility`.
44+
45+
For instructions on how to provision the nRF54H20 with |ISE| for the first time, see :ref:`ug_nrf54h20_SoC_binaries`.
46+
1447
.. _ug_nrf54h20_ironside_se_updating:
1548

1649
Performing an update
@@ -31,15 +64,15 @@ Manual update
3164

3265
.. important::
3366
Manual updates will replace existing firmware running in the Application core.
34-
User application firmware must be reprogrammed after a successfully updating the device.
67+
User application firmware must be reprogrammed after successfully updating the device.
3568

3669
.. tabs::
3770

3871
.. group-tab:: West
3972

4073
The |NCS| defines the west ``ncs-ironside-se-update`` command to update |ISE| firmware on a device via the debugger.
4174

42-
This command takes the nRF54H20 SoC binary ZIP file and uses the |ISE| update service to update both the |ISE| and |ISE| Recovery (or optionally just one of them). It uses the following syntax to program the release archive to the device:
75+
This command takes the nRF54H20 SoC binary ZIP file and uses the |ISE| update service to update both the |ISE| and |ISE| Recovery (or optionally just one of them):
4376

4477
.. code-block:: console
4578
@@ -126,15 +159,18 @@ Manual update
126159
|ISE| update service
127160
********************
128161

129-
|ISE| exposes an update service that allows local domains to trigger the update process of |ISE| itself.
162+
|ISE| provides an update service that allows local domains to trigger the update process of |ISE| itself.
130163

131-
The update service requires a release of |ISE| and/or the |ISE| Recovery images to be programmed within a valid memory range that is accessible by the Application core.
164+
The update service requires a release of |ISE| or the |ISE| Recovery image to be programmed within a valid memory range that is accessible by the Application core.
165+
See :file:`nrf_ironside/update.h` for more details on the supported memory range.
166+
167+
After the Application has invoked the service, |ISE| will update on the next system reset.
168+
The update can be verified by checking the listed versions in the :ref:`boot report <ug_nrf54h20_ironside_se_boot_report>` on startup.
132169

133170
.. note::
134-
See :file:`nrf_ironside/update.h` for more details on the supported memory range.
171+
Updating through the service is limited to a single image at a time.
135172

136-
After the Application has invoked the service, |ISE| will update on the next system reset.
137-
The update can be verified by checking the listed versions in the boot report on startup.
173+
Updating both |ISE| and |ISE| Recovery images requires performing two rounds of the update service procedure, in which the |ISE| Recovery image is updated first.
138174

139175
See the :zephyr:code-sample:`update application <nrf_ironside_update>` sample for an example on calling the service at runtime.
140176

0 commit comments

Comments
 (0)