blob: e6fc41a61340e8b6803a563488ccfe68e6099453 [file] [log] [blame]
/*
* Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
/*
* This is the flash map (fmap) for a twostop firmware. It defines all the areas
* that Chrome OS expects to find in its firmware device. The device is split
* into a number of top-level sections, and within each are several areas.
*
* Available flags for each entry are: read-only, compresed.
* All sections will be marked static in the fmap.
*/
/* Use the small 1MB flash map when we only have 2MB of SPI flash */
/include/ "flashmap-ro-1mb.dtsi"
/ {
flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "winbond,W25Q16BVSSIG", "cfi-flash",
"chromeos,flashmap";
reg = <0x00000000 0x00200000>;
/* ---- Section: Rewritable slot A ---- */
rw-a@100000 {
label = "rw-section-a";
/* Alignment: 4k (for updating) */
reg = <0x00100000 0x00078000>;
block-lba = <0x00000022>;
};
rw-a-vblock@100000 {
label = "vblock-a";
/* Alignment: 4k (for updating) and must be in start of
* each RW_SECTION. */
reg = <0x00100000 0x00002000>;
type = "keyblock boot";
keyblock = "firmware.keyblock";
signprivate = "firmware_data_key.vbprivk";
version = <1>;
kernelkey = "kernel_subkey.vbpubk";
preamble-flags = <1>;
};
rw-a-boot@102000 {
/* Alignment: no requirement (yet). */
label = "fw-main-a";
reg = <0x00102000 0x00075000>;
/* There is not enough space for this, so remove it */
/* type = "blob boot"; */
};
rw-a-firmware-id@177f00 {
/* Alignment: no requirement. */
label = "rw-fwid-a";
reg = <0x00177f00 0x00000100>;
read-only;
type = "blobstring fwid";
};
/* ---- Section: Rewritable slot B ---- */
rw-b@178000 {
label = "rw-section-b";
/* Alignment: 4k (for updating) */
reg = <0x00178000 0x00078000>;
block-lba = <0x00000422>;
};
rw-b-vblock@178000 {
label = "vblock-b";
/* Alignment: 4k (for updating) and must be in start of
* each RW_SECTION. */
reg = <0x00178000 0x00002000>;
type = "keyblock boot";
keyblock = "firmware.keyblock";
signprivate = "firmware_data_key.vbprivk";
version = <1>;
kernelkey = "kernel_subkey.vbpubk";
preamble-flags = <1>;
};
rw-b-boot@17a000 {
label = "fw-main-b";
/* Alignment: no requirement (yet). */
reg = <0x0017a000 0x00075000>;
/* There is not enough space for this, so remove it */
/* type = "blob boot"; */
};
rw-b-firmware-id@1eff00 {
label = "rw-fwid-b";
/* Alignment: no requirement. */
reg = <0x001eff00 0x00000100>;
read-only;
type = "blobstring fwid";
};
/* ---- Section: Rewritable VPD 32 KB ---- */
rw-vpd@1f0000 {
label = "rw-vpd";
/* Alignment: 4k (for updating) */
reg = <0x001f0000 0x00008000>;
type = "wiped";
wipe-value = [ff];
};
/* ---- Section: Rewritable shared 16 KB---- */
shared-section@1f8000 {
/* Alignment: 4k (for updating).
* Anything in this range may be updated in recovery. */
label = "rw-shared";
reg = <0x001f8000 0x00004000>;
};
shared-data@1f8000 {
label = "shared-data";
/* Alignment: 4k (for random read/write).
* RW firmware can put calibration data here. */
reg = <0x001f8000 0x00004000>;
type = "wiped";
wipe-value = [00];
};
/* ---- Section: Rewritable private 16 KB---- */
private-section@1fc000 {
/* Anything in this range will never be updated */
label = "rw-private";
reg = <0x001fc000 0x00004000>;
};
rw-environment@1fe000 {
label = "rw-environment";
/* Alignment: 4k, and must occupy bottom of U-Boot
* firmware -- check CONFIG_ENV_OFFSET */
reg = <0x001fe000 0x00002000>;
/*
* We could put the dev environment here, but U-Boot has
* a default built in. Devs can 'saveenv' to set this
* up.
*/
type = "wiped";
wipe-value = [00];
};
};
};