[U-Boot] [PATCH v3 6/6] doc: x86: Add section about secure boot on Bay Trail

Anatolij Gustschin agust at denx.de
Fri Nov 17 01:16:18 UTC 2017


From: Markus Valentin <mv at denx.de>

Add short summary describing preparations for enabling secure boot
feature on Bay Trail SoC.

Signed-off-by: Markus Valentin <mv at denx.de>
Signed-off-by: Anatolij Gustschin <agust at denx.de>
---
Changes in v3:
 - add commit message
 - use 'U-Boot' consistently
 - reword and improve text since binman is now used for image signing

 doc/README.x86 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/doc/README.x86 b/doc/README.x86
index 772e8d2a86..b64158816b 100644
--- a/doc/README.x86
+++ b/doc/README.x86
@@ -1141,6 +1141,53 @@ provides the same EFI run-time services) is not currently supported on x86.
 
 See README.efi for details of EFI support in U-Boot.
 
+Secure Boot for Bay Trail
+-------------------------
+U-Boot for Bay Trail based platforms supports booting in a verified manner using
+the Trusted Execution Enginge (TXE). To enable secure boot you need to enable
+the Kconfig option CONFIG_BAYTRAIL_SECURE_BOOT.
+
+The verification of U-Boot happens by a public key appended to the so called
+Secure Boot Manifest. The manifest will be created by binman after building
+the u-boot.rom image (by tools/binman/signing/baytrail.py script). binman
+will generate "u-boot-verified.rom" image containing the manifest. This
+image can be installed in SPI-NOR flash.
+
+To be able to perform a verified boot with U-Boot you need:
+ * A secure-boot-enabled FSP[18] which we can assemble with the BCT Tool[19]
+	(the secure-boot-enabled FSP should be placed as fsp-sb.bin in the
+	board directory)
+ * A OEM-keypair which we use to sign U-Boot. Create this yourself in the
+	build output directory like below:
+	mkdir keydir && \
+	openssl req -batch -x509 -nodes -newkey rsa:2048 \
+		 -keyout 'keydir/oemkey.pem' -out 'keydir/pub_oemkey.pem'
+	When secure boot option is enabled, the signing script expects
+	the keys to be in the 'keydir' subdir in the build output directory.
+ * fpf_config.txt file in the build output directory.
+	Copy the original FpfConfigFile.txt file from the TXE Firmware Kit to
+	fpf_config.txt. When fpf_config.txt file is present, the binman will
+	update its fuse file entry with the actual hash of the public part of
+	the OEM signing key (FUSE_FILE_OEM_KEY_HASH_1:). The secure-boot-enable
+	fuse file entry (FUSE_FILE_SECURE_BOOT_EN:) will also be enabled.
+	The modified fuse register configuration file can be used by the Intel
+	FPT tool to write fuses (the FPT tool is provided in the TXE Firmware
+	Kit. To burn fuses run "FPT -writebatch fpf_config.txt" on the target).
+
+If these prerequisites are met, you can enable CONFIG_BAYTRAIL_SECURE_BOOT
+option and build U-Boot. The following commands give an example flow for the
+Congatec conga-QA3 SoM on QEVAL 2.0 evalboard:
+	make conga-qeval20-qa3-e3845-internal-uart-secure-boot_defconfig
+	make all
+	make u-boot.rom
+
+This creates "u-boot-verified.rom" image. It can be used as the normal
+u-boot.rom. For enabling the verification you need to configure the OTP fuses
+either by burning them by FPT tool or by using the FPF-Mirroring feature
+for testing while development (see TXE Firmware Kit documentation for more
+details). Further authentication (Kernel/DTB) can be done with the FIT image
+mechanism.
+
 64-bit Support
 --------------
 U-Boot supports booting a 64-bit kernel directly and is able to change to
@@ -1183,3 +1230,5 @@ References
 [15] doc/device-tree-bindings/misc/intel,irq-router.txt
 [16] http://www.acpi.info
 [17] https://www.acpica.org/downloads
+[18] https://github.com/IntelFsp/FSP.git
+[19] https://github.com/IntelFsp/BCT.git
-- 
2.11.0



More information about the U-Boot mailing list