// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
 */

#include "k3-binman.dtsi"

#ifdef CONFIG_TARGET_AM625_R5_EVM

&binman {
	tiboot3-am62x-hs-evm.bin {
		filename = "tiboot3-am62x-hs-evm.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-evm.bin {
		filename = "tiboot3-am62x-hs-fs-evm.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-evm.bin {
		filename = "tiboot3-am62x-gp-evm.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";
		};

	};
};

#include "k3-binman-capsule-r5.dtsi"

// Capsule update GUIDs in string form.  See am62x_evm.h
#define AM62X_SK_TIBOOT3_IMAGE_GUID_STR "abcb83d2-9cb6-4351-b8f1-6494bbe3700a"

&capsule_tiboot3 {
	efi-capsule {
		image-guid = AM62X_SK_TIBOOT3_IMAGE_GUID_STR;
	};
};

#endif

#ifdef CONFIG_TARGET_AM625_A53_EVM

#define SPL_AM625_SK_DTB "spl/dts/ti/k3-am625-sk.dtb"
#define AM625_SK_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";
			optional;
		};
	};

	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-sk";
					type = "flat_dt";
					arch = "arm";
					compression = "none";
					ti-secure {
						content = <&spl_am625_sk_dtb>;
						keyfile = "custMpk.pem";
					};
					spl_am625_sk_dtb: blob-ext {
						filename = SPL_AM625_SK_DTB;
					};

				};

			};

			configurations {
				default = "conf-0";

				conf-0 {
					description = "k3-am625-sk";
					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 for AM625 Board";
				};

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

			configurations {
				default = "conf-0";

				conf-0 {
					description = "k3-am625-sk";
					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-sk";
					type = "flat_dt";
					arch = "arm";
					compression = "none";
					spl_am625_sk_dtb_unsigned: blob {
						filename = SPL_AM625_SK_DTB;
					};
				};
			};

			configurations {
				default = "conf-0";

				conf-0 {
					description = "k3-am625-sk";
					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 Board";
				};

				fdt-0 {
					description = "k3-am625-sk";
					type = "flat_dt";
					arch = "arm";
					compression = "none";
					am625_sk_dtb_unsigned: blob {
						filename = AM625_SK_DTB;
					};
					hash {
						algo = "crc32";
					};
				};
			};

			configurations {
				default = "conf-0";

				conf-0 {
					description = "k3-am625-sk";
					firmware = "uboot";
					loadables = "uboot";
					fdt = "fdt-0";
				};
			};
		};
	};
};

#include "k3-binman-capsule.dtsi"

// Capsule update GUIDs in string form.  See am62x_evm.h
#define AM62X_SK_SPL_IMAGE_GUID_STR "aee355fc-bf97-4264-8c82-437255efdc1d"
#define AM62X_SK_UBOOT_IMAGE_GUID_STR "28ab8c6c-fca8-41d3-8ea1-5f171b7d2929"

&capsule_tispl {
	efi-capsule {
		image-guid = AM62X_SK_SPL_IMAGE_GUID_STR;
	};
};

&capsule_uboot {
	efi-capsule {
		image-guid = AM62X_SK_UBOOT_IMAGE_GUID_STR;
	};
};

#endif
