// SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) Siemens AG, 2020-2023 * * Authors: * Jan Kiszka * Chao Zeng */ #include / { binman: binman { multiple-images; }; }; &binman { common_part: template { pad-byte = <0xff>; size = <0x8c0000>; allow-repack; blob-ext@0 { offset = <0x000000>; missing-msg = "iot2050-seboot"; }; fit@180000 { offset = <0x180000>; filename = "tispl.bin"; pad-byte = <0xff>; description = "Configuration to load ATF and SPL"; images { atf { description = "ARM Trusted Firmware"; type = "firmware"; arch = "arm64"; compression = "none"; os = "arm-trusted-firmware"; load = ; entry = ; 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 = ; entry = ; blob-ext { filename = "spl/u-boot-spl-nodtb.bin"; }; }; fdt-0 { description = "k3-am65-iot2050-spl.dtb"; type = "flat_dt"; arch = "arm"; compression = "none"; blob-ext { filename = "spl/dts/k3-am65-iot2050-spl.dtb"; }; }; }; configurations { default = "spl"; spl { fdt = "fdt-0"; firmware = "atf"; loadables = "tee", "dm", "spl"; }; }; }; fit@380000 { description = "U-Boot for IOT2050"; offset = <0x380000>; images { u-boot { description = "U-Boot"; type = "standalone"; arch = "arm64"; os = "u-boot"; compression = "none"; load = <0x80800000>; entry = <0x80800000>; u-boot-nodtb { }; hash { algo = "sha256"; }; }; @fdt-SEQ { description = "fdt-NAME"; type = "flat_dt"; arch = "arm64"; compression = "none"; hash { algo = "sha256"; }; }; #ifdef CONFIG_WDT_K3_RTI_FW_FILE k3-rti-wdt-firmware { type = "firmware"; load = <0x82000000>; arch = "arm"; compression = "none"; blob-ext { filename = CONFIG_WDT_K3_RTI_FW_FILE; missing-msg = "k3-rti-wdt-firmware"; }; hash { algo = "sha256"; }; }; #endif }; configurations { @config-SEQ { description = "NAME"; firmware = "u-boot"; fdt = "fdt-SEQ"; signature { sign-images = "firmware", "fdt", "loadables"; }; }; }; }; fdtmap { }; /* primary env */ fill@680000 { offset = <0x680000>; size = <0x020000>; fill-byte = [00]; }; /* secondary env */ fill@6a0000 { offset = <0x6a0000>; size = <0x020000>; fill-byte = [00]; }; /* OTP update command block */ #ifdef CONFIG_IOT2050_EMBED_OTPCMD blob-ext@6c0000 { offset = <0x6c0000>; size = <0x010000>; filename = "otpcmd.bin"; missing-msg = "iot2050-otpcmd"; }; #else fill@6c0000 { offset = <0x6c0000>; size = <0x010000>; fill-byte = [ff]; }; #endif }; flash-pg1 { filename = "flash-pg1.bin"; insert-template = <&common_part>; blob-ext@0 { filename = "seboot_pg1.bin"; }; fit@380000 { fit,fdt-list-val = "k3-am6528-iot2050-basic", "k3-am6548-iot2050-advanced"; configurations { default = "k3-am6528-iot2050-basic"; @config-SEQ { loadables = #ifdef CONFIG_WDT_K3_RTI_FW_FILE "k3-rti-wdt-firmware", #endif <>; }; }; }; }; flash-pg2 { filename = "flash-pg2.bin"; insert-template = <&common_part>; blob-ext@0 { filename = "seboot_pg2.bin"; }; fit@380000 { fit,fdt-list-val = "k3-am6528-iot2050-basic-pg2", "k3-am6548-iot2050-advanced-pg2", "k3-am6548-iot2050-advanced-m2"; images { bkey-usb3-overlay { description = "M.2-bkey-usb3-overlay"; type = "blob"; load = <0x82100000>; arch = "arm64"; compression = "none"; blob-ext { filename = "k3-am6548-iot2050-advanced-m2-bkey-usb3-overlay.dtbo"; }; hash { algo = "sha256"; }; }; bkey-ekey-pcie-overlay { description = "M.2-bkey-ekey-pcie-overlay"; type = "blob"; load = <0x82110000>; arch = "arm64"; compression = "none"; blob-ext { filename = "k3-am6548-iot2050-advanced-m2-bkey-ekey-pcie-overlay.dtbo"; }; hash { algo = "sha256"; }; }; }; configurations { default = "k3-am6528-iot2050-basic-pg2"; @config-SEQ { loadables = #ifdef CONFIG_WDT_K3_RTI_FW_FILE "k3-rti-wdt-firmware", #endif "bkey-usb3-overlay", "bkey-ekey-pcie-overlay"; }; }; }; }; };