Skip to content

Commit 3e05d17

Browse files
tomchycarlescufi
authored andcommitted
suit: Add description of SUIT manifest var
Add a brief description of manifest variables, including API description. Ref: NCSDK-NONE Signed-off-by: Tomasz Chyrowicz <[email protected]>
1 parent 2cba948 commit 3e05d17

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
.. _subsys_suit_mfst_var:
2+
3+
SUIT Manifest-accessible variables
4+
##################################
5+
6+
.. contents::
7+
:local:
8+
:depth: 2
9+
10+
The SUIT Manifest-accessible variables are new type of components that allow to store integer values.
11+
They are readable by any SUIT manifest, the SDFW, and the IPC clients.
12+
The modifiability of these variables depends on the variable ID.
13+
14+
Overview
15+
********
16+
17+
The manifest-controlled variable can be defined as one of the components inside the SUIT manifest.
18+
The component ID of the variables is constructed as follows:
19+
20+
.. code-block:: console
21+
22+
[ MFST_VAR, <id> ]
23+
24+
There is a fixed number of such components for a given platform.
25+
Their functionality and access privileges are defined by using ``<id>`` values from the following predefined ranges:
26+
27+
* IDs from ``0`` to ``7`` are meant to hold persistently stored configuration data, which can be modified by OEM-controlled elements.
28+
They can be utilized to tune the installation and boot process.
29+
They are stored in two copies, protected by the digest, ensuring that only a valid value will be returned.
30+
If the system detects that it is impossible to synchronize those two copies, further updates of all NVM variables are blocked.
31+
32+
.. warning::
33+
Non-volatile variables are stored at the fixed location inside the memory.
34+
There are no mechanisms managing the NVM wearing, so the frequency of the variable updates should be managed by manifest designer.
35+
36+
The non-volatile variables can be modified by Application, Radio Manifests, and by IPC clients running on Application and Radio Domains.
37+
38+
* IDs from ``128`` to ``129`` are meant to hold runtime, volatile information, provided by the SDFW.
39+
Currently there are no functionalities assigned to those variables.
40+
41+
The platform-controlled variables cannot be modified by Manifests, and IPC clients.
42+
43+
* IDs from ``256`` to ``259`` are meant to hold runtime, volatile information, provided by OEM-controlled manifests.
44+
These variables can be used to pass the information about executed boot scenario (selected set of images boot in the "A/B" method) as well as allow for a minimal manifest execution tracing.
45+
46+
The volatile variables can be modified by Application and Radio Manifests.
47+
IPC clients are not allowed to modify them.
48+
49+
Configuration
50+
*************
51+
52+
All configuration option values are defined by the SDFW.
53+
They are also available in read-only mode for all types of applications.
54+
All the APIs are serialized using the SSF framework.
55+
56+
The following configuration options are defined:
57+
58+
* :kconfig:option:`CONFIG_SUIT_MANIFEST_VARIABLES_NVM_BASE_ID` - Defines the first ID of manifest variables, that are stored in the non-volatile memory.
59+
* :kconfig:option:`CONFIG_SUIT_MANIFEST_VARIABLES_NVM_COUNT` - Defines the number of available manifest variables, that are stored in the non-volatile memory.
60+
* :kconfig:option:`CONFIG_SUIT_MANIFEST_VARIABLES_NVM_ACCESS_MASK` - Defines the access mask of manifest variables, that are stored in the non-volatile memory.
61+
* :kconfig:option:`CONFIG_SUIT_MANIFEST_VARIABLES_PLAT_VOLATILE_BASE_ID` - Defines the first ID of platform-controlled manifest variables, that are stored in the volatile memory.
62+
* :kconfig:option:`CONFIG_SUIT_MANIFEST_VARIABLES_PLAT_VOLATILE_COUNT` - Defines the number of available platform-controlled manifest variables, that are stored in the volatile memory.
63+
* :kconfig:option:`CONFIG_SUIT_MANIFEST_VARIABLES_PLAT_VOLATILE_ACCESS_MASK` - Defines the access mask of platform-controlled manifest variables, that are stored in the volatile memory.
64+
* :kconfig:option:`CONFIG_SUIT_MANIFEST_VARIABLES_MFST_VOLATILE_BASE_ID` - Defines the first ID of manifest variables, that are stored in the volatile memory.
65+
* :kconfig:option:`CONFIG_SUIT_MANIFEST_VARIABLES_MFST_VOLATILE_COUNT` - Defines the number of available manifest variables, that are stored in the volatile memory.
66+
* :kconfig:option:`CONFIG_SUIT_MANIFEST_VARIABLES_MFST_VOLATILE_ACCESS_MASK` - Defines the access mask of manifest variables, that are stored in the volatile memory.
67+
68+
API documentation
69+
*****************
70+
71+
| Header file: :file:`subsys/suit/manifest_variables/include/suit_manifest_variables.h`
72+
| Source files: :file:`subsys/suit/manifest_variables/src/suit_manifest_variables.c`

0 commit comments

Comments
 (0)