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

#include <config.h>

#ifdef CONFIG_ROM_SIZE
/ {
	binman {
		filename = "u-boot.rom";
		end-at-4gb;
		sort-by-pos;
		pad-byte = <0xff>;
		size = <CONFIG_ROM_SIZE>;
#ifdef CONFIG_HAVE_INTEL_ME
		intel-descriptor {
		};
		intel-me {
		};
#endif
#ifdef CONFIG_SPL
		u-boot-spl-with-ucode-ptr {
			pos = <CONFIG_SPL_TEXT_BASE>;
		};

		u-boot-dtb-with-ucode2 {
			type = "u-boot-dtb-with-ucode";
		};
		u-boot {
			pos = <0xfff00000>;
		};
#else
		u-boot-with-ucode-ptr {
			pos = <CONFIG_SYS_TEXT_BASE>;
		};
#endif
		u-boot-dtb-with-ucode {
		};
		u-boot-ucode {
			align = <16>;
		};
#ifdef CONFIG_HAVE_MRC
		intel-mrc {
			pos = <CONFIG_X86_MRC_ADDR>;
		};
#endif
#ifdef CONFIG_HAVE_FSP
		intel-fsp {
			filename = CONFIG_FSP_FILE;
			pos = <CONFIG_FSP_ADDR>;
		};
#endif
#ifdef CONFIG_HAVE_CMC
		intel-cmc {
			filename = CONFIG_CMC_FILE;
			pos = <CONFIG_CMC_ADDR>;
		};
#endif
#ifdef CONFIG_HAVE_VGA_BIOS
		intel-vga {
			filename = CONFIG_VGA_BIOS_FILE;
			pos = <CONFIG_VGA_BIOS_ADDR>;
		};
#endif
#ifdef CONFIG_HAVE_REFCODE
		intel-refcode {
			pos = <CONFIG_X86_REFCODE_ADDR>;
		};
#endif
#ifdef CONFIG_SPL
		x86-start16-spl {
			pos = <CONFIG_SYS_X86_START16>;
		};
#else
		x86-start16 {
			pos = <CONFIG_SYS_X86_START16>;
		};
#endif
	};
};
#endif
