Skip to content

Commit 3328692

Browse files
FrancescoSernordicjm
authored andcommitted
doc: Update ABI comp page and 54H gs guide
Updated ABI comp page and 54H gs guide: Highlighted need to upgrade to the latest SoC binaries available. Signed-off-by: Francesco Domenico Servidio <[email protected]>
1 parent 7039452 commit 3328692

File tree

3 files changed

+162
-51
lines changed

3 files changed

+162
-51
lines changed

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

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -104,15 +104,16 @@ Install a terminal emulator, such as the `Serial Terminal app`_ (from the nRF Co
104104
Both of these terminal emulators start the required :ref:`toolchain environment <using_toolchain_environment>`.
105105

106106
.. _ug_nrf54h20_gs_bringup:
107+
.. _ug_nrf54h20_gs_bringup_bicr:
107108
.. _ug_nrf54h20_gs_bicr:
108109

109110
.. rst-class:: numbered-step
110111

111-
Programming the BICR
112-
********************
112+
Bring-up step: Programming the BICR
113+
***********************************
113114

114115
The Board Information Configuration Registers (BICR) are non-volatile memory (NVM) registers that contain information on how the nRF54H20 SoC must interact with other board elements, including information about power and clock delivery to the SoC.
115-
To prepare the nRF54H20 DK for first use, you must manually program the values of the BICR using a precompiled BICR binary file (:file:`bicr.hex`).
116+
To prepare the nRF54H20 DK for its first use, you must manually program the required values into the BICR using a precompiled BICR binary file (:file:`bicr.hex`).
116117

117118
1. Download the `nRF54H20 DK BICR binary file`_.
118119
#. Connect the nRF54H20 DK to your computer using the **DEBUGGER** port on the DK.
@@ -129,11 +130,12 @@ To prepare the nRF54H20 DK for first use, you must manually program the values o
129130
nrfutil device program --options chip_erase_mode=ERASE_NONE --firmware bicr.hex --core Application --serial-number <serial_number>
130131

131132
.. _ug_nrf54h20_SoC_binaries:
133+
.. _ug_nrf54h20_gs_bringup_soc_bin:
132134

133135
.. rst-class:: numbered-step
134136

135-
Programming the nRF54H20 SoC binaries
136-
*************************************
137+
Bring-up step: Programming the nRF54H20 SoC binaries
138+
****************************************************
137139

138140
.. note::
139141
To program the nRF54H20 SoC binaries based on IronSide SE on your nRF54H20 SoC-based device, your device must be in lifecycle state (LCS) ``EMPTY``.
@@ -142,11 +144,11 @@ Programming the nRF54H20 SoC binaries
142144
Devices already provisioned using SUIT-based binaries and in LCS ``RoT`` cannot be transitioned back to LCS ``EMPTY``.
143145
For more information, see :ref:`abi_compatibility`.
144146

145-
After programming the BICR, program the nRF54H20 SoC with the :ref:`nRF54H20 SoC binaries <abi_compatibility>`.
147+
After programming the BICR, program the :ref:`nRF54H20 SoC binaries <abi_compatibility>`.
146148
This bundle contains the precompiled firmware for the :ref:`Secure Domain <ug_nrf54h20_secure_domain>` and :ref:`System Controller <ug_nrf54h20_sys_ctrl>`.
147149
To program the nRF54H20 SoC binaries to the nRF54H20 DK, do the following:
148150

149-
1. Download the `nRF54H20 SoC binaries v22.2.0+14`_, compatible with the nRF54H20 DK v0.9.0 and later DK revisions.
151+
1. Download the `latest nRF54H20 SoC binaries`_.
150152

151153
.. note::
152154
On MacOS, ensure that the ZIP file is not unpacked automatically upon download.
@@ -155,10 +157,12 @@ To program the nRF54H20 SoC binaries to the nRF54H20 DK, do the following:
155157

156158
nrfutil device x-provision-nrf54h --firmware <path-to_bundle_zip_file> --serial-number <serial_number>
157159

160+
.. _ug_nrf54h20_gs_bringup_trasition:
161+
158162
.. rst-class:: numbered-step
159163

160-
Transitioning the nRF54H20 SoC to RoT
161-
*************************************
164+
Bring-up step: Transitioning the nRF54H20 SoC to RoT
165+
****************************************************
162166

163167
The current nRF54H20 DK comes with its lifecycle state (LCS) set to ``EMPTY``.
164168
To operate correctly, you must transition its lifecycle state to Root of Trust (``RoT``).

doc/nrf/links.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1934,6 +1934,8 @@
19341934

19351935
.. _`nRF54H20 SoC binaries v22.2.0+14`: https://files.nordicsemi.com/artifactory/SDSC/external/nrf54h20_soc_binaries_v22.2.0%2B14.zip
19361936

1937+
.. _`latest nRF54H20 SoC binaries`: https://files.nordicsemi.com/artifactory/SDSC/external/
1938+
19371939
.. ### Descr: Old 54H BICR file
19381940

19391941
.. _`BICR binary file`: https://files.nordicsemi.com/artifactory/SDSC/external/bicr_ext_loadcap.hex

doc/nrf/releases_and_maturity/abi_compatibility.rst

Lines changed: 147 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,24 @@ When ABI compatibility is maintained, binaries of one component can interface co
1919
For example, adding a new function to a library is typically an ABI-compatible change, as existing binaries remain functional.
2020
However, changes that affect data structure layouts, such as altering field order or size, break ABI compatibility because they change the memory layout expected by existing binaries.
2121

22-
ABI compatibility matrix for the nRF54H20 SoC binaries
23-
******************************************************
22+
ABI compatibility for the nRF54H20 SoC binaries
23+
***********************************************
2424

25-
.. caution::
26-
27-
* To use the most recent version of the |NCS|, you must provision your nRF54H20-based device with the compatible IronSide-based SoC binaries.
28-
Devices already provisioned using SUIT-based SoC binaries and in LCS ``RoT`` cannot be transitioned back to LCS ``EMPTY``.
25+
.. note::
26+
To use the most recent version of the |NCS|, always provision your nRF54H20 SoC-based device with the latest IronSide SE-based SoC binaries available.
2927

30-
For more information on provisioning devices, see :ref:`ug_nrf54h20_gs_bringup`.
28+
.. caution::
29+
The nRF54H20 SoC binaries do not support rollbacks to previous versions.
3130

32-
* The nRF54H20 SoC binaries only support specific versions of the |NCS| and do not support rollbacks to previous versions.
33-
Upgrading the nRF54H20 SoC binaries on your development kit might break the DK's compatibility with applications developed for earlier versions of the |NCS|.
31+
You must download the `latest nRF54H20 SoC binaries`_ for the nRF54H20 SoC.
3432

35-
To migrate your existing applications to the newest version of the |NCS|, see :ref:`migration_guides`.
33+
Legacy ABI compatibility matrix for the nRF54H20 SoC binaries
34+
=============================================================
3635

37-
The following table illustrates ABI compatibility between different versions of the nRF54H20 SoC binaries and the |NCS|:
38-
39-
.. list-table::
40-
:header-rows: 1
41-
42-
* - |NCS| versions
43-
- Compatible nRF54H20 SoC binaries version based on IronSide Secure Element (IronSide SE)
44-
* - |NCS| v3.1.0
45-
- `nRF54H20 SoC binaries v22.2.0+14`_, compatible with the nRF54H20 DK v0.9.0 and later DK revisions in LCS ``EMPTY``.
36+
The following table illustrates the legacy ABI compatibility between older versions of the nRF54H20 SoC binaries and older versions of the |NCS|:
4637

38+
.. caution::
39+
* Devices already provisioned using SUIT-based SoC binaries and in LCS ``RoT`` cannot be upgraded to IronSide SE.
4740

4841
.. list-table::
4942
:header-rows: 1
@@ -69,19 +62,131 @@ The following table illustrates ABI compatibility between different versions of
6962
* - |NCS| v2.6.99-cs2
7063
- nRF54H20 SoC binaries v0.3.3
7164

72-
Maintaining ABI compatibility ensures that the Secure Domain and System Controller firmware binaries do not need to be recompiled each time the application, radio binaries, or both are recompiled, as long as they are based on a compatible |NCS| version.
73-
Additionally, maintaining ABI compatibility allows the nRF54H20 SoC binary components to work together without recompilation when updating to newer |NCS| versions.
74-
7565
Provisioning the nRF54H20 SoC
7666
*****************************
7767

7868
To provision the nRF54H20 SoC using the nRF54H20 SoC binaries, see :ref:`ug_nrf54h20_gs_bringup`.
7969

80-
nRF54H20 SoC binaries v22.2.0+14 changelog
81-
******************************************
70+
nRF54H20 SoC binaries changelog
71+
*******************************
8272

8373
The following sections provide detailed lists of changes by component.
8474

75+
IronSide Secure Element (IronSide SE) v23.0.1+16
76+
================================================
77+
78+
Changed
79+
-------
80+
81+
* The domain-specific built-in keys identified by ``CRACEN_BUILTIN_*_ID``. (NCSDK-35202)
82+
* The way IronSide SE treats the ``UICR.VERSION`` field. (NCSDK-35253)
83+
84+
The erase value is now interpreted as the highest supported UICR format version.
85+
Other values must match a supported version or cause a boot error.
86+
Currently, only version 2.0 (``0x00020000``) is supported.
87+
* IronSide SE no longer disables RETAIN for every GPIO pin at boot. (NCSDK-35080)
88+
89+
Pins are now retained when the application boots, and the application must disable retention before using them.
90+
* ``UICR.LOCK`` can now be set in ``LCS_EMPTY`` without hindering LFCLK calibration. (NCSDK-34458)
91+
92+
Fixed
93+
-----
94+
95+
* EXMIF XIP region is now accessible. (NCSDK-35256)
96+
97+
IronSide Secure Element (IronSide SE) v23.0.0+15
98+
================================================
99+
100+
Added
101+
-----
102+
103+
* IronSide SE now supports most CRACEN PSA features.
104+
The available features correspond to the following configuration::
105+
106+
CONFIG_PSA_WANT_GENERATE_RANDOM=y
107+
CONFIG_PSA_WANT_ALG_CTR_DRBG=y
108+
CONFIG_PSA_WANT_ALG_CBC_PKCS7=y
109+
CONFIG_PSA_WANT_ALG_CBC_NO_PADDING=y
110+
CONFIG_PSA_WANT_ALG_CCM=y
111+
CONFIG_PSA_WANT_ALG_CHACHA20_POLY1305=y
112+
CONFIG_PSA_WANT_ALG_CMAC=y
113+
CONFIG_PSA_WANT_ALG_CTR=y
114+
CONFIG_PSA_WANT_ALG_DETERMINISTIC_ECDSA=y
115+
CONFIG_PSA_WANT_ALG_ECB_NO_PADDING=y
116+
CONFIG_PSA_WANT_ALG_ECDH=y
117+
CONFIG_PSA_WANT_ALG_ECDSA=y
118+
CONFIG_PSA_WANT_ALG_ECDSA_ANY=y
119+
CONFIG_PSA_WANT_ALG_GCM=y
120+
CONFIG_PSA_WANT_ALG_HKDF=y
121+
CONFIG_PSA_WANT_ALG_HMAC=y
122+
CONFIG_PSA_WANT_ALG_JPAKE=y
123+
CONFIG_PSA_WANT_ALG_PBKDF2_HMAC=y
124+
CONFIG_PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128=y
125+
CONFIG_PSA_WANT_ALG_PURE_EDDSA=y
126+
CONFIG_PSA_WANT_ALG_SHA_256=y
127+
CONFIG_PSA_WANT_ALG_SHA_384=y
128+
CONFIG_PSA_WANT_ALG_SHA_512=y
129+
CONFIG_PSA_WANT_ALG_SHA3_256=y
130+
CONFIG_PSA_WANT_ALG_SHA3_384=y
131+
CONFIG_PSA_WANT_ALG_SHA3_512=y
132+
CONFIG_PSA_WANT_ALG_SHAKE256_512=y
133+
CONFIG_PSA_WANT_ALG_SP800_108_COUNTER_CMAC=y
134+
CONFIG_PSA_WANT_ALG_SPAKE2P_HMAC=y
135+
CONFIG_PSA_WANT_ALG_SPAKE2P_CMAC=y
136+
CONFIG_PSA_WANT_ALG_SPAKE2P_MATTER=y
137+
CONFIG_PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS=y
138+
CONFIG_PSA_WANT_ALG_TLS12_PRF=y
139+
CONFIG_PSA_WANT_ALG_TLS12_PSK_TO_MS=y
140+
CONFIG_PSA_WANT_ALG_HKDF_EXTRACT=y
141+
CONFIG_PSA_WANT_ALG_HKDF_EXPAND=y
142+
CONFIG_PSA_WANT_ALG_ED25519PH=y
143+
CONFIG_PSA_WANT_ECC_MONTGOMERY_255=y
144+
CONFIG_PSA_WANT_ECC_SECP_R1_256=y
145+
CONFIG_PSA_WANT_ECC_SECP_R1_384=y
146+
CONFIG_PSA_WANT_ECC_SECP_R1_521=y
147+
CONFIG_PSA_WANT_ECC_TWISTED_EDWARDS_255=y
148+
CONFIG_PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE=y
149+
CONFIG_PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT=y
150+
CONFIG_PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT=y
151+
CONFIG_PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE=y
152+
CONFIG_PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY=y
153+
CONFIG_PSA_WANT_KEY_TYPE_AES=y
154+
CONFIG_PSA_WANT_AES_KEY_SIZE_128=y
155+
CONFIG_PSA_WANT_AES_KEY_SIZE_256=y
156+
CONFIG_PSA_WANT_KEY_TYPE_CHACHA20=y
157+
CONFIG_PSA_WANT_KEY_TYPE_PASSWORD=y
158+
CONFIG_PSA_WANT_KEY_TYPE_PASSWORD_HASH=y
159+
CONFIG_PSA_WANT_KEY_TYPE_SPAKE2P_KEY_PAIR_DERIVE=y
160+
CONFIG_PSA_WANT_KEY_TYPE_SPAKE2P_KEY_PAIR_EXPORT=y
161+
CONFIG_PSA_WANT_KEY_TYPE_SPAKE2P_KEY_PAIR_IMPORT=y
162+
CONFIG_PSA_WANT_KEY_TYPE_SPAKE2P_KEY_PAIR_GENERATE=y
163+
CONFIG_PSA_WANT_KEY_TYPE_SPAKE2P_PUBLIC_KEY=y
164+
165+
* Support for a secondary boot mode. (NCSDK-32171)
166+
167+
The secondary mode lets you define a separate application firmware that is started on boot error or when requested over IPC.
168+
This is configured through the ``UICR.SECONDARY`` registers and can be used for recovery or updates.
169+
* Support for ``UICR.WDTSTART``, which can be used to automatically start a local domain watchdog ahead of the application boot. (NCSDK-35046)
170+
* Support for PSA Internal Trusted Storage (ITS). (NCSDK-18548)
171+
172+
It is configured through the following ``UICR.SECURESTORAGE`` registers:
173+
174+
* ``UICR.SECURESTORAGE.CRYPTO`` - Enables persistent key storage for the PSA Crypto API.
175+
* ``UICR.SECURESTORAGE.ITS`` - Enables the PSA ITS API for managing other sensitive assets.
176+
* ``UICR.SECURESTORAGE.ENABLE`` and ``UICR.SECURESTORAGE.ADDRESS`` - Required to enable one or both features.
177+
178+
* Support for the IronSide SE DVFS service, replacing the NRFS DVFS service. (NRFX-7321)
179+
180+
Updated
181+
-------
182+
183+
* Renamed the release artifact from :file:`sysctrl.hex` to :file:`ironside_se.hex` to correctly reflect its content.
184+
185+
Removed
186+
-------
187+
188+
* NRFS DVFS service support.
189+
85190
IronSide Secure Element (IronSide SE) v22.2.0+14
86191
================================================
87192

@@ -105,17 +210,17 @@ Removed
105210
IronSide Secure Element (IronSide SE) v22.1.0+13
106211
================================================
107212

108-
* Added support for configuring TDD (CoreSight++) from local domains (NCSDK-33486).
213+
* Added support for configuring TDD (CoreSight++) from local domains. (NCSDK-33486)
109214

110215
IronSide Secure Element (IronSide SE) v22.0.4+12
111216
================================================
112217

113218
Fixed
114219
-----
115220

116-
* An issue where the device became stuck in recovery mode after performing a recovery upgrade (NCSDK-34258).
117-
* An issue where the eraseall operation, on a device in LCS ROT, was permitted regardless of the contents of UICR (NCSDK-34232).
118-
* An issue where the recovery firmware would incorrectly determine that UICR was corrupted (NCSDK-32241).
221+
* An issue where the device became stuck in recovery mode after performing a recovery upgrade. (NCSDK-34258)
222+
* An issue where the eraseall operation, on a device in LCS ROT, was permitted regardless of the contents of UICR. (NCSDK-34232)
223+
* An issue where the recovery firmware would incorrectly determine that UICR was corrupted. (NCSDK-32241)
119224

120225
Updated
121226
-------
@@ -130,11 +235,11 @@ Fixed
130235

131236
* psa_crypto:
132237

133-
* Bytes written are now correctly returned (in place of buffer size) (NCSDK-34172).
134-
* Added missing ECC_MONTGOMERY_255 configuration (NCSDK-34200).
135-
* Passing 0-sized buffers are now allowed for optional arguments (NCSDK-34171).
238+
* Bytes written are now correctly returned (in place of buffer size). (NCSDK-34172)
239+
* Added missing ECC_MONTGOMERY_255 configuration. (NCSDK-34200)
240+
* Passing 0-sized buffers are now allowed for optional arguments. (NCSDK-34171).
136241

137-
* The default owner ID of some peripherals, where previously it was set to SECURE or SYSCTRL instead of APPLICATION (NCSDK-34187).
242+
* The default owner ID of some peripherals, where previously it was set to SECURE or SYSCTRL instead of APPLICATION. (NCSDK-34187)
138243

139244
IronSide Secure Element (IronSide SE) v22.0.2+10
140245
================================================
@@ -219,7 +324,7 @@ IronSide Secure Element (IronSide SE) v21.0.1
219324
Added
220325
-----
221326

222-
* Boot report to be written to radio core (NCSDK-33583).
327+
* Boot report to be written to radio core. (NCSDK-33583)
223328

224329
Updated
225330
-------
@@ -242,17 +347,17 @@ Added
242347
* Support for the IronSide SE update service. (NCSDK-32173)
243348
This service allows updating IronSide SE firmware using the ``west ncs-ironside-se-update`` command.
244349
The update is performed over SWD, and the device must be in a debug mode.
245-
* Experimental support for a new UICR format (NCSDK-32444).
350+
* Experimental support for a new UICR format. (NCSDK-32444)
246351
At this stage, the functionality is mainly for internal testing and development, and user tools for interacting with UICR will be added at a later stage.
247-
* Boot report support (NCSDK-32393).
248-
* CPUCONF service for booting the radio core (NCSDK-32925).
352+
* Boot report support. (NCSDK-32393)
353+
* CPUCONF service for booting the radio core. (NCSDK-32925)
249354
Currently, only ``hello world`` is supported.
250-
* IronSide calls, the successor to SSF (NCSDK-32441).
355+
* IronSide calls, the successor to SSF. (NCSDK-32441).
251356

252357
Updated
253358
-------
254359

255-
* The limited PSA Crypto API is now implemented as an IronSide call (NCSDK-32912).
360+
* The limited PSA Crypto API is now implemented as an IronSide call. (NCSDK-32912)
256361
This replaces the temporary IPC mechanism from the last release.
257362

258363
Fixed
@@ -338,10 +443,10 @@ Updated
338443
Removed (from legacy SUIT-based SDFW)
339444
-------------------------------------
340445

341-
* SSF and all SSF services have been disabled (NCSDK-32000).
342-
* Resource configuration based on UICR has been disabled (NCSDK-31999).
343-
* The SDFW ADAC interface has been disabled (NCSDK-31994).
344-
* SUIT is no longer supported (NCSDK-31996).
446+
* SSF and all SSF services have been disabled. (NCSDK-32000)
447+
* Resource configuration based on UICR has been disabled. (NCSDK-31999)
448+
* The SDFW ADAC interface has been disabled. (NCSDK-31994)
449+
* SUIT is no longer supported. (NCSDK-31996)
345450

346451
nRF54H20 SoC binaries v0.9.6 changelog
347452
**************************************

0 commit comments

Comments
 (0)