// 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

		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";
				};
			};
		};

		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
				};
			};
		};
	};
};

&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;
};
