// SPDX-License-Identifier: GPL-2.0 /* * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/ */ #include "k3-binman.dtsi" #ifdef CONFIG_TARGET_J721E_R5_EVM &binman { tiboot3-j721e_sr1_1-hs-evm.bin { filename = "tiboot3-j721e_sr1_1-hs-evm.bin"; ti-secure-rom { content = <&u_boot_spl>; core = "public"; core-opts = <2>; load = ; keyfile = "custMpk.pem"; }; u_boot_spl: u-boot-spl { no-expanded; }; }; sysfw { filename = "sysfw.bin"; ti-secure-rom { content = <&ti_fs_cert>; core = "secure"; load = <0x40000>; keyfile = "custMpk.pem"; countersign; }; ti_fs_cert: ti-fs-cert.bin { filename = "ti-sysfw/ti-fs-firmware-j721e_sr1_1-hs-cert.bin"; type = "blob-ext"; optional; }; ti-fs-firmware-j721e_sr1_1-hs-enc.bin { filename = "ti-sysfw/ti-fs-firmware-j721e_sr1_1-hs-enc.bin"; type = "blob-ext"; optional; }; }; itb { filename = "sysfw-j721e_sr1_1-hs-evm.itb"; fit { description = "SYSFW and Config fragments"; #address-cells = <1>; images { sysfw.bin { description = "sysfw"; type = "firmware"; arch = "arm"; compression = "none"; blob-ext { filename = "sysfw.bin"; }; }; board-cfg.bin { description = "board-cfg"; type = "firmware"; arch = "arm"; compression = "none"; ti-secure { content = <&board_cfg>; keyfile = "custMpk.pem"; }; board_cfg: board-cfg { filename = "board-cfg.bin"; type = "blob-ext"; }; }; pm-cfg.bin { description = "pm-cfg"; type = "firmware"; arch = "arm"; compression = "none"; ti-secure { content = <&pm_cfg>; keyfile = "custMpk.pem"; }; pm_cfg: pm-cfg { filename = "pm-cfg.bin"; type = "blob-ext"; }; }; rm-cfg.bin { description = "rm-cfg"; type = "firmware"; arch = "arm"; compression = "none"; ti-secure { content = <&rm_cfg>; keyfile = "custMpk.pem"; }; rm_cfg: rm-cfg { filename = "rm-cfg.bin"; type = "blob-ext"; }; }; sec-cfg.bin { description = "sec-cfg"; type = "firmware"; arch = "arm"; compression = "none"; ti-secure { content = <&sec_cfg>; keyfile = "custMpk.pem"; }; sec_cfg: sec-cfg { filename = "sec-cfg.bin"; type = "blob-ext"; }; }; }; }; }; }; &binman { tiboot3-j721e_sr2-hs-fs-evm.bin { filename = "tiboot3-j721e_sr2-hs-fs-evm.bin"; ti-secure-rom { content = <&u_boot_spl_fs>; core = "public"; core-opts = <2>; load = ; keyfile = "custMpk.pem"; }; u_boot_spl_fs: u-boot-spl { no-expanded; }; }; sysfw_fs { filename = "sysfw.bin_fs"; ti-fs-cert-fs.bin { filename = "ti-sysfw/ti-fs-firmware-j721e_sr2-hs-fs-cert.bin"; type = "blob-ext"; optional; }; ti-fs-firmware-j721e-hs-fs-enc.bin { filename = "ti-sysfw/ti-fs-firmware-j721e_sr2-hs-fs-enc.bin"; type = "blob-ext"; optional; }; }; itb_fs { filename = "sysfw-j721e_sr2-hs-fs-evm.itb"; fit { description = "SYSFW and Config fragments"; #address-cells = <1>; images { sysfw.bin { description = "sysfw"; type = "firmware"; arch = "arm"; compression = "none"; blob-ext { filename = "sysfw.bin_fs"; }; }; board-cfg.bin { description = "board-cfg"; type = "firmware"; arch = "arm"; compression = "none"; board-cfg { filename = "board-cfg.bin"; type = "blob-ext"; }; }; pm-cfg.bin { description = "pm-cfg"; type = "firmware"; arch = "arm"; compression = "none"; pm-cfg { filename = "pm-cfg.bin"; type = "blob-ext"; }; }; rm-cfg.bin { description = "rm-cfg"; type = "firmware"; arch = "arm"; compression = "none"; rm-cfg { filename = "rm-cfg.bin"; type = "blob-ext"; }; }; sec-cfg.bin { description = "sec-cfg"; type = "firmware"; arch = "arm"; compression = "none"; sec-cfg { filename = "sec-cfg.bin"; type = "blob-ext"; }; }; }; }; }; }; &binman { tiboot3-j721e-gp-evm.bin { filename = "tiboot3-j721e-gp-evm.bin"; symlink = "tiboot3.bin"; ti-secure-rom { content = <&u_boot_spl_unsigned>; core = "public"; core-opts = <2>; load = ; sw-rev = ; keyfile = "ti-degenerate-key.pem"; }; u_boot_spl_unsigned: u-boot-spl { no-expanded; }; }; sysfw_gp { filename = "sysfw.bin_gp"; ti-secure-rom { content = <&ti_fs>; core = "secure"; load = <0x40000>; sw-rev = ; keyfile = "ti-degenerate-key.pem"; }; ti_fs: ti-fs.bin { filename = "ti-sysfw/ti-fs-firmware-j721e-gp.bin"; type = "blob-ext"; optional; }; }; itb_gp { filename = "sysfw-j721e-gp-evm.itb"; symlink = "sysfw.itb"; fit { description = "SYSFW and Config fragments"; #address-cells = <1>; images { sysfw.bin { description = "sysfw"; type = "firmware"; arch = "arm"; compression = "none"; blob-ext { filename = "sysfw.bin_gp"; }; }; board-cfg.bin { description = "board-cfg"; type = "firmware"; arch = "arm"; compression = "none"; blob-ext { filename = "board-cfg.bin"; }; }; pm-cfg.bin { description = "pm-cfg"; type = "firmware"; arch = "arm"; compression = "none"; blob-ext { filename = "pm-cfg.bin"; }; }; rm-cfg.bin { description = "rm-cfg"; type = "firmware"; arch = "arm"; compression = "none"; blob-ext { filename = "rm-cfg.bin"; }; }; sec-cfg.bin { description = "sec-cfg"; type = "firmware"; arch = "arm"; compression = "none"; blob-ext { filename = "sec-cfg.bin"; }; }; }; }; }; }; #endif #ifdef CONFIG_TARGET_J721E_A72_EVM #define SPL_NODTB "spl/u-boot-spl-nodtb.bin" #define SPL_J721E_EVM_DTB "spl/dts/k3-j721e-common-proc-board.dtb" #define SPL_J721E_SK_DTB "spl/dts/k3-j721e-sk.dtb" #define UBOOT_NODTB "u-boot-nodtb.bin" #define J721E_EVM_DTB "u-boot.dtb" #define J721E_SK_DTB "arch/arm/dts/k3-j721e-sk.dtb" &binman { ti-dm { filename = "ti-dm.bin"; blob-ext { filename = "ti-dm/j721e/ipc_echo_testb_mcu1_0_release_strip.xer5f"; optional; }; }; 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 = ; entry = ; ti-secure { content = <&atf>; keyfile = "custMpk.pem"; auth-in-place = <0xa02>; firewall-257-0 { /* cpu_0_cpu_0_msmc Background Firewall */ id = <257>; region = <0>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_BG | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ALL << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD | FWPERM_NON_SECURE_PRIV_RWCD | FWPERM_NON_SECURE_USER_RWCD)>; start_address = <0x0 0x0>; end_address = <0xff 0xffffffff>; }; firewall-257-1 { /* cpu_0_cpu_0_msmc Foreground Firewall */ id = <257>; region = <1>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD)>; start_address = <0x0 0x70000000>; end_address = <0x0 0x7001ffff>; }; firewall-284-0 { /* dru_0_msmc Background Firewall */ id = <284>; region = <0>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_BG | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ALL << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD | FWPERM_NON_SECURE_PRIV_RWCD | FWPERM_NON_SECURE_USER_RWCD)>, <((FWPRIVID_ALL << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD | FWPERM_NON_SECURE_PRIV_RWCD | FWPERM_NON_SECURE_USER_RWCD)>, <((FWPRIVID_ALL << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD | FWPERM_NON_SECURE_PRIV_RWCD | FWPERM_NON_SECURE_USER_RWCD)>; start_address = <0x0 0x0>; end_address = <0xff 0xffffffff>; }; firewall-284-1 { /* dru_0_msmc Foreground Firewall */ id = <284>; region = <1>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD)>; start_address = <0x0 0x70000000>; end_address = <0x0 0x7001ffff>; }; /* firewall-4760-0 { * nb_slv0__mem0 Background Firewall * Already configured by the secure entity * }; */ firewall-4760-1 { /* nb_slv0__mem0 Foreground Firewall */ id = <4760>; region = <1>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD)>; start_address = <0x0 0x70000000>; end_address = <0x0 0x7001ffff>; }; /* firewall-4761-0 { * nb_slv1__mem0 Background Firewall * Already configured by the secure entity * }; */ firewall-4761-1 { /* nb_slv1__mem0 Foreground Firewall */ id = <4761>; region = <1>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD)>; start_address = <0x0 0x70000000>; end_address = <0x0 0x7001ffff>; }; }; atf: atf-bl31 { }; }; tee { description = "OPTEE"; type = "tee"; arch = "arm64"; compression = "none"; os = "tee"; load = <0x9e800000>; entry = <0x9e800000>; ti-secure { content = <&tee>; keyfile = "custMpk.pem"; auth-in-place = <0xa02>; /* cpu_0_cpu_0_msmc region 0 and 1 configured * during ATF Firewalling */ firewall-257-2 { /* cpu_0_cpu_0_msmc Foreground Firewall */ id = <257>; region = <2>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD)>; start_address = <0x0 0x9e800000>; end_address = <0x0 0x9fffffff>; }; /* dru_0_msmc region 0 and 1 configured * during ATF Firewalling */ firewall-284-2 { /* dru_0_msmc Foreground Firewall */ id = <284>; region = <2>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD)>; start_address = <0x0 0x9e800000>; end_address = <0x0 0x9fffffff>; }; firewall-4762-0 { /* nb_slv2__mem0 Background Firewall */ id = <4762>; region = <0>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_BG | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ALL << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD | FWPERM_NON_SECURE_PRIV_RWCD | FWPERM_NON_SECURE_USER_RWCD)>, <((FWPRIVID_ALL << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD | FWPERM_NON_SECURE_PRIV_RWCD | FWPERM_NON_SECURE_USER_RWCD)>, <((FWPRIVID_ALL << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD | FWPERM_NON_SECURE_PRIV_RWCD | FWPERM_NON_SECURE_USER_RWCD)>; start_address = <0x0 0x0>; end_address = <0xff 0xffffffff>; }; firewall-4762-1 { /* nb_slv2__mem0 Foreground Firewall */ id = <4762>; region = <1>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD)>; start_address = <0x0 0x9e800000>; end_address = <0x0 0x9fffffff>; }; firewall-4763-0 { /* nb_slv3__mem0 Background Firewall */ id = <4763>; region = <0>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_BG | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ALL << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD | FWPERM_NON_SECURE_PRIV_RWCD | FWPERM_NON_SECURE_USER_RWCD)>, <((FWPRIVID_ALL << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD | FWPERM_NON_SECURE_PRIV_RWCD | FWPERM_NON_SECURE_USER_RWCD)>, <((FWPRIVID_ALL << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD | FWPERM_NON_SECURE_PRIV_RWCD | FWPERM_NON_SECURE_USER_RWCD)>; start_address = <0x0 0x0>; end_address = <0xff 0xffffffff>; }; firewall-4763-1 { /* nb_slv3__mem0 Foreground Firewall */ id = <4763>; region = <1>; control = <(FWCTRL_EN | FWCTRL_LOCK | FWCTRL_CACHE)>; permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) | FWPERM_SECURE_PRIV_RWCD | FWPERM_SECURE_USER_RWCD)>; start_address = <0x0 0x9e800000>; end_address = <0x0 0x9fffffff>; }; }; tee: tee-os { }; }; dm { description = "DM binary"; type = "firmware"; arch = "arm32"; compression = "none"; os = "DM"; load = <0x89000000>; entry = <0x89000000>; ti-secure { content = <&dm>; keyfile = "custMpk.pem"; }; dm: ti-dm { filename = "ti-dm.bin"; }; }; spl { description = "SPL (64-bit)"; type = "standalone"; os = "U-Boot"; arch = "arm64"; compression = "none"; load = ; entry = ; ti-secure { content = <&u_boot_spl_nodtb>; keyfile = "custMpk.pem"; }; u_boot_spl_nodtb: blob-ext { filename = SPL_NODTB; }; }; fdt-0 { description = "k3-j721e-common-proc-board"; type = "flat_dt"; arch = "arm"; compression = "none"; ti-secure { content = <&spl_j721e_evm_dtb>; keyfile = "custMpk.pem"; }; spl_j721e_evm_dtb: blob-ext { filename = SPL_J721E_EVM_DTB; }; }; fdt-1 { description = "k3-j721e-sk"; type = "flat_dt"; arch = "arm"; compression = "none"; ti-secure { content = <&spl_j721e_sk_dtb>; keyfile = "custMpk.pem"; }; spl_j721e_sk_dtb: blob-ext { filename = SPL_J721E_SK_DTB; }; }; }; configurations { default = "conf-0"; conf-0 { description = "k3-j721e-common-proc-board"; firmware = "atf"; loadables = "tee", "dm", "spl"; fdt = "fdt-0"; }; conf-1 { description = "k3-j721e-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 j721e board"; type = "firmware"; os = "u-boot"; arch = "arm"; compression = "none"; load = ; ti-secure { content = <&u_boot_nodtb>; keyfile = "custMpk.pem"; }; u_boot_nodtb: u-boot-nodtb { }; hash { algo = "crc32"; }; }; fdt-0 { description = "k3-j721e-common-proc-board"; type = "flat_dt"; arch = "arm"; compression = "none"; ti-secure { content = <&j721e_evm_dtb>; keyfile = "custMpk.pem"; }; j721e_evm_dtb: blob-ext { filename = J721E_EVM_DTB; }; hash { algo = "crc32"; }; }; fdt-1 { description = "k3-j721e-sk"; type = "flat_dt"; arch = "arm"; compression = "none"; ti-secure { content = <&j721e_sk_dtb>; keyfile = "custMpk.pem"; }; j721e_sk_dtb: blob-ext { filename = J721E_SK_DTB; }; hash { algo = "crc32"; }; }; }; configurations { default = "conf-0"; conf-0 { description = "k3-j721e-common-proc-board"; firmware = "uboot"; loadables = "uboot"; fdt = "fdt-0"; }; conf-1 { description = "k3-j721e-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 = ; entry = ; 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>; ti-dm { filename = "ti-dm.bin"; }; }; spl { description = "SPL (64-bit)"; type = "standalone"; os = "U-Boot"; arch = "arm64"; compression = "none"; load = ; entry = ; blob-ext { filename = SPL_NODTB; }; }; fdt-0 { description = "k3-j721e-common-proc-board"; type = "flat_dt"; arch = "arm"; compression = "none"; spl_j721e_evm_dtb_unsigned: blob { filename = SPL_J721E_EVM_DTB; }; }; fdt-1 { description = "k3-j721e-sk"; type = "flat_dt"; arch = "arm"; compression = "none"; blob { filename = SPL_J721E_SK_DTB; }; }; }; configurations { default = "conf-0"; conf-0 { description = "k3-j721e-common-proc-board"; firmware = "atf"; loadables = "tee", "dm", "spl"; fdt = "fdt-0"; }; conf-1 { description = "k3-j721e-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 j721e board"; type = "firmware"; os = "u-boot"; arch = "arm"; compression = "none"; load = ; blob { filename = UBOOT_NODTB; }; hash { algo = "crc32"; }; }; fdt-0 { description = "k3-j721e-common-proc-board"; type = "flat_dt"; arch = "arm"; compression = "none"; j721e_evm_dtb_unsigned: blob { filename = J721E_EVM_DTB; }; hash { algo = "crc32"; }; }; fdt-1 { description = "k3-j721e-sk"; type = "flat_dt"; arch = "arm"; compression = "none"; blob { filename = J721E_SK_DTB; }; hash { algo = "crc32"; }; }; }; configurations { default = "conf-0"; conf-0 { description = "k3-j721e-common-proc-board"; firmware = "uboot"; loadables = "uboot"; fdt = "fdt-0"; }; conf-1 { description = "k3-j721e-sk"; firmware = "uboot"; loadables = "uboot"; fdt = "fdt-1"; }; }; }; }; }; #endif