Skip to content

Commit 526f6c6

Browse files
committed
feat(security): Generalize boot flow page for non-AM64x SoCs
Currently, the secure boot section is tailored for AM64x. But the same information is applicable to non-AM64x SoCs, that is AM62x, AM62P. Therefore generalize the page and add it these other devices' TOCs. In addition, fix the language in the file to simplify it by changing a few passive voice statements into active voice, using easier words etc. Signed-off-by: Suhaas Joshi <s-joshi@ti.com>
1 parent da6c3c6 commit 526f6c6

5 files changed

Lines changed: 34 additions & 16 deletions

File tree

configs/AM62AX/AM62AX_linux_toc.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ linux/Foundational_Components/System_Security/Security_overview
9898
linux/Foundational_Components/System_Security/SELinux
9999
linux/Foundational_Components/System_Security/Auth_boot
100100
linux/Foundational_Components/System_Security/Memory_Firewalls
101+
linux/Foundational_Components_Secure_Boot
101102

102103
linux/Foundational_Components_Kernel_Users_Guide
103104
linux/Foundational_Components_Kernel_LTP-DDT_Validation

configs/AM62PX/AM62PX_linux_toc.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ linux/Foundational_Components/System_Security/Security_overview
103103
linux/Foundational_Components/System_Security/SELinux
104104
linux/Foundational_Components/System_Security/Auth_boot
105105
linux/Foundational_Components/System_Security/Memory_Firewalls
106+
linux/Foundational_Components_Secure_Boot
106107

107108
linux/Foundational_Components_Kernel_Users_Guide
108109
linux/Foundational_Components_Kernel_LTP-DDT_Validation

configs/AM62X/AM62X_linux_toc.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ linux/Foundational_Components/System_Security/Security_overview
100100
linux/Foundational_Components/System_Security/SELinux
101101
linux/Foundational_Components/System_Security/Auth_boot
102102
linux/Foundational_Components/System_Security/Memory_Firewalls
103+
linux/Foundational_Components_Secure_Boot
103104

104105
linux/Foundational_Components_PRU_Subsystem
105106
linux/Foundational_Components/PRU-ICSS-Linux-Drivers

source/linux/Foundational_Components/System_Security/Security_overview.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,12 @@ The following table lists some of the key Security Features:
7171
+-------------------------+-----------------------------------------------------------+--------------------------------------+
7272
| Security Feature | Description | Links |
7373
+=========================+===========================================================+======================================+
74-
| **Authenticated Boot** | Verifies each boot component to ensure only authorized | :ref:`auth_boot_guide` |
75-
| | code executes on the device | |
74+
| **Secure Boot** | Verifies and decrypts each boot stage, establishing a | :ref:`foundational-secure-boot` |
75+
| | hardware-backed chain of trust from ROM to Linux using | |
76+
| | customer-programmable keys | |
77+
+-------------------------+-----------------------------------------------------------+--------------------------------------+
78+
| **Authenticated Boot** | Transparent disk encryption using the Linux kernel | :ref:`auth_boot_guide` |
79+
| | device mapper (dm-crypt) for data confidentiality | |
7680
+-------------------------+-----------------------------------------------------------+--------------------------------------+
7781
| **Crypto Acceleration** | Hardware driver support for cryptographic algorithms | :ref:`crypto-accelerator` |
7882
+-------------------------+-----------------------------------------------------------+--------------------------------------+

source/linux/Foundational_Components_Secure_Boot.rst

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _foundational-secure-boot:
2+
13
**********************************
24
Secure Boot
35
**********************************
@@ -30,16 +32,19 @@ The following is an example list where Chain-of-Trust should be maintained.
3032
- Disable kernel debug options
3133
- Disable/remove userspace debug tools, devmem disable, etc..
3234

33-
We provide methods for U-Boot's SPL loader to securely verify/encrypt the U-Boot proper. This is accomplished by calling into TIFS via TI-SCI
34-
(Texas Instruments System Controller Interface). For more infomation using TI_SCI methods refer to the
35-
`TISCI User Guide <https://software-dl.ti.com/tisci/esd/22_01_02/index.html>`__. U-Boot proper then securely verifies/decrypts the Kernel/DTB/initramfs.
35+
We offer methods for U-Boot's Secondary Program Loader (SPL) to securely verify the U-Boot
36+
proper. U-Boot calls Texas Instrument Foundational Security (TIFS) through Texas Instruments System Controller Interface (TISCI)
37+
to do this. For more information about using TISCI methods see the
38+
`TISCI User Guide <https://software-dl.ti.com/tisci/esd/22_01_02/index.html>`__. U-Boot proper then securely verifies and decrypts the kernel, Device Tree Blobs (DTB), and initramfs.
3639

3740
.. Image:: /images/K3_KF.png
3841
:scale: 70%
3942

40-
Secure boot has layers. Some layers are trusted more than others. Secure ROM has the highest trust and REE (Run-time Execution
41-
Environment) non-trustzone user-space applications have the least. If any higher trust code is to be loaded by a lower trust entity, it must be verified
42-
by an even higher trust entity and not allowed to be accessed by the lower trust entity after that point. Some such trust inversions are listed below:
43+
Secure boot has layers. Some layers are trusted more than others. Secure ROM has the highest trust and Runtime Execution
44+
Environment (REE) non-trustzone user-space applications have the least. If a
45+
lower trust entity must load a higher trust code, an even higher trust entity
46+
must verify it and not allow access by the lower trust entity after that
47+
point. Some such trust inversions are as follows:
4348

4449
- R5 U-Boot loading ATF/OP-TEE
4550
- R5 Public Boot ROM loading TIFS
@@ -69,14 +74,20 @@ The exact location is device dependent. More details can be found in the device
6974
* DMSC firmware: `Texas Instruments Foundational Security (TIFS)` + Device/Power Manager: After authentication/decryption, DMSC firmware replaces the Secure ROM as the authenticator entity executing on the DMSC core.
7075
* R5 SPL: The R5 SPL bootloader is executed on the R5 core.
7176

72-
.. ifconfig:: CONFIG_part_variant in ('AM62x')
77+
.. ifconfig:: CONFIG_part_variant not in ('AM64X')
7378

74-
- `AM62x TRM <https://www.ti.com/lit/pdf/spruiv7>`_
79+
.. ifconfig:: CONFIG_part_variant in ('AM62X')
7580

76-
The contents of this first stage image are authenticated and decrypted by the Secure ROM. Contents include:
81+
- `AM62x TRM <https://www.ti.com/lit/pdf/spruiv7>`_
82+
83+
.. ifconfig:: CONFIG_part_variant in ('AM62PX')
84+
85+
- `AM62P TRM <https://www.ti.com/lit/pdf/spruj83>`_
86+
87+
The contents of this first stage image are authenticated and decrypted by the Secure ROM. Contents include:
7788

78-
* `Texas Instruments Foundational Security (TIFS)` firmware: After authentication/decryption, TIFS firmware replaces the Secure ROM as the authenticator entity executing on the TIFS core.
79-
* R5 SPL`: The R5 SPL bootloader is executed on the R5 core.
89+
* `Texas Instruments Foundational Security (TIFS)` firmware: After authentication/decryption, TIFS firmware replaces the Secure ROM as the authenticator entity executing on the TIFS core.
90+
* R5 SPL`: The R5 SPL bootloader is executed on the R5 core.
8091

8192
.. rubric:: R5 SPL
8293

@@ -195,9 +206,9 @@ HS Boot Flow Tools
195206

196207
U-boot:
197208

198-
The ti-u-boot source is a project used to create tiboot3.bin, tispl.bin, and u-boot.img. To create tiboot3.bin for AM64x family devices, u-boot builds R5 SPL and
209+
The ti-u-boot source is a project used to create tiboot3.bin, tispl.bin, and u-boot.img. To create tiboot3.bin for K3 family devices, u-boot builds R5 SPL and
199210
binman packages it in a `tiboot3.bin` image. To build A53 SPL, binman takes ATF (bl31.bin), OPTEE (bl32.bin), A53 SPL, and A53 DTBs and packages
200-
them in a `tispl.bin` image. The openssl library can then then be used to sign each component as specified in k3-am64x-binman.dtsi.
211+
them in a `tispl.bin` image. U-Boot can then use the openssl library to sign each component as specified in k3-<soc>-binman.dtsi.
201212

202213
.. code-block:: console
203214
@@ -246,7 +257,7 @@ OPTEE:
246257
Ti-linux-firmware:
247258

248259
The ti-linux-firmware is a TI repository where all firmware releases are stored. Firmwares for a device family can also be found in the pre-built SDK
249-
under <path-to-tisdk>/board-support/prebuilt-images/am64xx-evm. Binman expects to find the device firmware with the following appended to u-boot build command:
260+
under :file:`<path-to-tisdk>/board-support/prebuilt-images/<evm>`. Binman expects to find the device firmware with the following appended to u-boot build command:
250261
BINMAN_INDIRS=<path-to-tisdk>/board-support/prebuilt-images, and expects to find a ti-sysfw directory in this path.
251262

252263
.. code-block:: console

0 commit comments

Comments
 (0)