Skip to content

Commit 600f876

Browse files
FrancescoSeranangl
authored andcommitted
doc: Updated H20 arch docs
Updated H20 arch docs. Updated references to SDFW in 54H docs Signed-off-by: Francesco Domenico Servidio <[email protected]>
1 parent 26a3c07 commit 600f876

8 files changed

+53
-51
lines changed

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

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.. _ug_nrf54h20_architecture_boot:
22

3-
nRF54H20 Boot Sequence
3+
nRF54H20 boot sequence
44
######################
55

66
.. contents::
@@ -28,14 +28,14 @@ If the system was active and entered the Soft Off sleep state, the system perfor
2828

2929
During cold boot the system has no (or little application-defined) state retained in its RAM memory or hardware registers and performs full initialization.
3030

31-
Cold Boot Sequence
31+
Cold boot features
3232
******************
3333

3434
The nRF54H20 boot sequence has two key features:
3535

3636
* An immutable boot ROM provides the initial :term:`Root of Trust (RoT)`.
37-
This boot ROM is responsible for verifying the secure domain firmware signature before allowing the code to be executed.
38-
* The secure domain acts as the boot master in the system.
37+
This boot ROM is responsible for verifying the IronSide Secure Element (IronSide SE) signature before allowing the code to be executed.
38+
* The Secure Domain acts as the boot master in the system.
3939
It completes the allocation of all the global resources before any other local domain is allowed to execute.
4040
This order of operation is needed for robustness and security of the system.
4141
It ensures that global resources are allocated for other local domains before any of them has opportunity to access global resources (correct access to allocated resources, or tries of malicious access to resources owned by other domains).
@@ -59,20 +59,19 @@ See the following overview of the boot sequence, where the left-most block indic
5959

6060
The following is a description of the boot sequence steps:
6161

62-
1. Immediately after reset, the SysCtrl CPU starts executing code from a ROM memory in Global Domain.
63-
This ROM code perform chip calibration, like trim and power-up the MRAM macro.
64-
This ROM code does not affect the runtime services offered by SysCtrl firmware during the secondary boot stage.
62+
1. Immediately after reset, the SysCtrl CPU starts executing code from the ROM memory in the global domain.
63+
This code performs essential chip-calibration tasks, such as trimming and powering up the MRAM macro, without affecting the runtime services provided by the SysCtrl firmware during the secondary boot stage.
6564

66-
#. The SysCtrl ROM powers up the secure domain and then halts.
65+
#. The SysCtrl ROM powers up the Secure Domain and then halts.
6766

68-
#. The secure domain is taken out of reset (as the first local domain), and the Cortex-M33 CPU inside the secure domain automatically starts executing code from a local ROM memory.
69-
As the MRAM is now calibrated and working correctly, the secure domain ROM can perform signature verification of the secure domain firmware components installed into the MRAM.
70-
The secure domain ROM also configures the device according to the current life-cycle state (LCS) and extracts silicon-unique fingerprints from the physical unclonable function (PUF) in GD , retaining this inside CRACEN.
67+
#. The Secure Domain is taken out of reset (as the first local domain), and the Cortex-M33 CPU inside the Secure Domain automatically starts executing code from a local ROM memory.
68+
As the MRAM is now calibrated and working correctly, the Secure Domain ROM can perform signature verification of the IronSide SE components installed into the MRAM.
69+
The Secure Domain ROM also configures the device according to the current life-cycle state (LCS) and extracts silicon-unique fingerprints from the physical unclonable function (PUF) in GD , retaining this inside CRACEN.
7170

72-
#. If the secure domain firmware signature is valid, the secure domain ROM reconfigures ROM memory as non-executable and non-readable and then branches into the firmware stored in MRAM.
71+
#. If IronSide SE signature is valid, the Secure Domain ROM reconfigures ROM memory as non-executable and non-readable and then branches into the firmware stored in MRAM.
7372
This is the first step of the primary boot stage where a user-installable firmware component is executed by any CPU in the system.
7473

75-
#. At the end of the primary boot stage, the secure domain firmware configures and restricts access to all global resources, and initiates the secondary boot stage.
74+
#. At the end of the primary boot stage, IronSide SE configures and restricts access to all global resources, and initiates the secondary boot stage.
7675

7776
#. In the secondary boot stage, SysCtrl and other local domains are released from reset and in parallel start to execute their respective MRAM firmware components.
7877

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ In such cases, developers must:
130130

131131
1. Initialize the IPC backend.
132132

133-
GDFS relies on Interprocessor Communication (IPC) to exchange configuration requests and responses between the application core and the System Controller firmware (SCFW).
133+
GDFS relies on :ref:`interprocessor communication (IPC) <ug_nrf54h20_architecture_ipc>` to exchange configuration requests and responses between the application core and the System Controller Firmware (SCFW) component of the IronSide Secure Element (IronSide SE).
134134
Before invoking GDFS functions, the application must properly initialize the underlying IPC backend.
135135

136136
#. Initialize GDFS and configure handlers.

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

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.. _ug_nrf54h20_architecture_cpu:
22

3-
nRF54H20 Domains
3+
nRF54H20 domains
44
################
55

66
.. contents::
@@ -93,14 +93,14 @@ You can also leave the core running Nordic's default protocol stack software and
9393

9494
While the Radio CPU or any peripheral in Radio's local APB2 bus (including the radio) is active, the 32 MHz crystal oscillator is enabled, and the radio itself is clocked from this clock source.
9595

96-
Global Domain
96+
Global domain
9797
*************
9898

99-
The Global Domain contains most of the memory and peripherals of the nRF54H20.
99+
The global domain contains most of the memory and peripherals of the nRF54H20.
100100
This offers flexibility to assign memory regions and peripherals to different cores.
101101
If this flexibility is not needed, it is possible to use the |NCS| defaults, where most of the memory and peripherals are assigned to the application core.
102102

103-
The Global Domain includes two sets of power domains:
103+
The global domain includes two sets of power domains:
104104

105105
* The low-leakage power domains runs at a clock speed of 16 MHz and contains the peripherals that do not need a higher clock speed than this.
106106
* The high-speed power domains contains the main memories (MRAM and RAM) and high-speed peripherals that have clock speeds higher than 16 MHz.
@@ -121,14 +121,15 @@ This processor is suitable for the following use cases:
121121
It has been optimized for using very few clock cycles to service interrupts and can start and stop quickly.
122122
Since the PPR is running from the same clock as the low-leakage peripherals, it does not need to implement any wait cycles to access peripheral registers.
123123

124+
For information on how to use the PPR, see :ref:`ug_nrf54h20_ppr`.
125+
124126
Fast Lightweight Processor (FLPR)
125127
=================================
126128

127129
The Fast Lightweight Processor (FLPR, pronounced Flipper) is a VPR core running at up to 320 MHz, located in the high-speed area of the Global Domain.
128130
This CPU is intended to implement software-defined peripherals.
129131

130-
.. note::
131-
FLPR firmware support is not available during the customer sampling.
132+
For information on how to use the FLPR, see :ref:`ug_nrf54h20_flpr`.
132133

133134
.. _ug_nrf54h20_secure_domain:
134135

@@ -142,7 +143,10 @@ The Secure Domain has its own CPU, local RAM, and local peripherals to provide b
142143
The Secure Domain provides the initial root of trust (RoT), handles all the global resource allocation, acts as a trusted third party (TTP) between other MCU domains, and is used to secure cryptographic operations.
143144
Since the nRF54H platform supports global resource sharing, where memory partitions and peripherals in the global domain can be assigned to different local domains, the Secure Domain Firmware controls this partitioning while also acting as the boot master for the entire system.
144145

145-
The Secure Domain Firmware (SDFW) exposes security-related services to the Cores in the system located in local domains (like Application and Radio).
146+
IronSide Secure Element (IronSide SE) is part of the nRF54H20 SoC binaries.
147+
It runs on the Secure Domain and exposes security-related services to the Cores in the system located in local domains (like Application and Radio).
148+
149+
For more information on IronSide SE and the nRF54H20 SoC binaries, see :ref:`abi_compatibility` and :ref:`ug_nrf54h20_ironside`.
146150

147151
.. _ug_nrf54h20_secure_domain_cracen:
148152

@@ -168,6 +172,10 @@ System Controller
168172
*****************
169173

170174
System Controller is a VPR that implements system startup and power management functionalities that in the past would have been implemented in hardware.
175+
The System Controller Firmware (SCFW) is a component of the IronSide Secure Element (IronSide SE), and it is included in the nRF54H20 SoC binaries.
176+
177+
For more information on the nRF54H20 SoC binaries, see :ref:`abi_compatibility`.
178+
171179

172180
Cores management
173181
****************

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.. _ug_nrf54h20_architecture_ipc:
22

3-
Interprocessor Communication in nRF54H20
3+
Interprocessor communication in nRF54H20
44
########################################
55

66
.. contents::
@@ -11,7 +11,7 @@ Interprocessor communication (IPC) is the communication between different CPUs (
1111
The nRF54H20 includes several types of CPUs that are optimized for different types of workloads.
1212
This provides an asymmetric multiprocessing environment where you can freely select the CPU that is best suited to the workloads that compose your application.
1313

14-
Interprocessor Communication is required in asymmetric multiprocessing environments to share services' requests, responses, and data between processors.
14+
Interprocessor communication is required in asymmetric multiprocessing environments to share services' requests, responses, and data between processors.
1515

1616
The following sections describe the communication protocol used for IPC in |NCS| for the nRF54H20 SoC.
1717
They also include an overview of the connection scheme between the cores available in the system.
@@ -99,10 +99,10 @@ The following tables show signals received only by specified cores.
9999

100100
Some of the channels in BELLBOARDs and VEVIFs are reserved for functions different from IPC.
101101

102-
MAC, Network, Transport
102+
MAC, network, transport
103103
=======================
104104

105-
The layers responsible for maintaining a stable full-duplex stream of data between two cores (MAC, Network, Transport) are implemented in an IPC transport library.
105+
The layers responsible for maintaining a stable full-duplex stream of data between two cores (MAC, network, transport) are implemented in an IPC transport library.
106106
The default IPC transport library for nRF54H20 is :ref:`ICMsg <zephyr:ipc_service_backend_icmsg>`.
107107
This lightweight library maintains the connection between a pair of cores for each IPC instance with minimal memory overhead.
108108
Each IPC instance between the application core and the PPR core requires an instance of the ICMsg library.
@@ -140,7 +140,7 @@ It is recommended to use the ipc_service API to perform inter-processor communic
140140

141141
For more information, consult the :ref:`IPC service <zephyr:ipc_service>` library documentation.
142142

143-
Presentation and Application layers
143+
Presentation and application layers
144144
===================================
145145

146146
The presentation and application layers are connection specific.
@@ -182,10 +182,10 @@ These services are hidden behind Zephyr APIs available in the application core,
182182
All services can be enabled simultaneously using separated endpoints in a shared IPC instance.
183183
You can implement other services running in the radio core and expose them to the application core using more endpoints from the shared IPC instance.
184184

185-
Secure Domain core
186-
==================
185+
Secure Domain
186+
=============
187187

188-
The Secure Domain core exposes security-related services to the other local cores in the system (Application, Radio).
188+
The Secure Domain exposes security-related services to the other local cores in the system (application, radio).
189189
The list of services also includes:
190190

191191
* Key management

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

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,15 @@
11
.. _ug_nrf54h20_architecture_lifecycle:
22

3-
nRF54H20 lifecycle states
4-
#########################
3+
nRF54H20 SoC lifecycle states
4+
#############################
55

66
.. contents::
77
:local:
88
:depth: 2
99

10-
The Secure Domain ROM firmware defines the lifecycle states (LCS) for the nRF54H20 SoC.
10+
The Secure Domain ROM defines the lifecycle states (LCS) for the nRF54H20 SoC.
1111
The states are based on the Arm PSA Security Model and allow for programming and safely erasing the device assets.
1212

13-
.. note::
14-
During the customer sampling, the LCS of the nRF54H20 SoC must be set to Root of Trust (RoT).
15-
If the LCS is set to ``EMPTY``, it must be transitioned to ``RoT``.
16-
For more information, see :ref:`ug_nrf54h20_gs_bringup`.
17-
18-
However, the forward transition to LCS ``RoT`` is permanent.
19-
After the transition, it is not possible to transition backward to LCS ``EMPTY``.
20-
2113
The LCS available are the following:
2214

2315
.. list-table:: nRF54H20 lifecycle states
@@ -49,12 +41,18 @@ See the following diagram:
4941
.. figure:: images/nRF54H20_lifecycle_states.svg
5042
:alt: nRF54H20 lifecycle states and transitions
5143

52-
nRF54H20 lifecycle states and transitions available on the final silicon.
44+
nRF54H20 lifecycle states and transitions available on the nRF54H20 SoC.
45+
46+
You can change the SoC lifecycle state to streamline development and testing:
47+
48+
* During application development, set the SoC to the ``Root of Trust`` (RoT) state.
49+
* To validate behavior in a production environment, use the ``DEPLOYED`` state.
50+
5351

54-
This figure shows the states and transitions (both forward and backward ones) that will be available on the final silicon.
52+
If the device is in LCS ``EMPTY``, transition it to LCS ``RoT`` by following the :ref:`nRF54H20 DK bring-up <ug_nrf54h20_gs_bringup>` procedure.
5553

56-
Changing the lifecycle state will be useful during development.
57-
Test devices in their final configuration would require the device to be in the deployed state, however, updating the Secure Domain firmware and the System Controller firmware will be easier with the device in RoT state.
54+
.. caution::
55+
The transition from ``EMPTY`` to ``RoT`` is permanent and cannot be reversed.
5856

5957
For more information, see the following pages:
6058

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.. _ug_nrf54h20_architecture_memory:
22

3-
nRF54H20 Memory Layout
3+
nRF54H20 memory layout
44
######################
55

66
.. contents::
@@ -24,9 +24,6 @@ When classifying memories by CPU association, the nRF54H20 contains the followin
2424
The MRAM is a global memory available to all CPUs in the system.
2525
Some RAM memories are, instead, tightly coupled to a specific CPU, while others are intended to be shared between multiple CPUs.
2626

27-
.. note::
28-
In the nRF54H20 initial limited sampling, TrustZone is disabled on all cores.
29-
3027
RAM
3128
***
3229

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ The following is the reset behavior when the LCS of the nRF54H20 SoC is either i
5454
* - ``RESET_PIN``
5555
- J-Link toggles the **RESET** pin using OBD.
5656
* - ``RESET_VIA_SECDOM``
57-
- Uses the CTRL-AP mailbox to send a local domain reset request to the Secure Domain Firmware (SDFW).
57+
- Uses the CTRL-AP mailbox to send a local domain reset request to the IronSide Secure Element (IronSide SE).
5858

5959
This command resets the entire system while keeping both the application core and the radio core in a halted state.
6060

@@ -73,7 +73,7 @@ Reset your device using nRF Util
7373

7474
To trigger a specific reset type on your nRF54H20 SoC-based device, use the ``nrfutil device reset`` command::
7575

76-
nrfutil device reset --serial-number <blah> --reset-kind <reset-kind>
76+
nrfutil device reset --serial-number <serial_number> --reset-kind <reset_kind>
7777

7878
For a detailed list of commands for each reset type, run the following::
7979

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ The standalone logging mode with STM on the nRF54H20 SoC works as follows:
6363
#. The STMESP generates a data stream based on the register writes.
6464
#. The STM multiplexes the data stream with streams from other domains, and it places them in the single memory buffer provided by the ETR.
6565
#. The application core, acting as the ETR-designated proxy, reads the buffer and decodes the raw encoded log data.
66-
#. The SDFW outputs the logging data in a human-readable format over UART.
66+
#. The IronSide Secure Element (IronSide SE) outputs the logging data in a human-readable format over UART.
6767

6868
Standalone logging leverages the frontend API of the Zephyr logging subsystem to select the stimulus ports and writes log messages directly to memory-mapped registers.
6969
This method bypasses the need for string formatting functions and peripheral drivers, as the core writes directly to the STM port.

0 commit comments

Comments
 (0)