// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2020 Jagan Teki <jagan@amarulasolutions.com>
 */

/ {
	binman: binman {
	};

#ifdef CONFIG_OPTEE
	firmware {
		optee {
			compatible = "linaro,optee-tz";
			method = "smc";
		};
	};
#endif
};

#ifdef CONFIG_FSL_CAAM
&crypto {
	bootph-pre-ram;
};
#endif

&soc {
	bootph-all;
	bootph-pre-ram;
};

&aips1 {
	bootph-all;
	bootph-pre-ram;
};

&aips2 {
	bootph-pre-ram;
};

&aips3 {
	bootph-pre-ram;
};

&binman {
	filename = "flash.bin";
	section {
		pad-byte = <0x00>;

#ifdef CONFIG_FSPI_CONF_HEADER
		fspi_conf_block {
			filename = CONFIG_FSPI_CONF_FILE;
			type = "blob-ext";
			size = <0x1000>;
		};
#endif

#ifdef CONFIG_IMX_HAB
		nxp-imx8mcst@0 {
			filename = "u-boot-spl-mkimage.signed.bin";
			nxp,loader-address = <CONFIG_SPL_TEXT_BASE>;
			nxp,unlock;
			args;	/* Needed by mkimage etype superclass */
#endif

			binman_imx_spl: nxp-imx8mimage {
				filename = "u-boot-spl-mkimage.bin";
				nxp,boot-from = "sd";
				nxp,rom-version = <1>;
				nxp,loader-address = <CONFIG_SPL_TEXT_BASE>;
				args;	/* Needed by mkimage etype superclass */

				section {
					align = <4>;
					align-size = <4>;
					filename = "u-boot-spl-ddr.bin";
					pad-byte = <0xff>;

					u-boot-spl {
						align-end = <4>;
						filename = "u-boot-spl.bin";
					};

					ddr-1d-imem-fw {
						filename = "lpddr4_pmu_train_1d_imem.bin";
						align-end = <4>;
						type = "blob-ext";
					};

					ddr-1d-dmem-fw {
						filename = "lpddr4_pmu_train_1d_dmem.bin";
						align-end = <4>;
						type = "blob-ext";
					};

					ddr-2d-imem-fw {
						filename = "lpddr4_pmu_train_2d_imem.bin";
						align-end = <4>;
						type = "blob-ext";
					};

					ddr-2d-dmem-fw {
						filename = "lpddr4_pmu_train_2d_dmem.bin";
						align-end = <4>;
						type = "blob-ext";
					};
				};
			};
#ifdef CONFIG_IMX_HAB
		};

		nxp-imx8mcst@1 {
			filename = "u-boot-fit.signed.bin";
			nxp,loader-address = <CONFIG_SPL_LOAD_FIT_ADDRESS>;
#ifdef CONFIG_FSPI_CONF_HEADER
			offset = <0x58C00>;
#else
			offset = <0x57c00>;
#endif

			args;	/* Needed by mkimage etype superclass */
#endif

			binman_imx_fit: fit {
				description = "Configuration to load ATF before U-Boot";
#ifndef CONFIG_IMX_HAB
				fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
#endif
				fit,fdt-list = "of-list";
				#address-cells = <1>;
#ifdef CONFIG_FSPI_CONF_HEADER
				offset = <0x58C00>;
#else
				offset = <0x57c00>;
#endif

				images {
					uboot {
						arch = "arm64";
						compression = "none";
						description = "U-Boot (64-bit)";
						load = <CONFIG_TEXT_BASE>;
						type = "standalone";

						uboot-blob {
							filename = "u-boot-nodtb.bin";
							type = "blob-ext";
						};
					};

#ifndef CONFIG_ARMV8_PSCI
					atf {
						arch = "arm64";
						compression = "none";
						description = "ARM Trusted Firmware";
						entry = <0x920000>;
						load = <0x920000>;
						type = "firmware";

						atf-blob {
							filename = "bl31.bin";
							type = "atf-bl31";
						};
					};
#endif

					binman_fip: fip {
						arch = "arm64";
						compression = "none";
						description = "Trusted Firmware FIP";
						load = <0x40310000>;
						type = "firmware";
					};

					@fdt-SEQ {
						compression = "none";
						description = "NAME";
						type = "flat_dt";

						uboot-fdt-blob {
							filename = "u-boot.dtb";
							type = "blob-ext";
						};
					};
				};

				configurations {
					default = "@config-DEFAULT-SEQ";

					@config-SEQ {
						description = "NAME";
						fdt = "fdt-SEQ";
						firmware = "uboot";
#ifndef CONFIG_ARMV8_PSCI
						loadables = "atf";
#endif
					};
				};
			};
#ifdef CONFIG_IMX_HAB
		};
#endif
	};
};

&clk {
	bootph-all;
	bootph-pre-ram;
	/delete-property/ assigned-clocks;
	/delete-property/ assigned-clock-parents;
	/delete-property/ assigned-clock-rates;
};

&iomuxc {
	bootph-pre-ram;
};

&osc_24m {
	bootph-all;
	bootph-pre-ram;
};

#ifdef CONFIG_FSL_CAAM
&sec_jr0 {
	bootph-pre-ram;
};

&sec_jr1 {
	bootph-pre-ram;
};

&sec_jr2 {
	bootph-pre-ram;
};
#endif

&spba1 {
	bootph-all;
	bootph-pre-ram;
};

&spba2 {
	bootph-all;
	bootph-pre-ram;
};
