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

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

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