/* * 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]; }; }; };