// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright 2023 Toradex
 */

#include "k3-binman.dtsi"

#ifdef CONFIG_TARGET_VERDIN_AM62_R5

&binman {
	tiboot3-am62x-hs-verdin.bin {
		filename = "tiboot3-am62x-hs-verdin.bin";
		ti-secure-rom {
			content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
				<&combined_dm_cfg>, <&sysfw_inner_cert>;
			combined;
			dm-data;
			sysfw-inner-cert;
			keyfile = "custMpk.pem";
			sw-rev = <1>;
			content-sbl = <&u_boot_spl>;
			content-sysfw = <&ti_fs_enc>;
			content-sysfw-data = <&combined_tifs_cfg>;
			content-sysfw-inner-cert = <&sysfw_inner_cert>;
			content-dm-data = <&combined_dm_cfg>;
			load = <0x43c00000>;
			load-sysfw = <0x40000>;
			load-sysfw-data = <0x67000>;
			load-dm-data = <0x43c3a800>;
		};
		u_boot_spl: u-boot-spl {
			no-expanded;
		};
		ti_fs_enc: ti-fs-enc.bin {
			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-enc.bin";
			type = "blob-ext";
			optional;
		};
		combined_tifs_cfg: combined-tifs-cfg.bin {
			filename = "combined-tifs-cfg.bin";
			type = "blob-ext";
		};
		sysfw_inner_cert: sysfw-inner-cert {
			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-cert.bin";
			type = "blob-ext";
			optional;
		};
		combined_dm_cfg: combined-dm-cfg.bin {
			filename = "combined-dm-cfg.bin";
			type = "blob-ext";
		};
	};
};

&binman {
	tiboot3-am62x-hs-fs-verdin.bin {
		filename = "tiboot3-am62x-hs-fs-verdin.bin";
		symlink = "tiboot3.bin";
		ti-secure-rom {
			content = <&u_boot_spl_fs>, <&ti_fs_enc_fs>, <&combined_tifs_cfg_fs>,
				<&combined_dm_cfg_fs>, <&sysfw_inner_cert_fs>;
			combined;
			dm-data;
			sysfw-inner-cert;
			keyfile = "custMpk.pem";
			sw-rev = <1>;
			content-sbl = <&u_boot_spl_fs>;
			content-sysfw = <&ti_fs_enc_fs>;
			content-sysfw-data = <&combined_tifs_cfg_fs>;
			content-sysfw-inner-cert = <&sysfw_inner_cert_fs>;
			content-dm-data = <&combined_dm_cfg_fs>;
			load = <0x43c00000>;
			load-sysfw = <0x40000>;
			load-sysfw-data = <0x67000>;
			load-dm-data = <0x43c3a800>;
		};
		u_boot_spl_fs: u-boot-spl {
			no-expanded;
		};
		ti_fs_enc_fs: ti-fs-enc.bin {
			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-fs-enc.bin";
			type = "blob-ext";
			optional;
		};
		combined_tifs_cfg_fs: combined-tifs-cfg.bin {
			filename = "combined-tifs-cfg.bin";
			type = "blob-ext";
		};
		sysfw_inner_cert_fs: sysfw-inner-cert {
			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-fs-cert.bin";
			type = "blob-ext";
			optional;
		};
		combined_dm_cfg_fs: combined-dm-cfg.bin {
			filename = "combined-dm-cfg.bin";
			type = "blob-ext";
		};
	};
};

&binman {
	tiboot3-am62x-gp-verdin.bin {
		filename = "tiboot3-am62x-gp-verdin.bin";
		ti-secure-rom {
			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
			combined;
			dm-data;
			content-sbl = <&u_boot_spl_unsigned>;
			load = <0x43c00000>;
			content-sysfw = <&ti_fs_gp>;
			load-sysfw = <0x40000>;
			content-sysfw-data = <&combined_tifs_cfg_gp>;
			load-sysfw-data = <0x67000>;
			content-dm-data = <&combined_dm_cfg_gp>;
			load-dm-data = <0x43c3a800>;
			sw-rev = <1>;
			keyfile = "ti-degenerate-key.pem";
		};
		u_boot_spl_unsigned: u-boot-spl {
			no-expanded;
		};
		ti_fs_gp: ti-fs-gp.bin {
			filename = "ti-sysfw/ti-fs-firmware-am62x-gp.bin";
			type = "blob-ext";
			optional;
		};
		combined_tifs_cfg_gp: combined-tifs-cfg-gp.bin {
			filename = "combined-tifs-cfg.bin";
			type = "blob-ext";
		};
		combined_dm_cfg_gp: combined-dm-cfg-gp.bin {
			filename = "combined-dm-cfg.bin";
			type = "blob-ext";
		};
	};
};

#endif /* CONFIG_TARGET_VERDIN_AM62_R5 */

#ifdef CONFIG_TARGET_VERDIN_AM62_A53

#define SPL_VERDIN_AM62_DTB "spl/dts/ti/k3-am625-verdin-wifi-dev.dtb"
#define VERDIN_AM62_DTB "u-boot.dtb"

&binman {
	ti-dm {
		filename = "ti-dm.bin";
		blob-ext {
			filename = "ti-dm/am62xx/ipc_echo_testb_mcu1_0_release_strip.xer5f";
		};
	};

	tifsstub-hs {
		filename = "tifsstub.bin_hs";
		ti-secure-rom {
			content = <&tifsstub_hs_cert>;
			core = "secure";
			load = <0x40000>;
			sw-rev = <CONFIG_K3_X509_SWRV>;
			keyfile = "custMpk.pem";
			countersign;
			tifsstub;
		};
		tifsstub_hs_cert: tifsstub-hs-cert.bin {
			filename = "ti-sysfw/ti-fs-stub-firmware-am62x-hs-cert.bin";
			type = "blob-ext";
			optional;
		};
		tifsstub_hs_enc: tifsstub-hs-enc.bin {
			filename = "ti-sysfw/ti-fs-stub-firmware-am62x-hs-enc.bin";
			type = "blob-ext";
			optional;
		};
	};

	tifsstub-fs {
		filename = "tifsstub.bin_fs";
		tifsstub_fs_cert: tifsstub-fs-cert.bin {
			filename = "ti-sysfw/ti-fs-stub-firmware-am62x-hs-cert.bin";
			type = "blob-ext";
			optional;
		};
		tifsstub_fs_enc: tifsstub-fs-enc.bin {
			filename = "ti-sysfw/ti-fs-stub-firmware-am62x-hs-enc.bin";
			type = "blob-ext";
			optional;
		};

	};

	tifsstub-gp {
		filename = "tifsstub.bin_gp";
		ti-secure-rom {
			content = <&tifsstub_gp>;
			core = "secure";
			load = <0x60000>;
			sw-rev = <CONFIG_K3_X509_SWRV>;
			keyfile = "ti-degenerate-key.pem";
			tifsstub;
		};
		tifsstub_gp: tifsstub-gp.bin {
			filename = "ti-sysfw/ti-fs-stub-firmware-am62x-gp.bin";
			type = "blob-ext";
			optional;
		};
	};

	ti-spl {
		insert-template = <&ti_spl_template>;

		fit {

			images {
				tifsstub-hs {
					description = "TIFSSTUB";
					type = "firmware";
					arch = "arm32";
					compression = "none";
					os = "tifsstub-hs";
					load = <0x9dc00000>;
					entry = <0x9dc00000>;
					blob-ext {
						filename = "tifsstub.bin_hs";
					};
				};

				tifsstub-fs {
					description = "TIFSSTUB";
					type = "firmware";
					arch = "arm32";
					compression = "none";
					os = "tifsstub-fs";
					load = <0x9dc00000>;
					entry = <0x9dc00000>;
					blob-ext {
						filename = "tifsstub.bin_fs";
					};
				};

				tifsstub-gp {
					description = "TIFSSTUB";
					type = "firmware";
					arch = "arm32";
					compression = "none";
					os = "tifsstub-gp";
					load = <0x9dc00000>;
					entry = <0x9dc00000>;
					blob-ext {
						filename = "tifsstub.bin_gp";
					};
				};

				dm {
					ti-secure {
						content = <&dm>;
						keyfile = "custMpk.pem";
					};
					dm: ti-dm {
						filename = "ti-dm.bin";
					};
				};

				fdt-0 {
					description = "k3-am625-verdin-wifi-dev";
					type = "flat_dt";
					arch = "arm";
					compression = "none";
					ti-secure {
						content = <&spl_verdin_am62_dtb>;
						keyfile = "custMpk.pem";
					};
					spl_verdin_am62_dtb: blob-ext {
						filename = SPL_VERDIN_AM62_DTB;
					};
				};
			};

			configurations {
				default = "conf-0";

				conf-0 {
					description = "k3-am625-verdin-wifi-dev";
					firmware = "atf";
					loadables = "tee", "tifsstub-hs", "tifsstub-fs",
						    "tifsstub-gp", "dm", "spl";
					fdt = "fdt-0";
				};
			};
		};
	};
};

&binman {
	u-boot {
		insert-template = <&u_boot_template>;

		fit {
			images {
				uboot {
					description = "U-Boot fot AM625 Verdin Board";
				};

				fdt-0 {
					description = "k3-am625-verdin-wifi-dev";
					type = "flat_dt";
					arch = "arm";
					compression = "none";
					ti-secure {
						content = <&verdin_am62_dtb>;
						keyfile = "custMpk.pem";
					};
					verdin_am62_dtb: blob-ext {
						filename = VERDIN_AM62_DTB;
					};
					hash {
						algo = "crc32";
					};
				};
			};

			configurations {
				default = "conf-0";

				conf-0 {
					description = "k3-am625-verdin-wifi-dev";
					firmware = "uboot";
					loadables = "uboot";
					fdt = "fdt-0";
				};
			};
		};
	};
};

&binman {
	ti-spl_unsigned {
		insert-template = <&ti_spl_unsigned_template>;

		fit {
			images {
				tifsstub-hs {
					description = "tifsstub";
					type = "firmware";
					arch = "arm32";
					compression = "none";
					os = "tifsstub-hs";
					load = <0x9dc00000>;
					entry = <0x9dc00000>;
					blob-ext {
						filename = "tifsstub.bin_hs";
					};
				};

				tifsstub-fs {
					description = "tifsstub";
					type = "firmware";
					arch = "arm32";
					compression = "none";
					os = "tifsstub-fs";
					load = <0x9dc00000>;
					entry = <0x9dc00000>;
					blob-ext {
						filename = "tifsstub.bin_fs";
					};
				};

				tifsstub-gp {
					description = "tifsstub";
					type = "firmware";
					arch = "arm32";
					compression = "none";
					os = "tifsstub-gp";
					load = <0x9dc00000>;
					entry = <0x9dc00000>;
					blob-ext {
						filename = "tifsstub.bin_gp";
					};
				};

				dm {
					ti-dm {
						filename = "ti-dm.bin";
					};
				};

				fdt-0 {
					description = "k3-am625-verdin-wifi-dev";
					type = "flat_dt";
					arch = "arm";
					compression = "none";
					blob {
						filename = SPL_VERDIN_AM62_DTB;
					};
				};
			};

			configurations {
				default = "conf-0";

				conf-0 {
					description = "k3-am625-verdin-wifi-dev";
					firmware = "atf";
					loadables = "tee", "tifsstub-hs", "tifsstub-fs",
						    "tifsstub-gp", "dm", "spl";
					fdt = "fdt-0";
				};
			};
		};
	};
};

&binman {
	u-boot_unsigned {
		insert-template = <&u_boot_unsigned_template>;

		fit {
			images {
				uboot {
					description = "U-Boot for AM625 Verdin Board";
				};

				fdt-0 {
					description = "k3-am625-verdin-wifi-dev";
					type = "flat_dt";
					arch = "arm";
					compression = "none";
					blob {
						filename = VERDIN_AM62_DTB;
					};
					hash {
						algo = "crc32";
					};
				};
			};

			configurations {
				default = "conf-0";

				conf-0 {
					description = "k3-am625-verdin-wifi-dev";
					firmware = "uboot";
					loadables = "uboot";
					fdt = "fdt-0";
				};
			};
		};
	};
};

#endif /* CONFIG_TARGET_VERDIN_AM62_A53 */
