]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
am64x: dts: binman: Package tiboot3.bin, tispl.bin u-boot.img
authorNeha Malcom Francis <n-francis@ti.com>
Fri, 21 Jul 2023 18:44:34 +0000 (00:14 +0530)
committerTom Rini <trini@konsulko.com>
Fri, 21 Jul 2023 23:36:58 +0000 (19:36 -0400)
Support added for HS and GP boot binaries for AM64x.

HS-SE:
    * tiboot3-am64x_sr2-hs-evm.bin
    * tispl.bin
    * u-boot.img

HS-FS:
    * tiboot3-am64x_sr2-hs-fs-evm.bin
    * tispl.bin
    * u-boot.img

GP:
    * tiboot3.bin --> tiboot3-am64x-gp-evm.bin
    * tispl.bin_unsigned
    * u-boot.img_unsigned

Note that the bootflow followed by AM64x requires:

tiboot3.bin:
* R5 SPL
* R5 SPL dtbs
* sysfw
* board-cfg
* pm-cfg
* sec-cfg
* rm-cfg

tispl.bin:
* ATF
* OP-TEE
* A53 SPL
* A53 SPL dtbs

u-boot.img:
* A53 U-Boot
* A53 U-Boot dtbs

Reviewed-by: Simon Glass <sjg@chromium.org>
[afd@ti.com: changed output binary names appropriately]
Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
arch/arm/dts/k3-am642-evm-u-boot.dtsi
arch/arm/dts/k3-am642-r5-evm.dts
arch/arm/dts/k3-am642-sk-u-boot.dtsi
arch/arm/dts/k3-am64x-binman.dtsi [new file with mode: 0644]
board/ti/am64x/Kconfig

index 64857b09099da9142a658c659a2ba65293f1f4b8..73577e8cfd3730b9300e736f64686306770c2cf4 100644 (file)
@@ -3,6 +3,8 @@
  * Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#include "k3-am64x-binman.dtsi"
+
 / {
        chosen {
                stdout-path = "serial2:115200n8";
index e870492a690ccb83ea38f7b606d68dfa9add2e38..b49064181a08ac64ad3a96e49fb9f18d5ad3b37b 100644 (file)
@@ -8,6 +8,7 @@
 #include "k3-am642.dtsi"
 #include "k3-am64-evm-ddr4-1600MTs.dtsi"
 #include "k3-am64-ddr.dtsi"
+#include "k3-am64x-binman.dtsi"
 
 / {
        chosen {
index 69dbe943bdf3452a2b957b453fdd0237c979723b..3d6be025bd512c4b43d86597a07b2fbdbeb72fea 100644 (file)
@@ -3,6 +3,8 @@
  * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#include "k3-am64x-binman.dtsi"
+
 / {
        chosen {
                stdout-path = "serial2:115200n8";
diff --git a/arch/arm/dts/k3-am64x-binman.dtsi b/arch/arm/dts/k3-am64x-binman.dtsi
new file mode 100644 (file)
index 0000000..26e17bd
--- /dev/null
@@ -0,0 +1,515 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+
+#include "k3-binman.dtsi"
+
+#ifdef CONFIG_TARGET_AM642_R5_EVM
+
+&binman {
+       tiboot3-am64x_sr2-hs-evm.bin {
+               filename = "tiboot3-am64x_sr2-hs-evm.bin";
+               ti-secure-rom {
+                       content = <&u_boot_spl>, <&ti_sci_enc>,
+                               <&combined_sysfw_cfg>, <&sysfw_inner_cert>;
+                       combined;
+                       sysfw-inner-cert;
+                       keyfile = "custMpk.pem";
+                       sw-rev = <1>;
+                       content-sbl = <&u_boot_spl>;
+                       content-sysfw = <&ti_sci_enc>;
+                       content-sysfw-data = <&combined_sysfw_cfg>;
+                       content-sysfw-inner-cert = <&sysfw_inner_cert>;
+                       load = <0x70000000>;
+                       load-sysfw = <0x44000>;
+                       load-sysfw-data = <0x7b000>;
+               };
+               u_boot_spl: u-boot-spl {
+                       no-expanded;
+               };
+               ti_sci_enc: ti-fs-enc.bin {
+                       filename = "ti-sysfw/ti-sci-firmware-am64x_sr2-hs-enc.bin";
+                       type = "blob-ext";
+                       optional;
+               };
+               combined_sysfw_cfg: combined-sysfw-cfg.bin {
+                       filename = "combined-sysfw-cfg.bin";
+                       type = "blob-ext";
+               };
+               sysfw_inner_cert: sysfw-inner-cert {
+                       filename = "ti-sysfw/ti-sci-firmware-am64x_sr2-hs-cert.bin";
+                       type = "blob-ext";
+                       optional;
+               };
+
+       };
+};
+
+&binman {
+       tiboot3-am64x_sr2-hs-fs-evm.bin {
+               filename = "tiboot3-am64x_sr2-hs-fs-evm.bin";
+               symlink = "tiboot3.bin";
+               ti-secure-rom {
+                       content = <&u_boot_spl_fs>, <&ti_sci_enc_fs>,
+                               <&combined_sysfw_cfg_fs>, <&sysfw_inner_cert_fs>;
+                       combined;
+                       sysfw-inner-cert;
+                       keyfile = "custMpk.pem";
+                       sw-rev = <1>;
+                       content-sbl = <&u_boot_spl_fs>;
+                       content-sysfw = <&ti_sci_enc_fs>;
+                       content-sysfw-data = <&combined_sysfw_cfg_fs>;
+                       content-sysfw-inner-cert = <&sysfw_inner_cert_fs>;
+                       load = <0x70000000>;
+                       load-sysfw = <0x44000>;
+                       load-sysfw-data = <0x7b000>;
+               };
+               u_boot_spl_fs: u-boot-spl {
+                       no-expanded;
+               };
+               ti_sci_enc_fs: ti-fs-enc.bin {
+                       filename = "ti-sysfw/ti-sci-firmware-am64x_sr2-hs-fs-enc.bin";
+                       type = "blob-ext";
+                       optional;
+               };
+               combined_sysfw_cfg_fs: combined-sysfw-cfg.bin {
+                       filename = "combined-sysfw-cfg.bin";
+                       type = "blob-ext";
+               };
+               sysfw_inner_cert_fs: sysfw-inner-cert {
+                       filename = "ti-sysfw/ti-sci-firmware-am64x_sr2-hs-fs-cert.bin";
+                       type = "blob-ext";
+                       optional;
+               };
+
+       };
+};
+
+&binman {
+       tiboot3-am64x-gp-evm.bin {
+               filename = "tiboot3-am64x-gp-evm.bin";
+               ti-secure-rom {
+                       content = <&u_boot_spl_unsigned>, <&ti_sci_gp>, <&combined_sysfw_cfg_gp>;
+                       combined;
+                       content-sbl = <&u_boot_spl_unsigned>;
+                       load = <0x70000000>;
+                       content-sysfw = <&ti_sci_gp>;
+                       load-sysfw = <0x44000>;
+                       content-sysfw-data = <&combined_sysfw_cfg_gp>;
+                       load-sysfw-data = <0x7b000>;
+                       sw-rev = <1>;
+                       keyfile = "ti-degenerate-key.pem";
+               };
+               u_boot_spl_unsigned: u-boot-spl {
+                       no-expanded;
+               };
+               ti_sci_gp: ti-sci-gp.bin {
+                       filename = "ti-sysfw/ti-sci-firmware-am64x-gp.bin";
+                       type = "blob-ext";
+                       optional;
+               };
+               combined_sysfw_cfg_gp: combined-sysfw-cfg-gp.bin {
+                       filename = "combined-sysfw-cfg.bin";
+                       type = "blob-ext";
+               };
+       };
+};
+
+#endif
+
+#ifdef CONFIG_TARGET_AM642_A53_EVM
+
+#define SPL_NODTB "spl/u-boot-spl-nodtb.bin"
+#define SPL_AM642_EVM_DTB "spl/dts/k3-am642-evm.dtb"
+#define SPL_AM642_SK_DTB "spl/dts/k3-am642-sk.dtb"
+
+#define UBOOT_NODTB "u-boot-nodtb.bin"
+#define AM642_EVM_DTB "arch/arm/dts/k3-am642-evm.dtb"
+#define AM642_SK_DTB "arch/arm/dts/k3-am642-sk.dtb"
+
+&binman {
+       ti-spl {
+               filename = "tispl.bin";
+               pad-byte = <0xff>;
+
+               fit {
+                       description = "Configuration to load ATF and SPL";
+                       #address-cells = <1>;
+
+                       images {
+
+                               atf {
+                                       description = "ARM Trusted Firmware";
+                                       type = "firmware";
+                                       arch = "arm64";
+                                       compression = "none";
+                                       os = "arm-trusted-firmware";
+                                       load = <CONFIG_K3_ATF_LOAD_ADDR>;
+                                       entry = <CONFIG_K3_ATF_LOAD_ADDR>;
+                                       ti-secure {
+                                               content = <&atf>;
+                                               keyfile = "custMpk.pem";
+                                       };
+                                       atf: atf-bl31 {
+                                       };
+                               };
+
+                               tee {
+                                       description = "OP-TEE";
+                                       type = "tee";
+                                       arch = "arm64";
+                                       compression = "none";
+                                       os = "tee";
+                                       load = <0x9e800000>;
+                                       entry = <0x9e800000>;
+                                       ti-secure {
+                                               content = <&tee>;
+                                               keyfile = "custMpk.pem";
+                                       };
+                                       tee: tee-os {
+                                       };
+                               };
+
+                               dm {
+                                       description = "DM binary";
+                                       type = "firmware";
+                                       arch = "arm32";
+                                       compression = "none";
+                                       os = "DM";
+                                       load = <0x89000000>;
+                                       entry = <0x89000000>;
+                                       blob-ext {
+                                               filename = "/dev/null";
+                                       };
+                               };
+
+                               spl {
+                                       description = "SPL (64-bit)";
+                                       type = "standalone";
+                                       os = "U-Boot";
+                                       arch = "arm64";
+                                       compression = "none";
+                                       load = <CONFIG_SPL_TEXT_BASE>;
+                                       entry = <CONFIG_SPL_TEXT_BASE>;
+                                       ti-secure {
+                                               content = <&u_boot_spl_nodtb>;
+                                               keyfile = "custMpk.pem";
+
+                                       };
+                                       u_boot_spl_nodtb: blob-ext {
+                                               filename = SPL_NODTB;
+                                       };
+                               };
+
+                               fdt-0 {
+                                       description = "k3-am642-evm";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       ti-secure {
+                                               content = <&spl_am64x_evm_dtb>;
+                                               keyfile = "custMpk.pem";
+                                       };
+                                       spl_am64x_evm_dtb: blob-ext {
+                                               filename = SPL_AM642_EVM_DTB;
+                                       };
+
+                               };
+
+                               fdt-1 {
+                                       description = "k3-am642-sk";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       ti-secure {
+                                               content = <&spl_am64x_sk_dtb>;
+                                               keyfile = "custMpk.pem";
+                                       };
+                                       spl_am64x_sk_dtb: blob-ext {
+                                               filename = SPL_AM642_SK_DTB;
+                                       };
+
+                               };
+                       };
+
+                       configurations {
+                               default = "conf-0";
+
+                               conf-0 {
+                                       description = "k3-am642-evm";
+                                       firmware = "atf";
+                                       loadables = "tee", "dm", "spl";
+                                       fdt = "fdt-0";
+                               };
+
+                               conf-1 {
+                                       description = "k3-am642-sk";
+                                       firmware = "atf";
+                                       loadables = "tee", "dm", "spl";
+                                       fdt = "fdt-1";
+                               };
+                       };
+               };
+       };
+};
+
+&binman {
+       u-boot {
+               filename = "u-boot.img";
+               pad-byte = <0xff>;
+
+               fit {
+                       description = "FIT image with multiple configurations";
+
+                       images {
+                               uboot {
+                                       description = "U-Boot for AM64 board";
+                                       type = "firmware";
+                                       os = "u-boot";
+                                       arch = "arm";
+                                       compression = "none";
+                                       load = <CONFIG_TEXT_BASE>;
+                                       ti-secure {
+                                               content = <&u_boot_nodtb>;
+                                               keyfile = "custMpk.pem";
+                                       };
+                                       u_boot_nodtb: u-boot-nodtb {
+                                       };
+                                       hash {
+                                               algo = "crc32";
+                                       };
+                               };
+
+                               fdt-0 {
+                                       description = "k3-am642-evm";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       ti-secure {
+                                               content = <&am64x_evm_dtb>;
+                                               keyfile = "custMpk.pem";
+
+                                       };
+                                       am64x_evm_dtb: blob-ext {
+                                               filename = AM642_EVM_DTB;
+                                       };
+                                       hash {
+                                               algo = "crc32";
+                                       };
+                               };
+
+                               fdt-1 {
+                                       description = "k3-am642-sk";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       ti-secure {
+                                               content = <&am64x_sk_dtb>;
+                                               keyfile = "custMpk.pem";
+
+                                       };
+                                       am64x_sk_dtb: blob-ext {
+                                               filename = AM642_SK_DTB;
+                                       };
+                                       hash {
+                                               algo = "crc32";
+                                       };
+                               };
+
+                       };
+
+                       configurations {
+                               default = "conf-0";
+
+                               conf-0 {
+                                       description = "k3-am642-evm";
+                                       firmware = "uboot";
+                                       loadables = "uboot";
+                                       fdt = "fdt-0";
+                               };
+
+                               conf-1 {
+                                       description = "k3-am642-sk";
+                                       firmware = "uboot";
+                                       loadables = "uboot";
+                                       fdt = "fdt-1";
+                               };
+                       };
+               };
+       };
+};
+
+&binman {
+       ti-spl_unsigned {
+               filename = "tispl.bin_unsigned";
+               pad-byte = <0xff>;
+
+               fit {
+                       description = "Configuration to load ATF and SPL";
+                       #address-cells = <1>;
+
+                       images {
+
+                               atf {
+                                       description = "ARM Trusted Firmware";
+                                       type = "firmware";
+                                       arch = "arm64";
+                                       compression = "none";
+                                       os = "arm-trusted-firmware";
+                                       load = <CONFIG_K3_ATF_LOAD_ADDR>;
+                                       entry = <CONFIG_K3_ATF_LOAD_ADDR>;
+                                       atf-bl31 {
+                                       };
+                               };
+
+                               tee {
+                                       description = "OP-TEE";
+                                       type = "tee";
+                                       arch = "arm64";
+                                       compression = "none";
+                                       os = "tee";
+                                       load = <0x9e800000>;
+                                       entry = <0x9e800000>;
+                                       tee-os {
+                                       };
+                               };
+
+                               dm {
+                                       description = "DM binary";
+                                       type = "firmware";
+                                       arch = "arm32";
+                                       compression = "none";
+                                       os = "DM";
+                                       load = <0x89000000>;
+                                       entry = <0x89000000>;
+                                       blob-ext {
+                                               filename = "/dev/null";
+                                       };
+                               };
+
+                               spl {
+                                       description = "SPL (64-bit)";
+                                       type = "standalone";
+                                       os = "U-Boot";
+                                       arch = "arm64";
+                                       compression = "none";
+                                       load = <CONFIG_SPL_TEXT_BASE>;
+                                       entry = <CONFIG_SPL_TEXT_BASE>;
+                                       blob {
+                                               filename = "spl/u-boot-spl-nodtb.bin";
+                                       };
+                               };
+
+                               fdt-0 {
+                                       description = "k3-am642-evm";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       blob {
+                                               filename = SPL_AM642_EVM_DTB;
+                                       };
+                               };
+
+                               fdt-1 {
+                                       description = "k3-am642-sk";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       blob {
+                                               filename = SPL_AM642_SK_DTB;
+                                       };
+                               };
+                       };
+
+                       configurations {
+                               default = "conf-0";
+
+                               conf-0 {
+                                       description = "k3-am642-evm";
+                                       firmware = "atf";
+                                       loadables = "tee", "dm", "spl";
+                                       fdt = "fdt-0";
+                               };
+
+                               conf-1 {
+                                       description = "k3-am642-sk";
+                                       firmware = "atf";
+                                       loadables = "tee", "dm", "spl";
+                                       fdt = "fdt-1";
+                               };
+                       };
+               };
+       };
+};
+
+&binman {
+       u-boot_unsigned {
+               filename = "u-boot.img_unsigned";
+               pad-byte = <0xff>;
+
+               fit {
+                       description = "FIT image with multiple configurations";
+
+                       images {
+                               uboot {
+                                       description = "U-Boot for AM64 board";
+                                       type = "firmware";
+                                       os = "u-boot";
+                                       arch = "arm";
+                                       compression = "none";
+                                       load = <CONFIG_TEXT_BASE>;
+                                       blob {
+                                               filename = UBOOT_NODTB;
+                                       };
+                                       hash {
+                                               algo = "crc32";
+                                       };
+                               };
+
+                               fdt-0 {
+                                       description = "k3-am642-evm";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       blob {
+                                               filename = AM642_EVM_DTB;
+                                       };
+                                       hash {
+                                               algo = "crc32";
+                                       };
+                               };
+
+                               fdt-1 {
+                                       description = "k3-am642-sk";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       blob {
+                                               filename = AM642_SK_DTB;
+                                       };
+                                       hash {
+                                               algo = "crc32";
+                                       };
+                               };
+                       };
+
+                       configurations {
+                               default = "conf-0";
+
+                               conf-0 {
+                                       description = "k3-am642-evm";
+                                       firmware = "uboot";
+                                       loadables = "uboot";
+                                       fdt = "fdt-0";
+                               };
+
+                               conf-1 {
+                                       description = "k3-am642-sk";
+                                       firmware = "uboot";
+                                       loadables = "uboot";
+                                       fdt = "fdt-1";
+                               };
+                       };
+               };
+       };
+};
+#endif
index afb54f8cdabb92306fd138a2fc953d250b175ff3..fb596e4adfcad2c46a397a1391ee87a17dcd4300 100644 (file)
@@ -9,6 +9,7 @@ choice
 config TARGET_AM642_A53_EVM
        bool "TI K3 based AM642 EVM running on A53"
        select ARM64
+       select BINMAN
        imply BOARD
        imply SPL_BOARD
        imply TI_I2C_BOARD_DETECT
@@ -21,6 +22,7 @@ config TARGET_AM642_R5_EVM
        select RAM
        select SPL_RAM
        select K3_DDRSS
+       select BINMAN
        imply SYS_K3_SPL_ATF
        imply TI_I2C_BOARD_DETECT