summaryrefslogtreecommitdiff
path: root/board/nvidia/seaboard/flashmap-twostop-2mb.dtsi
blob: dbdf14c48a984671146a93a19e3a70c0e3331a99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*
* 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,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 = "dev_firmware.keyblock";
			signprivate = "dev_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>;
			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>;
			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>;
		};
		dev-cfg@1fe000 {
			label = "dev-cfg";
			/* 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];
		};
	};
};