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
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>
Copy file name to clipboardExpand all lines: doc/nrf/app_dev/device_guides/nrf54h/ug_nrf54h20_ironside.rst
+19-34Lines changed: 19 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,56 +23,37 @@ The IronSide Secure Element (|ISE|) is a firmware for the :ref:`Secure Domain <u
23
23
* PSA Crypto service (:ref:`ug_crypto_architecture_implementation_standards_ironside`)
24
24
* PSA Internal Trusted Storage service
25
25
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.
27
27
28
28
.. toctree::
29
29
:maxdepth:2
30
30
31
31
ug_nrf54h20_ironside_update
32
32
33
-
.. _ug_nrf54h20_ironside_se_programming:
33
+
.. _ug_nrf54h20_ironside_defaults:
34
34
35
-
Programming |ISE| on the nRF54H20 SoC
36
-
*************************************
35
+
Default policies
36
+
****************
37
37
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:
39
39
40
40
.. list-table::
41
41
:header-rows: 1
42
42
:widths: auto
43
43
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.
68
52
69
53
.. note::
70
54
* The Radio Domain AP is only usable when the Radio domain has booted.
71
55
* Access to external memory (EXMIF) requires a non-default configuration of the GPIO.CTRLSEL register.
72
56
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
-
76
57
.. _ug_nrf54h20_ironside_se_uicr:
77
58
78
59
Global Resource configuration
@@ -120,9 +101,12 @@ The following UICR fields are supported:
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>`.
124
105
Applications that do not require custom settings can rely on these defaults without modifying the UICR.
125
106
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
+
126
110
UICR image generation
127
111
=====================
128
112
@@ -313,6 +297,8 @@ However, it does not prevent erase operations initiated through other means, suc
313
297
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.
314
298
Therefore, this configuration should only be enabled during the final stages of production.
315
299
300
+
.. _ug_nrf54h20_ironside_se_protected_memory:
301
+
316
302
UICR.PROTECTEDMEM
317
303
=================
318
304
@@ -653,7 +639,6 @@ For information on how to configure these UICR settings, see :ref:`ug_nrf54h20_i
653
639
* :kconfig:option:`CONFIG_GEN_UICR_ERASEPROTECT` - Prevents bulk erasure of protected memory.
654
640
It blocks all ``ERASEALL`` operations on NVR0, preserving UICR settings even if an attacker attempts a full-chip erase.
Copy file name to clipboardExpand all lines: doc/nrf/app_dev/device_guides/nrf54h/ug_nrf54h20_ironside_update.rst
+44-8Lines changed: 44 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,10 +7,43 @@ Updating |ISE|
7
7
:local:
8
8
:depth: 2
9
9
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.
11
11
12
12
The update operation is initiated through its :ref:`update service <ug_nrf54h20_ironside_se_update_service>` at runtime by application firmware.
13
13
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
+
14
47
.. _ug_nrf54h20_ironside_se_updating:
15
48
16
49
Performing an update
@@ -31,15 +64,15 @@ Manual update
31
64
32
65
.. important::
33
66
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.
35
68
36
69
.. tabs::
37
70
38
71
.. group-tab:: West
39
72
40
73
The |NCS| defines the west ``ncs-ironside-se-update`` command to update |ISE| firmware on a device via the debugger.
41
74
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):
43
76
44
77
.. code-block:: console
45
78
@@ -126,15 +159,18 @@ Manual update
126
159
|ISE| update service
127
160
********************
128
161
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.
130
163
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.
132
169
133
170
.. 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.
135
172
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.
138
174
139
175
See the :zephyr:code-sample:`update application <nrf_ironside_update>` sample for an example on calling the service at runtime.
0 commit comments