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

/ {
	binman: binman {
		multiple-images;
	};
};

&{/soc@0} {
	u-boot,dm-pre-reloc;
	u-boot,dm-spl;
};

&aips1 {
	u-boot,dm-pre-reloc;
	u-boot,dm-spl;
};

&aips2 {
	u-boot,dm-spl;
};

&aips3 {
	u-boot,dm-spl;
};

&binman {
	u-boot-spl-ddr {
		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";
		};

		1d-imem {
			filename = "lpddr4_pmu_train_1d_imem.bin";
			size = <0x8000>;
			type = "blob-ext";
		};

		1d-dmem {
			filename = "lpddr4_pmu_train_1d_dmem.bin";
			size = <0x4000>;
			type = "blob-ext";
		};

		2d-imem {
			filename = "lpddr4_pmu_train_2d_imem.bin";
			size = <0x8000>;
			type = "blob-ext";
		};

		2d-dmem {
			filename = "lpddr4_pmu_train_2d_dmem.bin";
			size = <0x4000>;
			type = "blob-ext";
		};
	};

	spl {
		filename = "spl.bin";

		mkimage {
			args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";

			blob {
				filename = "u-boot-spl-ddr.bin";
			};
		};
	};

	itb {
		filename = "u-boot.itb";

		fit {
			description = "Configuration to load ATF before U-Boot";
			fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
			fit,fdt-list = "of-list";
			#address-cells = <1>;

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

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

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

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

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

				binman_configuration: @config-SEQ {
					description = "NAME";
					fdt = "fdt-SEQ";
					firmware = "uboot";
					loadables = "atf";
				};
			};
		};
	};

	imx-boot {
		filename = "flash.bin";
		pad-byte = <0x00>;

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

		spl {
			filename = "spl.bin";
			offset = <0x1000>;
			type = "blob-ext";
		};

		binman_uboot: uboot {
			filename = "u-boot.itb";
			offset = <0x58C00>;
			type = "blob-ext";
		};
#else
		spl {
			filename = "spl.bin";
			offset = <0x0>;
			type = "blob-ext";
		};

		binman_uboot: uboot {
			filename = "u-boot.itb";
			offset = <0x57c00>;
			type = "blob-ext";
		};
#endif
	};
};

&clk {
	u-boot,dm-pre-reloc;
	u-boot,dm-spl;
	/delete-property/ assigned-clocks;
	/delete-property/ assigned-clock-parents;
	/delete-property/ assigned-clock-rates;
};

&iomuxc {
	u-boot,dm-spl;
};

&osc_24m {
	u-boot,dm-pre-reloc;
	u-boot,dm-spl;
};

&spba1 {
	u-boot,dm-pre-reloc;
	u-boot,dm-spl;
};

&spba2 {
	u-boot,dm-pre-reloc;
	u-boot,dm-spl;
};
