// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright 2021 Collabora Ltd.
 */

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

	wdt-reboot {
		compatible = "wdt-reboot";
		wdt = <&wdog1>;
		u-boot,dm-spl;
	};
};

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

&{/soc@0/bus@30800000/i2c@30a20000/pmic@4b} {
	u-boot,dm-spl;
};

&{/soc@0/bus@30800000/i2c@30a20000/pmic@4b/regulators} {
	u-boot,dm-spl;
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&wdog1 {
	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 = "ddr4_imem_1d.bin";
			align-end = <4>;
			type = "blob-ext";
		};

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

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

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

	spl {
		filename = "spl.bin";

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

			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 = <0x960000>;
					load = <0x960000>;
					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>;

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

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