blob: 16d120bb671f8fccc3b7ae01776b1cf0bb9c635e [file] [log] [blame]
/*
* Copyright (c) 2012 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 a test flash map for Tegra devices.
*
* TODO: Use tabs instead of spaces
*/
/dts-v1/;
/ {
model = "NVIDIA Seaboard";
chromeos-config {
twostop; /* Two-stop boot */
twostop-optional; /* One-stop optimization enabled */
textbase = <0xe08000>; /* Address where U-Boot loads */
/*
* Device and offset for second-stage firmware, in SPI for now
* second-stage = <&emmc 0x00000080 0>;
*/
/* Memory addresses for kernel, cros-system and gbb */
kernel = <0x00100000 0x00800000>;
cros-system-data = <0x00900000 0x8000>;
google-binary-block = <0x00908000 0x80000>;
};
config {
silent_console = <0>;
};
chosen {
bootargs = "";
};
};
/ {
flash@0 {
compatible = "winbond,W25Q16BVSSIG", "cfi-flash",
"chromeos,flashmap";
reg = <0x00000000 0x00200000>;
#address-cells = <1>;
#size-cells = <1>;
/* ---- Section: Read-only ---- */
ro-section {
label = "ro-section";
reg = <0x00000000 0x000f0000>;
read-only;
};
ro-boot {
label = "boot-stub";
reg = <0x00000000 0x000aff00>; /* 703 KB */
read-only;
type = "blob signed";
};
ro-recovery {
/* Deprecated section */
label = "recovery";
reg = <0x000aff00 0x00000000>;
read-only;
};
ro-firmware-id {
label = "ro-frid";
reg = <0x000aff00 0x00000100>;
read-only;
type = "blobstring fwid";
};
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 = <0x000b0000 0x00001000>;
read-only;
type = "fmap";
ver-major = <1>;
ver-minor = <0>;
};
ro-gbb {
label = "gbb";
/* GBB offset must be aligned to 4K bytes */
reg = <0x000b1000 0x0003f000>;
read-only;
type = "blob gbb";
};
ro-data {
/* Currently unused, simply for padding */
label = "ro-data";
reg = <0x000f0000 0x00000000>;
read-only;
};
/* ---- Section: Vital-product data (VPD) ---- */
ro-vpd {
label = "ro-vpd";
/* VPD offset must be aligned to 4K bytes */
reg = <0x000f0000 0x00010000>;
read-only;
type = "wiped";
wipe-value = [ff];
};
/* ---- Section: Rewritable slot A ---- */
rw-a {
label = "rw-section-a";
/* Alignment: 4k (for updating) */
reg = <0x00100000 0x00078000>;
block-lba = <0x00000022>;
};
rw-a-vblock {
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 {
/* 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 {
/* Alignment: no requirement. */
label = "rw-fwid-a";
reg = <0x00177f00 0x00000100>;
read-only;
type = "blobstring fwid";
};
/* ---- Section: Rewritable slot B ---- */
rw-b {
label = "rw-section-b";
/* Alignment: 4k (for updating) */
reg = <0x00178000 0x00078000>;
block-lba = <0x00000422>;
};
rw-b-vblock {
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@ {
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 {
label = "rw-fwid-b";
/* Alignment: no requirement. */
reg = <0x001eff00 0x00000100>;
read-only;
type = "blobstring fwid";
};
/* ---- Section: Rewritable VPD 32 KB ---- */
rw-vpd {
label = "rw-vpd";
/* Alignment: 4k (for updating) */
reg = <0x001f0000 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 = <0x001f8000 0x00004000>;
};
shared-data {
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 {
/* Anything in this range will never be updated */
label = "rw-private";
reg = <0x001fc000 0x00004000>;
};
rw-environment {
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];
};
};
};