#include <config.h>

#ifdef CONFIG_SPL_TEXT_BASE
#define U_BOOT_OFFSET (CONFIG_TEXT_BASE - CONFIG_SPL_TEXT_BASE)
#else
#define U_BOOT_OFFSET 0
#endif

/ {
	binman {
		multiple-images;
		image1 {
			filename = "u-boot-tegra.bin";
			pad-byte = <0xff>;
			u-boot-spl {
			};
			u-boot {
				offset = <(U_BOOT_OFFSET)>;
			};
		};

#ifdef CONFIG_MULTI_DTB_FIT
		image2 {
			filename = "u-boot-dtb-tegra.bin";
			pad-byte = <0xff>;
			u-boot-spl {
			};
			u-boot-nodtb {
				offset = <(U_BOOT_OFFSET)>;
			};
			fit-dtb {
#ifdef CONFIG_MULTI_DTB_FIT_LZO
				filename = "fit-dtb.blob.lzo";
#elif CONFIG_MULTI_DTB_FIT_GZIP
				filename = "fit-dtb.blob.gz";
#else
				filename = "fit-dtb.blob";
#endif
				type = "blob";
			};
		};
#else
		/* Same as image1 - some tools still expect the -dtb suffix */
		image2 {
			filename = "u-boot-dtb-tegra.bin";
			pad-byte = <0xff>;
			u-boot-spl {
			};
			u-boot {
				offset = <(U_BOOT_OFFSET)>;
			};
		};
#endif

		image3 {
			filename = "u-boot-nodtb-tegra.bin";
			pad-byte = <0xff>;
			u-boot-spl {
			};
			u-boot-nodtb {
				offset = <(U_BOOT_OFFSET)>;
			};
		};
	};
};
