Skip to content

Commit 89adb86

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 89adb86

5 files changed

Lines changed: 29 additions & 14 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: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _foundational-secure-boot:
2+
13
**********************************
24
Secure Boot
35
**********************************
@@ -30,14 +32,14 @@ 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 SPL loader to securely verify the U-Boot proper. U-Boot calls TIFS through TI-SCI (Texas Instruments System Controller Interface)
36+
to accomplish this. For more information about using TI_SCI methods see the
37+
`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, DTB and initramfs.
3638

3739
.. Image:: /images/K3_KF.png
3840
:scale: 70%
3941

40-
Secure boot has layers. Some layers are trusted more than others. Secure ROM has the highest trust and REE (Run-time Execution
42+
Secure boot has layers. Some layers are trusted more than others. Secure ROM has the highest trust and REE (Runtime Execution
4143
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
4244
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:
4345

@@ -69,14 +71,20 @@ The exact location is device dependent. More details can be found in the device
6971
* 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.
7072
* R5 SPL: The R5 SPL bootloader is executed on the R5 core.
7173

72-
.. ifconfig:: CONFIG_part_variant in ('AM62x')
74+
.. ifconfig:: CONFIG_part_variant not in ('AM64X')
7375

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

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

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.
86+
* `Texas Instruments Foundational Security (TIFS)` firmware: After authentication/decryption, TIFS firmware replaces the Secure ROM as the authenticator entity executing on the TIFS core.
87+
* R5 SPL`: The R5 SPL bootloader is executed on the R5 core.
8088

8189
.. rubric:: R5 SPL
8290

@@ -195,9 +203,9 @@ HS Boot Flow Tools
195203

196204
U-boot:
197205

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
206+
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
199207
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.
208+
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.
201209

202210
.. code-block:: console
203211
@@ -246,7 +254,7 @@ OPTEE:
246254
Ti-linux-firmware:
247255

248256
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:
257+
under <path-to-tisdk>/board-support/prebuilt-images/<evm>. Binman expects to find the device firmware with the following appended to u-boot build command:
250258
BINMAN_INDIRS=<path-to-tisdk>/board-support/prebuilt-images, and expects to find a ti-sysfw directory in this path.
251259

252260
.. code-block:: console

0 commit comments

Comments
 (0)