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

#include "k3-security.h"

/ {
	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 = "arch/arm/mach-k3/schema.yaml";
		};
	};
	pm-cfg {
		filename = "pm-cfg.bin";
		pcfg_yaml: ti-board-config {
			config = "pm-cfg.yaml";
			schema = "arch/arm/mach-k3/schema.yaml";
		};
	};
	rm-cfg {
		filename = "rm-cfg.bin";
		rcfg_yaml: ti-board-config {
			config = "rm-cfg.yaml";
			schema = "arch/arm/mach-k3/schema.yaml";
		};
	};
	sec-cfg {
		filename = "sec-cfg.bin";
		scfg_yaml: ti-board-config {
			config = "sec-cfg.yaml";
			schema = "arch/arm/mach-k3/schema.yaml";
		};
	};
	combined-tifs-cfg {
		filename = "combined-tifs-cfg.bin";
		ti-board-config {
			bcfg_yaml_tifs: board-cfg {
				config = "board-cfg.yaml";
				schema = "arch/arm/mach-k3/schema.yaml";
			};
			scfg_yaml_tifs: sec-cfg {
				config = "sec-cfg.yaml";
				schema = "arch/arm/mach-k3/schema.yaml";
			};
			pcfg_yaml_tifs: pm-cfg {
				config = "pm-cfg.yaml";
				schema = "arch/arm/mach-k3/schema.yaml";
			};
			rcfg_yaml_tifs: rm-cfg {
				config = "rm-cfg.yaml";
				schema = "arch/arm/mach-k3/schema.yaml";
			};
		};
	};
	combined-dm-cfg {
		filename = "combined-dm-cfg.bin";
		ti-board-config {
			pcfg_yaml_dm: pm-cfg {
				config = "pm-cfg.yaml";
				schema = "arch/arm/mach-k3/schema.yaml";
			};
			rcfg_yaml_dm: rm-cfg {
				config = "rm-cfg.yaml";
				schema = "arch/arm/mach-k3/schema.yaml";
			};
		};
	};
	combined-sysfw-cfg {
		filename = "combined-sysfw-cfg.bin";
		ti-board-config {
			bcfg_yaml_sysfw: board-cfg {
				config = "board-cfg.yaml";
				schema = "arch/arm/mach-k3/schema.yaml";
			};
			scfg_yaml_sysfw: sec-cfg {
				config = "sec-cfg.yaml";
				schema = "arch/arm/mach-k3/schema.yaml";
			};
			pcfg_yaml_sysfw: pm-cfg {
				config = "pm-cfg.yaml";
				schema = "arch/arm/mach-k3/schema.yaml";
			};
			rcfg_yaml_sysfw: rm-cfg {
				config = "rm-cfg.yaml";
				schema = "arch/arm/mach-k3/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 = <CONFIG_K3_OPTEE_LOAD_ADDR>;
					entry = <CONFIG_K3_OPTEE_LOAD_ADDR>;
					ti-secure {
						content = <&tee>;
						keyfile = "custMpk.pem";
					};
					tee: tee-os {
						optional;
					};
				};

				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 = <CONFIG_K3_OPTEE_LOAD_ADDR>;
					entry = <CONFIG_K3_OPTEE_LOAD_ADDR>;
					tee-os {
						filename = "tee-raw.bin";
						optional;
					};
				};

				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";
					};
				};
			};
		};
	};
	firewall_bg_1: template-5 {
		control = <(FWCTRL_EN | FWCTRL_LOCK |
					FWCTRL_BG | FWCTRL_CACHE)>;
		permissions = <((FWPRIVID_ALL << FWPRIVID_SHIFT) |
						FWPERM_SECURE_PRIV_RWCD |
						FWPERM_SECURE_USER_RWCD |
						FWPERM_NON_SECURE_PRIV_RWCD |
						FWPERM_NON_SECURE_USER_RWCD)>;
		start_address = <0x0 0x0>;
		end_address = <0xff 0xffffffff>;
	};
	firewall_bg_3: template-6 {
		insert-template = <&firewall_bg_1>;
		permissions = <((FWPRIVID_ALL << FWPRIVID_SHIFT) |
						FWPERM_SECURE_PRIV_RWCD |
						FWPERM_SECURE_USER_RWCD |
						FWPERM_NON_SECURE_PRIV_RWCD |
						FWPERM_NON_SECURE_USER_RWCD)>,
					  <((FWPRIVID_ALL << FWPRIVID_SHIFT) |
						FWPERM_SECURE_PRIV_RWCD |
						FWPERM_SECURE_USER_RWCD |
						FWPERM_NON_SECURE_PRIV_RWCD |
						FWPERM_NON_SECURE_USER_RWCD)>,
					  <((FWPRIVID_ALL << FWPRIVID_SHIFT) |
						FWPERM_SECURE_PRIV_RWCD |
						FWPERM_SECURE_USER_RWCD |
						FWPERM_NON_SECURE_PRIV_RWCD |
						FWPERM_NON_SECURE_USER_RWCD)>;
	};
	firewall_armv8_atf_fg: template-7 {
		control = <(FWCTRL_EN | FWCTRL_LOCK |
					FWCTRL_CACHE)>;
		permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
						FWPERM_SECURE_PRIV_RWCD |
						FWPERM_SECURE_USER_RWCD)>;
		start_address = <0x0 0x70000000>;
		end_address = <0x0 0x7001ffff>;
	};
	firewall_armv8_optee_fg: template-8 {
		control = <(FWCTRL_EN | FWCTRL_LOCK |
					FWCTRL_CACHE)>;
		permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
						FWPERM_SECURE_PRIV_RWCD |
						FWPERM_SECURE_USER_RWCD)>;
		start_address = <0x0 0x9e800000>;
		end_address = <0x0 0x9fffffff>;
	};

};

#endif
