am64x: dts: binman: Package tiboot3.bin, tispl.bin u-boot.img

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>
This commit is contained in:
Neha Malcom Francis 2023-07-22 00:14:34 +05:30 committed by Tom Rini
parent 640bf9dd8e
commit 1bc527e8f4
5 changed files with 522 additions and 0 deletions

View File

@ -3,6 +3,8 @@
* Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/ * Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/
*/ */
#include "k3-am64x-binman.dtsi"
/ { / {
chosen { chosen {
stdout-path = "serial2:115200n8"; stdout-path = "serial2:115200n8";

View File

@ -8,6 +8,7 @@
#include "k3-am642.dtsi" #include "k3-am642.dtsi"
#include "k3-am64-evm-ddr4-1600MTs.dtsi" #include "k3-am64-evm-ddr4-1600MTs.dtsi"
#include "k3-am64-ddr.dtsi" #include "k3-am64-ddr.dtsi"
#include "k3-am64x-binman.dtsi"
/ { / {
chosen { chosen {

View File

@ -3,6 +3,8 @@
* Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/ * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
*/ */
#include "k3-am64x-binman.dtsi"
/ { / {
chosen { chosen {
stdout-path = "serial2:115200n8"; stdout-path = "serial2:115200n8";

View File

@ -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

View File

@ -9,6 +9,7 @@ choice
config TARGET_AM642_A53_EVM config TARGET_AM642_A53_EVM
bool "TI K3 based AM642 EVM running on A53" bool "TI K3 based AM642 EVM running on A53"
select ARM64 select ARM64
select BINMAN
imply BOARD imply BOARD
imply SPL_BOARD imply SPL_BOARD
imply TI_I2C_BOARD_DETECT imply TI_I2C_BOARD_DETECT
@ -21,6 +22,7 @@ config TARGET_AM642_R5_EVM
select RAM select RAM
select SPL_RAM select SPL_RAM
select K3_DDRSS select K3_DDRSS
select BINMAN
imply SYS_K3_SPL_ATF imply SYS_K3_SPL_ATF
imply TI_I2C_BOARD_DETECT imply TI_I2C_BOARD_DETECT