diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/imx/common/imx25.txt (renamed from doc/README.imx25) | 0 | ||||
-rw-r--r-- | doc/imx/common/imx27.txt (renamed from doc/README.imx27) | 0 | ||||
-rw-r--r-- | doc/imx/common/imx5.txt (renamed from doc/README.imx5) | 0 | ||||
-rw-r--r-- | doc/imx/common/imx6.txt (renamed from doc/README.imx6) | 25 | ||||
-rw-r--r-- | doc/imx/common/mxs.txt (renamed from doc/README.mxs) | 0 | ||||
-rw-r--r-- | doc/imx/hab/habv4/encrypted_boot.txt | 43 | ||||
-rw-r--r-- | doc/imx/hab/habv4/secure_boot.txt (renamed from doc/README.mxc_hab) | 44 | ||||
-rw-r--r-- | doc/imx/misc/sdp.txt (renamed from doc/README.sdp) | 22 | ||||
-rw-r--r-- | doc/imx/mkimage/imximage.txt (renamed from doc/README.imximage) | 0 | ||||
-rw-r--r-- | doc/imx/mkimage/mxsimage.txt (renamed from doc/README.mxsimage) | 0 |
10 files changed, 63 insertions, 71 deletions
diff --git a/doc/README.imx25 b/doc/imx/common/imx25.txt index 0ca21b6dfe..0ca21b6dfe 100644 --- a/doc/README.imx25 +++ b/doc/imx/common/imx25.txt diff --git a/doc/README.imx27 b/doc/imx/common/imx27.txt index 6f92cb47ce..6f92cb47ce 100644 --- a/doc/README.imx27 +++ b/doc/imx/common/imx27.txt diff --git a/doc/README.imx5 b/doc/imx/common/imx5.txt index ea0e144ced..ea0e144ced 100644 --- a/doc/README.imx5 +++ b/doc/imx/common/imx5.txt diff --git a/doc/README.imx6 b/doc/imx/common/imx6.txt index b0644f8491..eab88353f6 100644 --- a/doc/README.imx6 +++ b/doc/imx/common/imx6.txt @@ -88,28 +88,3 @@ Reading bank 4: Word 0x00000002: 9f027772 00000004 -2. Using imx_usb_loader for first install with SPL --------------------------------------------------- - -imx_usb_loader is a very nice tool by Boundary Devices that -allow to install U-Boot without a JTAG debugger, using -the USB boot mode as described in the manual. It is -a replacement for Freescale's MFGTOOLS. - -The sources can be found here: - - https://github.com/boundarydevices/imx_usb_loader.git - -Booting in USB mode, the i.MX6 announces itself to the Linux Host as: - -Bus 001 Device 111: ID 15a2:0061 Freescale Semiconductor, Inc. - -imx_usb_loader is able to download a single file (u-boot.imx) -to the board. For boards without SPL support, it is enough to -issue the command: - - sudo ../imx_usb_loader/imx_usb -v u-boot.imx - -In order to load SPL and u-boot.img via imx_usb_loader tool, -please refer to doc/README.sdp. - diff --git a/doc/README.mxs b/doc/imx/common/mxs.txt index e23ab9cc6d..e23ab9cc6d 100644 --- a/doc/README.mxs +++ b/doc/imx/common/mxs.txt diff --git a/doc/imx/hab/habv4/encrypted_boot.txt b/doc/imx/hab/habv4/encrypted_boot.txt new file mode 100644 index 0000000000..c59d204d38 --- /dev/null +++ b/doc/imx/hab/habv4/encrypted_boot.txt @@ -0,0 +1,43 @@ +1. Setup U-Boot Image for Encrypted Boot +---------------------------------------- +An authenticated U-Boot image is used as starting point for +Encrypted Boot. The image is encrypted by i.MX Code Signing +Tool (CST). The CST replaces only the image data of +u-boot-dtb.imx with the encrypted data. The Initial Vector Table, +DCD, and Boot data, remains in plaintext. + +The image data is encrypted with a Encryption Key (DEK). +Therefore, this key is needed to decrypt the data during the +booting process. The DEK is protected by wrapping it in a Blob, +which needs to be appended to the U-Boot image and specified in +the CSF file. + +The DEK blob is generated by an authenticated U-Boot image with +the dek_blob cmd enabled. The image used for DEK blob generation +needs to have the following configurations enabled in Kconfig: + +CONFIG_SECURE_BOOT=y +CONFIG_CMD_DEKBLOB=y + +Note: The encrypted boot feature is only supported by HABv4 or +greater. + +The dek_blob command then can be used to generate the DEK blob of +a DEK previously loaded in memory. The command is used as follows: + +dek_blob <DEK address> <Output Address> <Key Size in Bits> +example: dek_blob 0x10800000 0x10801000 192 + +The resulting DEK blob then is used to construct the encrypted +U-Boot image. Note that the blob needs to be transferred back +to the host.Then the following commands are used to construct +the final image. + +cat u-boot-dtb.imx csf-u-boot.bin > u-boot-signed.imx +objcopy -I binary -O binary --pad-to <blob_dst> --gap-fill=0x00 \ + u-boot-signed.imx u-boot-signed-pad.bin +cat u-boot-signed-pad.imx DEK_blob.bin > u-boot-encrypted.imx + + NOTE: u-boot-signed.bin needs to be padded to the value + equivalent to the address in which the DEK blob is specified + in the CSF. diff --git a/doc/README.mxc_hab b/doc/imx/hab/habv4/secure_boot.txt index a40ebf3e84..ae68dc8040 100644 --- a/doc/README.mxc_hab +++ b/doc/imx/hab/habv4/secure_boot.txt @@ -98,47 +98,3 @@ cat u-boot-ivt.img csf-u-boot.bin > u-boot-signed.img These two signed binaries can be used on an i.MX in closed configuration when the according SRK Table Hash has been flashed. - -4. Setup U-Boot Image for Encrypted Boot ----------------------------------------- -An authenticated U-Boot image is used as starting point for -Encrypted Boot. The image is encrypted by i.MX Code Signing -Tool (CST). The CST replaces only the image data of -u-boot-dtb.imx with the encrypted data. The Initial Vector Table, -DCD, and Boot data, remains in plaintext. - -The image data is encrypted with a Encryption Key (DEK). -Therefore, this key is needed to decrypt the data during the -booting process. The DEK is protected by wrapping it in a Blob, -which needs to be appended to the U-Boot image and specified in -the CSF file. - -The DEK blob is generated by an authenticated U-Boot image with -the dek_blob cmd enabled. The image used for DEK blob generation -needs to have the following configurations enabled in Kconfig: - -CONFIG_SECURE_BOOT=y -CONFIG_CMD_DEKBLOB=y - -Note: The encrypted boot feature is only supported by HABv4 or -greater. - -The dek_blob command then can be used to generate the DEK blob of -a DEK previously loaded in memory. The command is used as follows: - -dek_blob <DEK address> <Output Address> <Key Size in Bits> -example: dek_blob 0x10800000 0x10801000 192 - -The resulting DEK blob then is used to construct the encrypted -U-Boot image. Note that the blob needs to be transferred back -to the host.Then the following commands are used to construct -the final image. - -cat u-boot-dtb.imx csf-u-boot.bin > u-boot-signed.imx -objcopy -I binary -O binary --pad-to <blob_dst> --gap-fill=0x00 \ - u-boot-signed.imx u-boot-signed-pad.bin -cat u-boot-signed-pad.imx DEK_blob.bin > u-boot-encrypted.imx - - NOTE: u-boot-signed.bin needs to be padded to the value - equivalent to the address in which the DEK blob is specified - in the CSF. diff --git a/doc/README.sdp b/doc/imx/misc/sdp.txt index 178ea688a7..6ea6e41395 100644 --- a/doc/README.sdp +++ b/doc/imx/misc/sdp.txt @@ -16,14 +16,19 @@ protocols allow to access a USB device without OS specific drivers. The U-Boot implementation has primarly been tested using the open source imx_loader utility (https://github.com/boundarydevices/imx_usb_loader). +imx_usb_loader is a very nice tool by Boundary Devices that allow to +install U-Boot without a JTAG debugger, using the USB boot mode as +described in the manual. It is a replacement for Freescale's +MFGTOOLS. + The host side utilities are typically capable to interpret the i.MX specific image header (see doc/README.imximage). There are extensions for imx_loader's imx_usb utility which allow to interpret the U-Boot specific legacy image format (see mkimage(1)). Also the U-Boot side support beside the i.MX specific header the U-Boot legacy header. -Usage ------ +1. Using imx_usb_loader for first install with SPL +-------------------------------------------------- This implementation can be started in U-Boot using the sdp command (CONFIG_CMD_USB_SDP) or in SPL if Serial Downloader boot mode has been @@ -98,3 +103,16 @@ With that SPL and U-Boot can be downloaded with a single invocation of imx_usb without arguments: # imx_usb + +2. Using imx_usb_loader non-SPL images +--------------------------------------- + +Booting in USB mode, the i.MX6 announces itself to the Linux Host as: + +Bus 001 Device 111: ID 15a2:0061 Freescale Semiconductor, Inc. + +imx_usb_loader is able to download a single file (u-boot.imx) +to the board. For boards without SPL support, it is enough to +issue the command: + + sudo ../imx_usb_loader/imx_usb -v u-boot.imx diff --git a/doc/README.imximage b/doc/imx/mkimage/imximage.txt index 803682f558..803682f558 100644 --- a/doc/README.imximage +++ b/doc/imx/mkimage/imximage.txt diff --git a/doc/README.mxsimage b/doc/imx/mkimage/mxsimage.txt index c3975ee5e6..c3975ee5e6 100644 --- a/doc/README.mxsimage +++ b/doc/imx/mkimage/mxsimage.txt |