diff options
author | Oliver O'Halloran <oohall@gmail.com> | 2018-04-06 01:21:15 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2018-04-07 10:53:23 -0400 |
commit | ddc141e5c6be3c5f3f900ba306fe7c7fdb4258cc (patch) | |
tree | 6f7c4b29ad45c73306c8fae2b9c2e914298cc399 | |
parent | 7171976089528cb3d057a6fb288e7f8f89ab7f68 (diff) |
doc/devicetree: Persistent memory region bindings
Add device-tree binding documentation for the nvdimm region driver.
Cc: devicetree@vger.kernel.org
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r-- | Documentation/devicetree/bindings/pmem/pmem-region.txt | 65 | ||||
-rw-r--r-- | MAINTAINERS | 1 |
2 files changed, 66 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.txt b/Documentation/devicetree/bindings/pmem/pmem-region.txt new file mode 100644 index 000000000000..5cfa4f016a00 --- /dev/null +++ b/Documentation/devicetree/bindings/pmem/pmem-region.txt | |||
@@ -0,0 +1,65 @@ | |||
1 | Device-tree bindings for persistent memory regions | ||
2 | ----------------------------------------------------- | ||
3 | |||
4 | Persistent memory refers to a class of memory devices that are: | ||
5 | |||
6 | a) Usable as main system memory (i.e. cacheable), and | ||
7 | b) Retain their contents across power failure. | ||
8 | |||
9 | Given b) it is best to think of persistent memory as a kind of memory mapped | ||
10 | storage device. To ensure data integrity the operating system needs to manage | ||
11 | persistent regions separately to the normal memory pool. To aid with that this | ||
12 | binding provides a standardised interface for discovering where persistent | ||
13 | memory regions exist inside the physical address space. | ||
14 | |||
15 | Bindings for the region nodes: | ||
16 | ----------------------------- | ||
17 | |||
18 | Required properties: | ||
19 | - compatible = "pmem-region" | ||
20 | |||
21 | - reg = <base, size>; | ||
22 | The reg property should specificy an address range that is | ||
23 | translatable to a system physical address range. This address | ||
24 | range should be mappable as normal system memory would be | ||
25 | (i.e cacheable). | ||
26 | |||
27 | If the reg property contains multiple address ranges | ||
28 | each address range will be treated as though it was specified | ||
29 | in a separate device node. Having multiple address ranges in a | ||
30 | node implies no special relationship between the two ranges. | ||
31 | |||
32 | Optional properties: | ||
33 | - Any relevant NUMA assocativity properties for the target platform. | ||
34 | |||
35 | - volatile; This property indicates that this region is actually | ||
36 | backed by non-persistent memory. This lets the OS know that it | ||
37 | may skip the cache flushes required to ensure data is made | ||
38 | persistent after a write. | ||
39 | |||
40 | If this property is absent then the OS must assume that the region | ||
41 | is backed by non-volatile memory. | ||
42 | |||
43 | Examples: | ||
44 | -------------------- | ||
45 | |||
46 | /* | ||
47 | * This node specifies one 4KB region spanning from | ||
48 | * 0x5000 to 0x5fff that is backed by non-volatile memory. | ||
49 | */ | ||
50 | pmem@5000 { | ||
51 | compatible = "pmem-region"; | ||
52 | reg = <0x00005000 0x00001000>; | ||
53 | }; | ||
54 | |||
55 | /* | ||
56 | * This node specifies two 4KB regions that are backed by | ||
57 | * volatile (normal) memory. | ||
58 | */ | ||
59 | pmem@6000 { | ||
60 | compatible = "pmem-region"; | ||
61 | reg = < 0x00006000 0x00001000 | ||
62 | 0x00008000 0x00001000 >; | ||
63 | volatile; | ||
64 | }; | ||
65 | |||
diff --git a/MAINTAINERS b/MAINTAINERS index 06230c06a071..662a71da42c7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -8041,6 +8041,7 @@ L: linux-nvdimm@lists.01.org | |||
8041 | Q: https://patchwork.kernel.org/project/linux-nvdimm/list/ | 8041 | Q: https://patchwork.kernel.org/project/linux-nvdimm/list/ |
8042 | S: Supported | 8042 | S: Supported |
8043 | F: drivers/nvdimm/of_pmem.c | 8043 | F: drivers/nvdimm/of_pmem.c |
8044 | F: Documentation/devicetree/bindings/pmem/pmem-region.txt | ||
8044 | 8045 | ||
8045 | LIBNVDIMM: NON-VOLATILE MEMORY DEVICE SUBSYSTEM | 8046 | LIBNVDIMM: NON-VOLATILE MEMORY DEVICE SUBSYSTEM |
8046 | M: Dan Williams <dan.j.williams@intel.com> | 8047 | M: Dan Williams <dan.j.williams@intel.com> |