u-boot/arch/arm/dts/k3-binman.dtsi
Neha Malcom Francis b153bad0f1 arm: dts: k3-binman: Add support for FIT templates
Add templates for FIT images used extensively across K3 boards with most
of the code common. This includes the FIT portions of:
	- tispl.bin
	- u-boot.img
	- sysfw.itb (in case of legacy boot flow)

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2023-11-22 13:48:20 -05:00

443 lines
8.5 KiB
Text

// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
*/
/ {
binman: binman {
multiple-images;
};
};
&binman {
custMpk {
filename = "custMpk.pem";
custmpk_pem: blob-ext {
filename = "arch/arm/mach-k3/keys/custMpk.pem";
};
};
ti-degenerate-key {
filename = "ti-degenerate-key.pem";
dkey_pem: blob-ext {
filename = "arch/arm/mach-k3/keys/ti-degenerate-key.pem";
};
};
};
#ifndef CONFIG_ARM64
&binman {
board-cfg {
filename = "board-cfg.bin";
bcfg_yaml: ti-board-config {
config = "board-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
};
pm-cfg {
filename = "pm-cfg.bin";
pcfg_yaml: ti-board-config {
config = "pm-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
};
rm-cfg {
filename = "rm-cfg.bin";
rcfg_yaml: ti-board-config {
config = "rm-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
};
sec-cfg {
filename = "sec-cfg.bin";
scfg_yaml: ti-board-config {
config = "sec-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
};
combined-tifs-cfg {
filename = "combined-tifs-cfg.bin";
ti-board-config {
bcfg_yaml_tifs: board-cfg {
config = "board-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
scfg_yaml_tifs: sec-cfg {
config = "sec-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
pcfg_yaml_tifs: pm-cfg {
config = "pm-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
rcfg_yaml_tifs: rm-cfg {
config = "rm-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
};
};
combined-dm-cfg {
filename = "combined-dm-cfg.bin";
ti-board-config {
pcfg_yaml_dm: pm-cfg {
config = "pm-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
rcfg_yaml_dm: rm-cfg {
config = "rm-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
};
};
combined-sysfw-cfg {
filename = "combined-sysfw-cfg.bin";
ti-board-config {
bcfg_yaml_sysfw: board-cfg {
config = "board-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
scfg_yaml_sysfw: sec-cfg {
config = "sec-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
pcfg_yaml_sysfw: pm-cfg {
config = "pm-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
rcfg_yaml_sysfw: rm-cfg {
config = "rm-cfg.yaml";
schema = "board/ti/common/schema.yaml";
};
};
};
};
&binman {
itb_template: template-5 {
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";
};
};
};
};
};
itb_unsigned_template: template-6 {
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";
};
};
};
};
};
};
#else
&binman {
ti_spl_template: template-1 {
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>;
};
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/u-boot-spl-nodtb.bin";
};
};
};
};
};
ti_spl_unsigned_template: template-2 {
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 = "OP-TEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = <0x9e800000>;
entry = <0x9e800000>;
tee-os {
filename = "tee-raw.bin";
};
};
dm {
description = "DM binary";
type = "firmware";
arch = "arm32";
compression = "none";
os = "DM";
load = <0x89000000>;
entry = <0x89000000>;
};
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-ext {
filename = "spl/u-boot-spl-nodtb.bin";
};
};
};
};
};
u_boot_template: template-3 {
filename = "u-boot.img";
pad-byte = <0xff>;
fit {
description = "FIT image with multiple configurations";
images {
uboot {
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";
};
};
};
};
};
u_boot_unsigned_template: template-4 {
filename = "u-boot.img_unsigned";
pad-byte = <0xff>;
fit {
description = "FIT image with multiple configurations";
images {
uboot {
type = "firmware";
os = "u-boot";
arch = "arm";
compression = "none";
load = <CONFIG_TEXT_BASE>;
blob {
filename = "u-boot-nodtb.bin";
};
hash {
algo = "crc32";
};
};
};
};
};
};
#endif