/dts-v1/;

/ {
	model = "Google Peppy";
	config {
		hwid = "X86 PEPPY TEST 4211";
	};
	chromeos-config {
		/* Enable factory-friendly features. */
		gbb-flag-dev-screen-short-delay;
		gbb-flag-force-dev-switch-on;
		gbb-flag-force-dev-boot-usb;
		gbb-flag-disable-fw-rollback-check;
	};
	flash@ff800000 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "chromeos,flashmap";
		reg = <0xff800000 0x00800000>;

		/*
		 * Non-BIOS section of the Intel Firmware Descriptor image.
		 * This section covers the all the parts that are not shown
		 * to the CPU right below 4G.
		 */
		si-all {
			label = "si-all";
			reg = <0x00000000 0x00200000>;
			type = "ifd";
		};

		/*
		 * Firmware Descriptor section of the Intel Firmware Descriptor
		 * image.
		 */
		si-desc {
			label = "si-desc";
			reg = <0x00000000 0x00001000>;
		};

		/*
		 * Intel Management Engine section of the Intel Firmware
		 * Descriptor image.
		 */
		si-me {
			label = "si-me";
			reg = <0x00001000 0x001ff000>;
		};

		/*
		 * "BIOS" section of the Intel Firmware Descriptor image.
		 * This section covers the complete image as shown to the
		 * CPU right below 4G.
		 */
		si-bios {
			label ="si-bios";
			reg = <0x00200000 0x00600000>;
		};

		/* ---- Section: Rewritable slot A ---- */
		rw-a {
			label = "rw-section-a";
			/* Alignment: 4k (for updating) */
			reg = <0x00200000 0x000f0000>;
		};
		rw-a-vblock {
			label = "vblock-a";
			/*
			 * Alignment: 4k (for updating) and must be in start of
			 * each RW_SECTION.
			 */
			reg = <0x00200000 0x00010000>;
			type = "keyblock boot,ecrwhash,ramstage";
			with_index;
			keyblock = "firmware.keyblock";
			signprivate = "firmware_data_key.vbprivk";
			version = <1>;
			kernelkey = "kernel_subkey.vbpubk";
			preamble-flags = <0>;
		};
		rw-a-boot {
			/* Alignment: no requirement (yet). */
			label = "fw-main-a";
			reg = <0x00210000 0x000c0000>;
			type = "blob boot,ecrwhash,ramstage";
			with_index;
		};
		rw-a-ec-boot {
			label = "ec-main-a";
			type = "blob ecbin";
			reg = <0x002d0000 0x0001ffc0>;
			with_index;
		};
		rw-a-firmware-id {
			/* Alignment: no requirement. */
			label = "rw-fwid-a";
			reg = <0x002effc0 0x00000040>;
			read-only;
			type = "blobstring fwid";
		};

		/* ---- Section: Rewritable slot B ---- */
		rw-b {
			label = "rw-section-b";
			/* Alignment: 4k (for updating) */
			reg = <0x002f0000 0x000f0000>;
		};
		rw-b-vblock {
			label = "vblock-b";
			/*
			 * Alignment: 4k (for updating) and must be in start of
			 * each RW_SECTION.
			 */
			reg = <0x002f0000 0x00010000>;
			type = "keyblock boot,ecrwhash,ramstage";
			with_index;
			keyblock = "firmware.keyblock";
			signprivate = "firmware_data_key.vbprivk";
			version = <1>;
			kernelkey = "kernel_subkey.vbpubk";
			preamble-flags = <0>;
		};
		rw-b-boot {
			label = "fw-main-b";
			/* Alignment: no requirement (yet). */
			reg = <0x00300000 0x000c0000>;
			type = "blob boot,ecrwhash,ramstage";
			with_index;
		};
		rw-b-ec-boot {
			label = "ec-main-b";
			type = "blob ecbin";
			reg = <0x003c0000 0x0001ffc0>;
			with_index;
		};
		rw-b-firmware-id {
			label = "rw-fwid-b";
			/* Alignment: no requirement. */
			reg = <0x003dffc0 0x00000040>;
			read-only;
			type = "blobstring fwid";
		};

		/* ---- Section: Rewritable MRC cache 64KB ---- */
		rw-mrc-cache {
			label = "rw-mrc-cache";
			/* Alignment: 4k (for updating) */
			reg = <0x003e0000 0x00010000>;
			type = "wiped";
			wipe-value = [ff];
		};

		/* ---- Section: Rewritable Event Log 16KB ---- */
		rw-elog {
			label = "rw-elog";
			/* Alignment: 4k (for updating) */
			reg = <0x003f0000 0x00004000>;
			type = "wiped";
			wipe-value = [ff];
		};

		/* ---- Section: Rewritable shared 16 KB---- */
		shared-section {
			/*
			 * Alignment: 4k (for updating).
			 * Anything in this range may be updated in recovery.
			 */
			label = "rw-shared";
			reg = <0x003f4000 0x00004000>;
		};
		shared-data {
			label = "shared-data";
			/*
			 * Alignment: 4k (for random read/write).
			 * RW firmware can put calibration data here.
			 */
			reg = <0x003f4000 0x00002000>;
			type = "wiped";
			wipe-value = [00];
		};

		rw-vblock-dev {
			label = "vblock-dev";
			/*
			 * Alignment: 4k (for random read/write).
			 * Reserve space for an optional user-installed
			 * vblock to validate dev-mode kernels.
			 * See crosbug.com/p/11216.
			 */
			reg = <0x003f6000 0x00002000>;
			type = "wiped";
			wipe-value = [ff];
		};

		/* ---- Section: Rewritable private 16 KB---- */

		/* ---- Section: Rewritable VPD 8 KB ---- */
		rw-vpd {
			label = "rw-vpd";
			/* Alignment: 4k (for updating) */
			reg = <0x003f8000 0x00002000>;
			type = "wiped";
			wipe-value = [ff];
		};

		/*
		 * This space is currently unused and reserved for future
		 * extensions. cros_bundle_firmware dislikes holes in the
		 * FMAP, so we cover all empty space here.
		 */
		rw-unused {
			label = "rw-unused";
			reg = <0x003fa000 0x00006000>;
			type = "wiped";
			wipe-value = [ff];
		};

		rw-legacy {
			label = "rw-legacy";
			reg = <0x00400000 0x00200000>;
			type = "blob legacy";
			read-only;
		};

		/*
		 * This describes the portion of the image that will be
		 * write-protected in the factory.
		 */
		wp-ro {
			label = "wp-ro";
			reg = <0x00600000 0x00200000>;
			read-only;
		};

		/* ---- Section: Vital-product data (VPD) ---- */
		ro-vpd {
			label = "ro-vpd";

			/* VPD offset must be aligned to 4K bytes */
			reg = <0x00600000 0x00004000>;
			read-only;
			type = "wiped";
			wipe-value = [ff];
		};

		/*
		 * This space is currently unused and reserved for future
		 * extensions. cros_bundle_firmware dislikes holes in the
		 * FMAP, so we cover all empty space here.
		 */
		ro-unused {
			label = "ro-unused";
			reg = <0x00604000 0x0000c000>;
			type = "wiped";
			wipe-value = [ff];
		};

		/* ---- Section: Read-only ---- */
		ro-section {
			label = "ro-section";
			reg = <0x00610000 0x001f0000>;
			read-only;
		};
		ro-fmap {
			label = "fmap";

			/*
			 * We encourage to align FMAP partition in as large
			 * block as possible so that flashrom can find it soon.
			 * For example, aligning to 512KB is better than to
			 * 256KB.
			 */

			reg = <0x00610000 0x00000800>;
			read-only;
			type = "fmap";
			ver-major = <1>;
			ver-minor = <0>;
		};
		ro-firmware-id {
			label = "ro-frid";
			reg = <0x00610800 0x00000040>;
			read-only;
			type = "blobstring fwid";
		};

		/*
		 * Padding after FRID so the next section is 4K aligned.  This
		 * is only needed to avoid gaps in the FMAP and to keep the
		 * next section aligned; FRID itself doesn't care.
		 */
		ro-firmware-id-pad {
			label = "ro-frid-pad";
			reg = <0x00610840 0x000007c0>;
			type = "wiped";
			wipe-value = [ff];
		};
		ro-gbb {
			label = "gbb";

			/* GBB offset must be aligned to 4K bytes */
			reg = <0x00611000 0x000ef000>;
			read-only;
			type = "blob gbb";
		};
		ro-boot {
			label = "boot-stub";
			reg = <0x00700000 0x00100000>; /* 1 MB */
			read-only;
			type = "blob coreboot";
			required;
		};
	};
};
