// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2016 Google, Inc
 * Written by Simon Glass <sjg@chromium.org>
 */

#include <config.h>

#ifdef CONFIG_CHROMEOS
/ {
	binman {
		multiple-images;
		rom: rom {
		};
	};
};
#else
/ {
	rom: binman {
	};
};
#endif

#ifdef CONFIG_ROM_SIZE
&rom {
	filename = "u-boot.rom";
	end-at-4gb;
	sort-by-offset;
	pad-byte = <0xff>;
	size = <CONFIG_ROM_SIZE>;
#ifdef CONFIG_HAVE_INTEL_ME
	intel-descriptor {
		filename = CONFIG_FLASH_DESCRIPTOR_FILE;
	};
	intel-me {
		filename = CONFIG_INTEL_ME_FILE;
	};
#endif
#ifdef CONFIG_TPL
	u-boot-tpl-with-ucode-ptr {
		offset = <CONFIG_TPL_TEXT_BASE>;
	};
	u-boot-tpl-dtb {
	};
	u-boot-spl {
		offset = <CONFIG_SPL_TEXT_BASE>;
	};
	u-boot-spl-dtb {
	};
	u-boot {
		offset = <CONFIG_SYS_TEXT_BASE>;
	};
#elif defined(CONFIG_SPL)
	u-boot-spl-with-ucode-ptr {
		offset = <CONFIG_SPL_TEXT_BASE>;
	};
	u-boot-dtb-with-ucode2 {
		type = "u-boot-dtb-with-ucode";
	};
	u-boot {
		/*
		 * TODO(sjg@chromium.org):
		 * Normally we use CONFIG_SYS_TEXT_BASE as the flash offset. But
		 * for boards with textbase in SDRAM we cannot do this. Just use
		 * an assumed-valid value (1MB before the end of flash) here so
		 * that we can actually build an image for coreboot, etc.
		 * We need a better solution, perhaps a separate Kconfig.
		 */
#if CONFIG_SYS_TEXT_BASE == 0x1110000
		offset = <0xfff00000>;
#else
		offset = <CONFIG_SYS_TEXT_BASE>;
#endif
	};
#else
	u-boot-with-ucode-ptr {
		offset = <CONFIG_SYS_TEXT_BASE>;
	};
#endif
	u-boot-dtb-with-ucode {
	};
	u-boot-ucode {
		align = <16>;
	};
#ifdef CONFIG_HAVE_MRC
	intel-mrc {
		offset = <CONFIG_X86_MRC_ADDR>;
	};
#endif
#ifdef CONFIG_HAVE_FSP
	intel-fsp {
		filename = CONFIG_FSP_FILE;
		offset = <CONFIG_FSP_ADDR>;
	};
#endif
#ifdef CONFIG_HAVE_CMC
	intel-cmc {
		filename = CONFIG_CMC_FILE;
		offset = <CONFIG_CMC_ADDR>;
	};
#endif
#ifdef CONFIG_HAVE_VGA_BIOS
	intel-vga {
		filename = CONFIG_VGA_BIOS_FILE;
		offset = <CONFIG_VGA_BIOS_ADDR>;
	};
#endif
#ifdef CONFIG_HAVE_VBT
	intel-vbt {
		filename = CONFIG_VBT_FILE;
		offset = <CONFIG_VBT_ADDR>;
	};
#endif
#ifdef CONFIG_HAVE_REFCODE
	intel-refcode {
		offset = <CONFIG_X86_REFCODE_ADDR>;
	};
#endif
#ifdef CONFIG_TPL
	x86-start16-tpl {
		offset = <CONFIG_SYS_X86_START16>;
	};
	x86-reset16-tpl {
		offset = <CONFIG_RESET_VEC_LOC>;
	};
#elif defined(CONFIG_SPL)
	x86-start16-spl {
		offset = <CONFIG_SYS_X86_START16>;
	};
	x86-reset16-spl {
		offset = <CONFIG_RESET_VEC_LOC>;
	};
#else
	x86-start16 {
		offset = <CONFIG_SYS_X86_START16>;
	};
	x86-reset16 {
		offset = <CONFIG_RESET_VEC_LOC>;
	};
#endif
};
#endif
