forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
209 lines
5.3 KiB
209 lines
5.3 KiB
# SPDX-License-Identifier: GPL-2.0 |
|
%YAML 1.2 |
|
--- |
|
$id: http://devicetree.org/schemas/mtd/mtd-physmap.yaml# |
|
$schema: http://devicetree.org/meta-schemas/core.yaml# |
|
|
|
title: CFI or JEDEC memory-mapped NOR flash, MTD-RAM (NVRAM...) |
|
|
|
maintainers: |
|
- Rob Herring <[email protected]> |
|
|
|
description: | |
|
Flash chips (Memory Technology Devices) are often used for solid state |
|
file systems on embedded devices. |
|
|
|
properties: |
|
compatible: |
|
oneOf: |
|
- items: |
|
- enum: |
|
- amd,s29gl01gp |
|
- amd,s29gl032a |
|
- amd,s29gl256n |
|
- amd,s29gl512n |
|
- arm,versatile-flash |
|
- arm,vexpress-flash |
|
- cortina,gemini-flash |
|
- cypress,hyperflash |
|
- ge,imp3a-firmware-mirror |
|
- ge,imp3a-paged-flash |
|
- gef,ppc9a-firmware-mirror |
|
- gef,ppc9a-paged-flash |
|
- gef,sbc310-firmware-mirror |
|
- gef,sbc310-paged-flash |
|
- gef,sbc610-firmware-mirror |
|
- gef,sbc610-paged-flash |
|
- intel,28f128j3 |
|
- intel,dt28f160 |
|
- intel,ixp4xx-flash |
|
- intel,JS28F128 |
|
- intel,JS28F640 |
|
- intel,PC28F640P30T85 |
|
- numonyx,js28f00a |
|
- numonyx,js28f128 |
|
- sst,sst39vf320 |
|
- xlnx,xps-mch-emc-2.00.a |
|
- const: cfi-flash |
|
- items: |
|
- enum: |
|
- cypress,cy7c1019dv33-10zsxi |
|
- arm,vexpress-psram |
|
- const: mtd-ram |
|
- enum: |
|
- cfi-flash |
|
- jedec-flash |
|
- mtd-ram |
|
- mtd-rom |
|
|
|
reg: |
|
description: | |
|
It's possible to (optionally) define multiple "reg" tuples so that |
|
non-identical chips can be described in one node. |
|
minItems: 1 |
|
maxItems: 8 |
|
|
|
bank-width: |
|
description: Width (in bytes) of the bank. Equal to the device width times |
|
the number of interleaved chips. |
|
$ref: /schemas/types.yaml#/definitions/uint32 |
|
enum: [ 1, 2, 4 ] |
|
|
|
device-width: |
|
description: |
|
Width of a single mtd chip. If omitted, assumed to be equal to 'bank-width'. |
|
$ref: /schemas/types.yaml#/definitions/uint32 |
|
enum: [ 1, 2 ] |
|
|
|
no-unaligned-direct-access: |
|
type: boolean |
|
description: | |
|
Disables the default direct mapping of the flash. |
|
|
|
On some platforms (e.g. MPC5200) a direct 1:1 mapping may cause problems |
|
with JFFS2 usage, as the local bus (LPB) doesn't support unaligned |
|
accesses as implemented in the JFFS2 code via memcpy(). By defining |
|
"no-unaligned-direct-access", the flash will not be exposed directly to |
|
the MTD users (e.g. JFFS2) any more. |
|
|
|
linux,mtd-name: |
|
description: |
|
Allows specifying the mtd name for retro capability with physmap-flash |
|
drivers as boot loader pass the mtd partition via the old device name |
|
physmap-flash. |
|
$ref: /schemas/types.yaml#/definitions/string |
|
|
|
use-advanced-sector-protection: |
|
type: boolean |
|
description: | |
|
Enables support for the advanced sector protection (Spansion: PPB - |
|
Persistent Protection Bits) locking. |
|
|
|
erase-size: |
|
description: The chip's physical erase block size in bytes. |
|
$ref: /schemas/types.yaml#/definitions/uint32 |
|
|
|
addr-gpios: |
|
description: |
|
List of GPIO descriptors that will be used to address the MSBs address |
|
lines. The order goes from LSB to MSB. |
|
minItems: 1 |
|
maxItems: 8 |
|
|
|
'#address-cells': |
|
const: 1 |
|
|
|
'#size-cells': |
|
const: 1 |
|
|
|
big-endian: true |
|
little-endian: true |
|
|
|
patternProperties: |
|
'@[0-9a-f]+$': |
|
$ref: partitions/partition.yaml |
|
|
|
required: |
|
- compatible |
|
- reg |
|
|
|
# FIXME: A parent bus may define timing properties |
|
additionalProperties: true |
|
|
|
examples: |
|
- | |
|
|
|
flash@ff000000 { |
|
compatible = "cfi-flash"; |
|
reg = <0xff000000 0x01000000>; |
|
bank-width = <4>; |
|
device-width = <1>; |
|
|
|
#address-cells = <1>; |
|
#size-cells = <1>; |
|
ranges = <0 0xff000000 0x01000000>; |
|
|
|
fs@0 { |
|
label = "fs"; |
|
reg = <0 0xf80000>; |
|
}; |
|
firmware@f80000 { |
|
label ="firmware"; |
|
reg = <0xf80000 0x80000>; |
|
read-only; |
|
}; |
|
}; |
|
|
|
- | |
|
/* An example with multiple "reg" tuples */ |
|
|
|
flash@0 { |
|
compatible = "intel,PC28F640P30T85", "cfi-flash"; |
|
reg = <0x00000000 0x02000000>, |
|
<0x02000000 0x02000000>; |
|
bank-width = <2>; |
|
|
|
#address-cells = <1>; |
|
#size-cells = <1>; |
|
ranges = <0 0 0x04000000>; |
|
|
|
partition@0 { |
|
label = "test-part1"; |
|
reg = <0 0x04000000>; |
|
}; |
|
}; |
|
|
|
- | |
|
/* An example using SRAM */ |
|
bus { |
|
#address-cells = <2>; |
|
#size-cells = <1>; |
|
|
|
sram@2,0 { |
|
compatible = "mtd-ram"; |
|
reg = <2 0 0x00200000>; |
|
bank-width = <2>; |
|
}; |
|
}; |
|
|
|
- | |
|
/* An example using addr-gpios */ |
|
#include <dt-bindings/gpio/gpio.h> |
|
|
|
flash@20000000 { |
|
compatible = "cfi-flash"; |
|
reg = <0x20000000 0x02000000>; |
|
bank-width = <2>; |
|
addr-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; |
|
|
|
#address-cells = <1>; |
|
#size-cells = <1>; |
|
ranges = <0 0x00000000 0x02000000>, |
|
<1 0x02000000 0x02000000>; |
|
|
|
partition@0 { |
|
label = "test-part1"; |
|
reg = <0 0x04000000>; |
|
}; |
|
}; |
|
...
|
|
|