| /* |
| * 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. |
| */ |
| |
| /include/ "flashmap-ro.dtsi" |
| |
| / { |
| flash@0 { |
| #address-cells = <1>; |
| #size-cells = <1>; |
| compatible = "winbond,W25Q32BVSSIG", "cfi-flash", |
| "chromeos,flashmap"; |
| reg = <0x00000000 0x00400000>; |
| |
| /* |
| * Note: rw-a and rw-b are used by auto-update. They must be |
| * the same size, and must include the vblock, boot and |
| * firmware-id parts within them. There is no check on this |
| * at present so you need to manually verify that it is |
| * correct. |
| * |
| * The rw-b section must not overlap/include the rw-vpd |
| * section. |
| */ |
| |
| /* ---- 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 0x00002000>; |
| type = "keyblock boot"; |
| keyblock = "firmware.keyblock"; |
| signprivate = "firmware_data_key.vbprivk"; |
| version = <1>; |
| kernelkey = "kernel_subkey.vbpubk"; |
| preamble-flags = <1>; |
| }; |
| rw-a-boot { |
| /* Alignment: no requirement (yet). */ |
| label = "fw-main-a"; |
| reg = <0x00202000 0x000edf00>; |
| type = "blob boot"; |
| }; |
| rw-a-firmware-id { |
| /* Alignment: no requirement. */ |
| label = "rw-fwid-a"; |
| reg = <0x002eff00 0x00000100>; |
| read-only; |
| type = "blobstring fwid"; |
| }; |
| |
| /* ---- Section: Rewritable slot B ---- */ |
| rw-b { |
| label = "rw-section-b"; |
| /* Alignment: 4k (for updating) */ |
| reg = <0x00300000 0x000f0000>; |
| }; |
| rw-b-vblock { |
| label = "vblock-b"; |
| /* Alignment: 4k (for updating) and must be in start of |
| * each RW_SECTION. */ |
| reg = <0x00300000 0x00002000>; |
| type = "keyblock boot"; |
| keyblock = "firmware.keyblock"; |
| signprivate = "firmware_data_key.vbprivk"; |
| version = <1>; |
| kernelkey = "kernel_subkey.vbpubk"; |
| preamble-flags = <1>; |
| }; |
| rw-b-boot { |
| label = "fw-main-b"; |
| /* Alignment: no requirement (yet). */ |
| reg = <0x00302000 0x000edf00>; |
| type = "blob boot"; |
| }; |
| rw-b-firmware-id { |
| label = "rw-fwid-b"; |
| /* Alignment: no requirement. */ |
| reg = <0x003eff00 0x00000100>; |
| read-only; |
| type = "blobstring fwid"; |
| }; |
| |
| /* ---- Section: Rewritable VPD 32 KB ---- */ |
| rw-vpd { |
| label = "rw-vpd"; |
| /* Alignment: 4k (for updating) */ |
| reg = <0x003f0000 0x00008000>; |
| 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 = <0x003f8000 0x00004000>; |
| }; |
| shared-data { |
| label = "shared-data"; |
| /* Alignment: 4k (for random read/write). |
| * RW firmware can put calibration data here. */ |
| reg = <0x003f8000 0x00004000>; |
| type = "wiped"; |
| wipe-value = [00]; |
| }; |
| /* ---- Section: Rewritable private 16 KB---- */ |
| private-section { |
| /* Anything in this range will never be updated */ |
| label = "rw-private"; |
| reg = <0x003fc000 0x00004000>; |
| }; |
| rw-environment { |
| label = "rw-environment"; |
| /* Alignment: 4k, and must occupy bottom of U-Boot |
| * firmware -- check CONFIG_ENV_OFFSET */ |
| reg = <0x003fe000 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]; |
| }; |
| }; |
| }; |