blob: 80152cb567d91941f9b91e79cb456dc6a16a9833 [file] [log] [blame]
Wolfram Sangfc28c39f2009-07-17 14:39:23 +02001CFI or JEDEC memory-mapped NOR flash, MTD-RAM (NVRAM...)
Stefan Roeseefcc2da2009-04-16 15:11:54 -06002
3Flash chips (Memory Technology Devices) are often used for solid state
4file systems on embedded devices.
5
Wolfram Sangfc28c39f2009-07-17 14:39:23 +02006 - compatible : should contain the specific model of mtd chip(s)
7 used, if known, followed by either "cfi-flash", "jedec-flash"
8 or "mtd-ram".
9 - reg : Address range(s) of the mtd chip(s)
Stefan Roesec5a88dd2009-04-16 15:11:54 -060010 It's possible to (optionally) define multiple "reg" tuples so that
Wolfram Sangfc28c39f2009-07-17 14:39:23 +020011 non-identical chips can be described in one node.
12 - bank-width : Width (in bytes) of the bank. Equal to the
Stefan Roeseefcc2da2009-04-16 15:11:54 -060013 device width times the number of interleaved chips.
Wolfram Sangfc28c39f2009-07-17 14:39:23 +020014 - device-width : (optional) Width of a single mtd chip. If
Stefan Roeseefcc2da2009-04-16 15:11:54 -060015 omitted, assumed to be equal to 'bank-width'.
Wolfram Sangfc28c39f2009-07-17 14:39:23 +020016 - #address-cells, #size-cells : Must be present if the device has
Stefan Roeseefcc2da2009-04-16 15:11:54 -060017 sub-nodes representing partitions (see below). In this case
18 both #address-cells and #size-cells must be equal to 1.
19
20For JEDEC compatible devices, the following additional properties
21are defined:
22
23 - vendor-id : Contains the flash chip's vendor id (1 byte).
24 - device-id : Contains the flash chip's device id (1 byte).
25
Wolfram Sangfc28c39f2009-07-17 14:39:23 +020026In addition to the information on the mtd bank itself, the
Stefan Roeseefcc2da2009-04-16 15:11:54 -060027device tree may optionally contain additional information
Wolfram Sangfc28c39f2009-07-17 14:39:23 +020028describing partitions of the address space. This can be
Stefan Roeseefcc2da2009-04-16 15:11:54 -060029used on platforms which have strong conventions about which
Wolfram Sangfc28c39f2009-07-17 14:39:23 +020030portions of a flash are used for what purposes, but which don't
Stefan Roeseefcc2da2009-04-16 15:11:54 -060031use an on-flash partition table such as RedBoot.
32
Wolfram Sangfc28c39f2009-07-17 14:39:23 +020033Each partition is represented as a sub-node of the mtd device.
Stefan Roeseefcc2da2009-04-16 15:11:54 -060034Each node's name represents the name of the corresponding
Wolfram Sangfc28c39f2009-07-17 14:39:23 +020035partition of the mtd device.
Stefan Roeseefcc2da2009-04-16 15:11:54 -060036
37Flash partitions
Wolfram Sangfc28c39f2009-07-17 14:39:23 +020038 - reg : The partition's offset and size within the mtd bank.
39 - label : (optional) The label / name for this partition.
Stefan Roeseefcc2da2009-04-16 15:11:54 -060040 If omitted, the label is taken from the node name (excluding
41 the unit address).
42 - read-only : (optional) This parameter, if present, is a hint to
Wolfram Sangfc28c39f2009-07-17 14:39:23 +020043 Linux that this partition should only be mounted
Stefan Roeseefcc2da2009-04-16 15:11:54 -060044 read-only. This is usually used for flash partitions
45 containing early-boot firmware images or data which should not
46 be clobbered.
47
48Example:
49
50 flash@ff000000 {
51 compatible = "amd,am29lv128ml", "cfi-flash";
52 reg = <ff000000 01000000>;
53 bank-width = <4>;
54 device-width = <1>;
55 #address-cells = <1>;
56 #size-cells = <1>;
57 fs@0 {
58 label = "fs";
59 reg = <0 f80000>;
60 };
61 firmware@f80000 {
62 label ="firmware";
63 reg = <f80000 80000>;
64 read-only;
65 };
66 };
Stefan Roesec5a88dd2009-04-16 15:11:54 -060067
68Here an example with multiple "reg" tuples:
69
70 flash@f0000000,0 {
71 #address-cells = <1>;
72 #size-cells = <1>;
73 compatible = "intel,PC48F4400P0VB", "cfi-flash";
74 reg = <0 0x00000000 0x02000000
75 0 0x02000000 0x02000000>;
76 bank-width = <2>;
77 partition@0 {
78 label = "test-part1";
79 reg = <0 0x04000000>;
80 };
81 };
Wolfram Sangfc28c39f2009-07-17 14:39:23 +020082
83An example using SRAM:
84
85 sram@2,0 {
86 compatible = "samsung,k6f1616u6a", "mtd-ram";
87 reg = <2 0 0x00200000>;
88 bank-width = <2>;
89 };
90