| /* |
| * 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. |
| */ |
| |
| / { |
| 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-offset = /bits/ 64 <0x00004400>; |
| }; |
| 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-offset = /bits/ 64 <0x00084400>; |
| }; |
| 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]; |
| }; |
| }; |
| }; |