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
Removed mentions and from supported board list. No dedicated page, so no
redirects added.
QA: built docs, ran linkcheck. Edited with linter on.
This commit addresses issue FFTK-3725, "Remove i.MX7ULP"
Signed-off-by: Katrina Prosise <[email protected]>
Copy file name to clipboardExpand all lines: source/reference-manual/security/secure-boot-imx-habv4.rst
+7-118Lines changed: 7 additions & 118 deletions
Original file line number
Diff line number
Diff line change
@@ -2,10 +2,10 @@
2
2
3
3
.. _ref-secure-boot-imx-habv4:
4
4
5
-
Secure Boot on i.MX 6/7/8M Using HABv4
5
+
Secure Boot on i.MX 6/8M Using HABv4
6
6
======================================
7
7
8
-
On the i.MX 6/7/8M platforms, Secure Boot is implemented via the High Availability Boot (HABv4) component of the on-chip ROM.
8
+
On the i.MX 6/8M platforms, Secure Boot is implemented via the High Availability Boot (HABv4) component of the on-chip ROM.
9
9
The ROM is responsible for loading the initial program image, the bootloader; HABv4 then enables the ROM to authenticate it using digital signatures.
10
10
11
11
HABv4 also provides a mechanism to establish a root of trust for the remaining software components and establishes a secure state—the close state—on the i.MX IC secure state machine in hardware.
@@ -22,11 +22,10 @@ This is used to store keys, firmware, and rollback information.
22
22
23
23
OP-TEE also prepares the next stage bootloader—U-Boot—and generates an overlay DTS for the Linux® kernel consumption.
24
24
U-Boot implements the ``fiovb`` command to validate the trusted application functionality.
25
-
In the case of i.MX 7ULP, U-Boot also controls the M4 firmware upgrade process using the ``fiovb`` trusted application.
26
25
27
26
U-Boot then jumps to the kernel entry point.
28
27
29
-
A system like the one just described, which boots without TF-A (for example i.MX 7ULP), would look as follows:
28
+
A system which boots without TF-A would look as follows:
30
29
31
30
.. figure:: /_static/imx-secure-boot.png
32
31
:align:center
@@ -92,81 +91,6 @@ The output should be::
92
91
93
92
The Security Reference Manual for your specific SoC will indicate which fuses need to be programmed with the SRK fuse information.
94
93
95
-
96
-
i.MX 7ULP Fusing
97
-
^^^^^^^^^^^^^^^^
98
-
99
-
.. warning::
100
-
The values shown in this section are just examples of our standard LmP HABv4 keys, and are not meant for production.
101
-
Fuses cannot be changed after the first write.
102
-
103
-
On the i.MX 7ULP the A7 fuses are stored in the fuse bank 5, words 0 to 7 and the M4 fuses are stored in the fuse bank 6, words 0 to 7.
104
-
105
-
To program the A7 fuses you could use U-Boot's fuse command as follows::
106
-
107
-
=> fuse prog 5 0 0xEA2F0B50
108
-
=> fuse prog 5 1 0x871167F7
109
-
=> fuse prog 5 2 0xF5CECF5D
110
-
=> fuse prog 5 3 0x364727C3
111
-
=> fuse prog 5 4 0x8DD52832
112
-
=> fuse prog 5 5 0xF158F65F
113
-
=> fuse prog 5 6 0xA71BBE78
114
-
=> fuse prog 5 7 0xA3AD024A
115
-
116
-
For the M4 fuses it would look like this::
117
-
118
-
=> fuse prog 6 0 0xEA2F0B50
119
-
=> fuse prog 6 1 0x871167F7
120
-
=> fuse prog 6 2 0xF5CECF5D
121
-
=> fuse prog 6 3 0x364727C3
122
-
=> fuse prog 6 4 0x8DD52832
123
-
=> fuse prog 6 5 0xF158F65F
124
-
=> fuse prog 6 6 0xA71BBE78
125
-
=> fuse prog 6 7 0xA3AD024A
126
-
127
-
Alternatively, you can use the kernel to program the A7 fuses via SDP by using NXP's :term:`Universal Update Utility`.
128
-
This is shown in the following script (replace ``@@MACHINE@@`` with your machine name)::
129
-
130
-
uuu_version 1.0.1
131
-
132
-
SDP: boot -f SPL-@@MACHINE@@
133
-
134
-
SDPU: delay 1000
135
-
SDPU: write -f u-boot-@@MACHINE@@.itb
136
-
SDPU: jump
137
-
138
-
FB: ucmd fuse prog -y 5 0 0xEA2F0B50
139
-
FB: ucmd fuse prog -y 5 1 0x871167F7
140
-
FB: ucmd fuse prog -y 5 2 0xF5CECF5D
141
-
FB: ucmd fuse prog -y 5 3 0x364727C3
142
-
FB: ucmd fuse prog -y 5 4 0x8DD52832
143
-
FB: ucmd fuse prog -y 5 5 0xF158F65F
144
-
FB: ucmd fuse prog -y 5 6 0xA71BBE78
145
-
FB: ucmd fuse prog -y 5 7 0xA3AD024A
146
-
147
-
FBK: DONE
148
-
149
-
And the following script would work for setting the M4 fuses::
150
-
151
-
uuu_version 1.0.1
152
-
153
-
SDP: boot -f SPL-@@MACHINE@@
154
-
155
-
SDPU: delay 1000
156
-
SDPU: write -f u-boot-@@MACHINE@@.itb
157
-
SDPU: jump
158
-
159
-
FB: ucmd fuse prog -y 6 0 0xEA2F0B50
160
-
FB: ucmd fuse prog -y 6 1 0x871167F7
161
-
FB: ucmd fuse prog -y 6 2 0xF5CECF5D
162
-
FB: ucmd fuse prog -y 6 3 0x364727C3
163
-
FB: ucmd fuse prog -y 6 4 0x8DD52832
164
-
FB: ucmd fuse prog -y 6 5 0xF158F65F
165
-
FB: ucmd fuse prog -y 6 6 0xA71BBE78
166
-
FB: ucmd fuse prog -y 6 7 0xA3AD024A
167
-
168
-
FBK: DONE
169
-
170
94
i.MX 8MM Fusing
171
95
^^^^^^^^^^^^^^^
172
96
@@ -278,7 +202,7 @@ Booting this signed SPL image and inspecting the HAB status should give no HAB e
278
202
The next fuse instruction will close the board for unsigned images: make sure you can rebuild the signed images before programming that fuse.
279
203
280
204
281
-
Now we can close the device — From here on only signed images can be booted on the platform. For the i.MX 7ULP, we need to fuse bit31 of word 6 from bank 29 (SEC_CONFIG[1] in the documentation)::
205
+
Now we can close the device — From here on only signed images can be booted on the platform.
282
206
283
207
=> fuse prog 29 6 0x80000000
284
208
@@ -332,7 +256,7 @@ To comply with these requirements we need to sign the image adding the ``--fix-s
332
256
$ ls SPL.signed
333
257
SPL.signed
334
258
335
-
2. On i.MX 7/8M and other i.MX 6 families, using the ``--fix-sdp-dcd`` parameter is not required.
259
+
2. On i.MX 8M and i.MX 6 families, using the ``--fix-sdp-dcd`` parameter is not required.
336
260
337
261
338
262
.. note::
@@ -359,7 +283,7 @@ A typical UUU boot script would be (replace ``@@MACHINE@@`` with your machine co
359
283
SDPU: delay 1000
360
284
SDPU: write -f u-boot-@@MACHINE@@.itb
361
285
362
-
2) On i.MX 7/8M and other i.MX 6 families — those where SDP does not impose DCD restrictions — the UUU boot script will look like:
286
+
2) On i.MX 8M and i.MX 6 families — those where SDP does not impose DCD restrictions — the UUU boot script will look like:
363
287
364
288
.. code-block:: console
365
289
@@ -381,41 +305,6 @@ To that effect we need to make sure of UUU's polling period flag::
381
305
These have been contributed to the Universal Update Utility by Foundries.io.
382
306
Make sure your UUU version is up-to-date with these changes.
383
307
384
-
How to Sign an M4 Binary for HABv4 Validation
385
-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
386
-
387
-
.. note::
388
-
This applies to i.MX 7ULP which has the Cortex-M4 as the primary core.
389
-
390
-
To use the i.MX HABv4 validation process when booting an M4 binary, it will also need to be signed in a similar manner.
391
-
This is also true for SoCs such as i.MX7ULP which support "dual-boot" mode.
392
-
The M4 bootrom loads the M4 binary at power on.
393
-
If the device is in a closed state, the bootrom requires the M4 binary to be signed.
394
-
395
-
Signing the M4 application image is nearly the same as before.
396
-
Instead of the ``--spl`` parameter, use ``--m4app``::
0 commit comments