Support added for HS and GP boot binaries for AM62

tiboot3.bin, tispl.bin and u-boot.img: For HS devices
tiboot3.bin_unsigned, tispl.bin_unsigned, u-boot.img_unsigned: For GP
devices

It is to be noted that the bootflow followed by AM62 requires:

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

tispl.bin:
        * DM
        * ATF
        * OPTEE
        * A72 SPL
        * A72 SPL dtbs

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

Signed-off-by: Neha Malcom Francis <n-fran...@ti.com>
---
 arch/arm/dts/k3-am625-r5-sk.dts      |   1 +
 arch/arm/dts/k3-am625-sk-binman.dtsi | 472 +++++++++++++++++++++++++++
 arch/arm/dts/k3-am625-sk-u-boot.dtsi |   2 +
 board/ti/am62x/Kconfig               |   2 +
 4 files changed, 477 insertions(+)
 create mode 100644 arch/arm/dts/k3-am625-sk-binman.dtsi

diff --git a/arch/arm/dts/k3-am625-r5-sk.dts b/arch/arm/dts/k3-am625-r5-sk.dts
index dad46704a2..26ccfa0a4b 100644
--- a/arch/arm/dts/k3-am625-r5-sk.dts
+++ b/arch/arm/dts/k3-am625-r5-sk.dts
@@ -9,6 +9,7 @@
 #include "k3-am62-ddr.dtsi"
 
 #include "k3-am625-sk-u-boot.dtsi"
+#include "k3-am625-sk-binman.dtsi"
 
 / {
        aliases {
diff --git a/arch/arm/dts/k3-am625-sk-binman.dtsi 
b/arch/arm/dts/k3-am625-sk-binman.dtsi
new file mode 100644
index 0000000000..13c90791b0
--- /dev/null
+++ b/arch/arm/dts/k3-am625-sk-binman.dtsi
@@ -0,0 +1,472 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/ {
+       binman: binman {
+               multiple-images;
+       };
+};
+
+#ifdef CONFIG_TARGET_AM625_R5_EVM
+
+&binman {
+       board-cfg {
+               filename = "board-cfg.bin";
+               ti-board-config {
+                       config = "board-cfg.yaml";
+                       schema = "schema.yaml";
+               };
+       };
+       pm-cfg {
+               filename = "pm-cfg.bin";
+               ti-board-config {
+                       config = "pm-cfg.yaml";
+                       schema = "schema.yaml";
+               };
+       };
+       rm-cfg {
+               filename = "rm-cfg.bin";
+               ti-board-config {
+                       config = "rm-cfg.yaml";
+                       schema = "schema.yaml";
+               };
+       };
+       sec-cfg {
+               filename = "sec-cfg.bin";
+               ti-board-config {
+                       config = "sec-cfg.yaml";
+                       schema = "schema.yaml";
+               };
+       };
+       combined-tifs-cfg {
+               filename = "combined-tifs-cfg.bin";
+               ti-board-config {
+                       board-cfg {
+                               config = "board-cfg.yaml";
+                               schema = "schema.yaml";
+                       };
+                       sec-cfg {
+                               config = "sec-cfg.yaml";
+                               schema = "schema.yaml";
+                       };
+                       pm-cfg {
+                               config = "pm-cfg.yaml";
+                               schema = "schema.yaml";
+                       };
+                       rm-cfg {
+                               config = "rm-cfg.yaml";
+                               schema = "schema.yaml";
+                       };
+               };
+       };
+       combined-dm-cfg {
+               filename = "combined-dm-cfg.bin";
+               ti-board-config {
+                       pm-cfg {
+                               config = "pm-cfg.yaml";
+                               schema = "schema.yaml";
+                       };
+                       rm-cfg {
+                               config = "rm-cfg.yaml";
+                               schema = "schema.yaml";
+                       };
+
+               };
+       };
+       tiboot3 {
+               filename = "tiboot3.bin";
+               ti-secure-rom {
+                       content = <&u_boot_spl>, <&ti_fs_enc>, 
<&combined_tifs_cfg>,
+                               <&combined_dm_cfg>, <&sysfw_inner_cert>;
+                       combined;
+                       dm-data;
+                       sysfw-inner-cert;
+                       keyfile = "custMpk.pem";
+                       sw-rev = <1>;
+                       content-sbl = <&u_boot_spl>;
+                       content-sysfw = <&ti_fs_enc>;
+                       content-sysfw-data = <&combined_tifs_cfg>;
+                       content-sysfw-inner-cert = <&sysfw_inner_cert>;
+                       content-dm-data = <&combined_dm_cfg>;
+                       load = <0x43c00000>;
+                       load-sysfw = <0x40000>;
+                       load-sysfw-data = <0x67000>;
+                       load-dm-data = <0x43c3a800>;
+               };
+               u_boot_spl: u-boot-spl {
+                       no-expanded;
+               };
+               ti_fs_enc: ti-fs-enc.bin {
+                       filename = "ti-fs-firmware-am62x-hs-enc.bin";
+                       type = "blob-ext";
+                       optional;
+               };
+               combined_tifs_cfg: blob-ext@1 {
+                       filename = "combined-tifs-cfg.bin";
+               };
+               combined_dm_cfg: combined-dm-cfg.bin {
+                       filename = "combined-dm-cfg.bin";
+                       type = "blob-ext";
+               };
+               sysfw_inner_cert: sysfw-inner-cert {
+                       filename = "ti-fs-firmware-am62x-hs-cert.bin";
+                       type = "blob-ext";
+                       optional;
+               };
+
+       };
+};
+
+&binman {
+       tiboot3_unsigned {
+               filename = "tiboot3.bin_unsigned";
+               ti-secure-rom {
+                       content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
+                               <&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
+                       combined;
+                       dm-data;
+                       content-sbl = <&u_boot_spl_unsigned>;
+                       load = <0x43c00000>;
+                       content-sysfw = <&ti_fs_gp>;
+                       load-sysfw = <0x40000>;
+                       content-sysfw-data = <&combined_tifs_cfg_gp>;
+                       load-sysfw-data = <0x67000>;
+                       content-dm-data = <&combined_dm_cfg_gp>;
+                       load-dm-data = <0x43c3a800>;
+                       sw-rev = <1>;
+                       keyfile = "ti-degenerate-key.pem";
+               };
+               u_boot_spl_unsigned: u-boot-spl {
+                       no-expanded;
+               };
+               ti_fs_gp: ti-fs-gp.bin {
+                       filename = "ti-fs-firmware-am62x-gp.bin";
+                       type = "blob-ext";
+                       optional;
+               };
+               combined_tifs_cfg_gp: combined-tifs-cfg-gp.bin {
+                       filename = "combined-tifs-cfg.bin";
+                       type = "blob-ext";
+               };
+               combined_dm_cfg_gp: combined-dm-cfg-gp.bin {
+                       filename = "combined-dm-cfg.bin";
+                       type = "blob-ext";
+               };
+
+       };
+};
+
+#endif
+
+#ifdef CONFIG_TARGET_AM625_A53_EVM
+
+#define SPL_NODTB "spl/u-boot-spl-nodtb.bin"
+#define SPL_AM625_SK_DTB "spl/dts/k3-am625-sk.dtb"
+
+#define UBOOT_NODTB "u-boot-nodtb.bin"
+#define AM625_SK_DTB "arch/arm/dts/k3-am625-sk.dtb"
+
+&binman {
+       ti-dm {
+               filename = "ti-dm.bin";
+               blob-ext {
+                       filename = "ipc_echo_testb_mcu1_0_release_strip.xer5f";
+               };
+       };
+       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>;
+                                       atf-bl31 {
+                                       };
+                               };
+
+                               tee {
+                                       description = "OPTEE";
+                                       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 = "ti-dm.bin";
+                                       };
+                               };
+
+                               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-am625-sk";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       ti-secure {
+                                               content = <&spl_am625_sk_dtb>;
+                                               keyfile = "custMpk.pem";
+                                       };
+                                       spl_am625_sk_dtb: blob-ext {
+                                               filename = SPL_AM625_SK_DTB;
+                                       };
+
+                               };
+
+                       };
+
+                       configurations {
+                               default = "conf-0";
+
+                               conf-0 {
+                                       description = "k3-am625-sk";
+                                       firmware = "atf";
+                                       loadables = "tee", "dm", "spl";
+                                       fdt = "fdt-0";
+                               };
+                       };
+               };
+       };
+};
+
+&binman {
+       u-boot {
+               filename = "u-boot.img";
+               pad-byte = <0xff>;
+
+               fit {
+                       description = "FIT image with multiple configurations";
+
+                       images {
+                               uboot {
+                                       description = "U-Boot for AM625 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-am625-sk";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       ti-secure {
+                                               content = <&am625_sk_dtb>;
+                                               keyfile = "custMpk.pem";
+                                       };
+                                       am625_sk_dtb: blob-ext {
+                                               filename = AM625_SK_DTB;
+                                       };
+                                       hash {
+                                               algo = "crc32";
+                                       };
+                               };
+                       };
+
+                       configurations {
+                               default = "conf-0";
+
+                               conf-0 {
+                                       description = "k3-am625-sk";
+                                       firmware = "uboot";
+                                       loadables = "uboot";
+                                       fdt = "fdt-0";
+                               };
+
+                       };
+               };
+       };
+};
+
+&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 {
+                                               filename = "bl31.bin";
+                                       };
+                               };
+
+                               tee {
+                                       description = "OPTEE";
+                                       type = "tee";
+                                       arch = "arm64";
+                                       compression = "none";
+                                       os = "tee";
+                                       load = <0x9e800000>;
+                                       entry = <0x9e800000>;
+                                       tee-os {
+                                               filename = "tee-pager_v2.bin";
+                                       };
+                               };
+
+                               dm {
+                                       description = "DM binary";
+                                       type = "firmware";
+                                       arch = "arm32";
+                                       compression = "none";
+                                       os = "DM";
+                                       load = <0x89000000>;
+                                       entry = <0x89000000>;
+                                       blob-ext {
+                                               filename = "ti-dm.bin";
+                                       };
+                               };
+
+                               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-1 {
+                                       description = "k3-am625-sk";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       blob {
+                                               filename = SPL_AM625_SK_DTB;
+                                       };
+                               };
+                       };
+
+                       configurations {
+                               default = "conf-1";
+
+                               conf-1 {
+                                       description = "k3-am625-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 AM625 board";
+                                       type = "firmware";
+                                       os = "u-boot";
+                                       arch = "arm";
+                                       compression = "none";
+                                       load = <CONFIG_TEXT_BASE>;
+                                       blob {
+                                               filename = UBOOT_NODTB;
+                                       };
+                                       hash {
+                                               algo = "crc32";
+                                       };
+                               };
+
+                               fdt-1 {
+                                       description = "k3-am625-sk";
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+                                       blob {
+                                               filename = AM625_SK_DTB;
+                                       };
+                                       hash {
+                                               algo = "crc32";
+                                       };
+                               };
+                       };
+
+                       configurations {
+                               default = "conf-1";
+
+                               conf-1 {
+                                       description = "k3-am625-sk";
+                                       firmware = "uboot";
+                                       loadables = "uboot";
+                                       fdt = "fdt-1";
+                               };
+                       };
+               };
+       };
+};
+#endif
diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi 
b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
index 249155733a..a60c37f1db 100644
--- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
@@ -4,6 +4,8 @@
  * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#include "k3-am625-sk-binman.dtsi"
+
 / {
        chosen {
                stdout-path = "serial2:115200n8";
diff --git a/board/ti/am62x/Kconfig b/board/ti/am62x/Kconfig
index 5e8dfa3cc4..cd17e939e5 100644
--- a/board/ti/am62x/Kconfig
+++ b/board/ti/am62x/Kconfig
@@ -10,6 +10,7 @@ choice
 config TARGET_AM625_A53_EVM
        bool "TI K3 based AM625 EVM running on A53"
        select ARM64
+       select BINMAN
 
 config TARGET_AM625_R5_EVM
        bool "TI K3 based AM625 EVM running on R5"
@@ -19,6 +20,7 @@ config TARGET_AM625_R5_EVM
        select RAM
        select SPL_RAM
        select K3_DDRSS
+       select BINMAN
        imply SYS_K3_SPL_ATF
 
 endchoice
-- 
2.34.1

Reply via email to