u-boot/arch/arm/dts/zynqmp-binman.dts
Michal Simek eade90fd00 arm64: zynqmp: Describe images without TF-A
U-Boot can run out of EL3, NS-EL2 and NS-EL1. Currently default
configuration is NS-EL2 with TF-A but when TF-A is not passed and
configured images can still boot just fine. That's why support this
configuration and describe it via binman.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/9b3dad80138e97005df3d033b4611c9d7e05a177.1738659214.git.michal.simek@amd.com
2025-02-05 16:22:55 +01:00

223 lines
4.4 KiB
Text

// SPDX-License-Identifier: GPL-2.0
/*
* dts file for Xilinx ZynqMP platforms
*
* (C) Copyright 2024, Advanced Micro Devices, Inc.
*
* Michal Simek <michal.simek@amd.com>
*/
#include <config.h>
/dts-v1/;
/ {
binman: binman {
multiple-images;
#ifdef CONFIG_SPL
/* u-boot.itb generation in a static way */
itb {
filename = "u-boot.itb";
pad-byte = <0>;
fit {
description = "Configuration for Xilinx ZynqMP SoC";
fit,align = <0x8>;
fit,external-offset = <0x0>;
fit,fdt-list = "of-list";
images {
uboot {
description = "U-Boot (64-bit)";
type = "firmware";
os = "u-boot";
arch = "arm64";
compression = "none";
load = /bits/ 64 <CONFIG_TEXT_BASE>;
entry = /bits/ 64 <CONFIG_TEXT_BASE>;
hash {
algo = "md5";
};
u-boot-nodtb {
};
};
atf {
description = "Trusted Firmware-A";
type = "firmware";
os = "arm-trusted-firmware";
arch = "arm64";
compression = "none";
load = /bits/ 64 <CONFIG_BL31_LOAD_ADDR>;
entry = /bits/ 64 <CONFIG_BL31_LOAD_ADDR>;
hash {
algo = "md5";
};
atf-bl31 {
optional;
};
};
tee {
description = "OP-TEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = /bits/ 64 <CONFIG_BL32_LOAD_ADDR>;
entry = /bits/ 64 <CONFIG_BL32_LOAD_ADDR>;
hash {
algo = "md5";
};
tee-os {
optional;
};
};
@fdt-SEQ {
description = "NAME";
type = "flat_dt";
arch = "arm64";
compression = "none";
#if CONFIG_XILINX_OF_BOARD_DTB_ADDR
load = /bits/ 64 <CONFIG_XILINX_OF_BOARD_DTB_ADDR>;
#endif
hash {
algo = "md5";
};
};
};
configurations {
default = "@conf-DEFAULT-SEQ";
@conf-SEQ {
description = "NAME";
#if CONFIG_BL31_LOAD_ADDR
firmware = "atf";
loadables = "tee", "uboot";
fdt = "fdt-SEQ";
#else
firmware = "uboot";
loadables = "fdt";
#endif
};
};
};
};
itb-single {
filename = "u-boot-single.itb";
pad-byte = <0>;
fit {
description = "Configuration for Xilinx ZynqMP SoC";
fit,align = <0x8>;
fit,external-offset = <0x0>;
fit,fdt-list = "of-list";
images {
uboot {
description = "U-Boot (64-bit)";
type = "firmware";
os = "u-boot";
arch = "arm64";
compression = "none";
load = /bits/ 64 <CONFIG_TEXT_BASE>;
entry = /bits/ 64 <CONFIG_TEXT_BASE>;
hash {
algo = "md5";
};
u-boot-nodtb {
};
};
atf {
description = "Trusted Firmware-A";
type = "firmware";
os = "arm-trusted-firmware";
arch = "arm64";
compression = "none";
load = /bits/ 64 <CONFIG_BL31_LOAD_ADDR>;
entry = /bits/ 64 <CONFIG_BL31_LOAD_ADDR>;
hash {
algo = "md5";
};
atf-bl31 {
optional;
};
};
tee {
description = "OP-TEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = /bits/ 64 <CONFIG_BL32_LOAD_ADDR>;
entry = /bits/ 64 <CONFIG_BL32_LOAD_ADDR>;
hash {
algo = "md5";
};
tee-os {
optional;
};
};
fdt {
description = "DT";
type = "flat_dt";
arch = "arm64";
compression = "none";
#if CONFIG_XILINX_OF_BOARD_DTB_ADDR
load = /bits/ 64 <CONFIG_XILINX_OF_BOARD_DTB_ADDR>;
#endif
hash {
algo = "md5";
};
uboot-fdt-blob {
filename = "u-boot.dtb";
type = "blob-ext";
};
};
};
configurations {
default = "conf-1";
conf-1 {
description = "Single DT";
firmware = "atf";
loadables = "tee", "uboot";
fdt = "fdt";
};
};
};
};
#ifdef CONFIG_SYS_SPI_U_BOOT_OFFS
/* QSPI image for testing QSPI boot mode */
image {
filename = "qspi.bin";
pad-byte = <0>;
blob-ext@1 {
offset = <0x0>;
filename = "spl/boot.bin";
};
blob-ext@2 {
offset = <CONFIG_SYS_SPI_U_BOOT_OFFS>;
filename = "u-boot.itb";
};
fdtmap {
};
};
image-single {
filename = "qspi-single.bin";
pad-byte = <0>;
blob-ext@1 {
offset = <0x0>;
filename = "spl/boot.bin";
};
blob-ext@2 {
offset = <CONFIG_SYS_SPI_U_BOOT_OFFS>;
filename = "u-boot-single.itb";
};
fdtmap {
};
};
#endif
#endif
};
};