brintos

brintos / linux-shallow public Read only

0
0
Text · 2.1 KiB · cd79975 Raw
66 lines · plain
1Device-tree bindings for persistent memory regions2-----------------------------------------------------3 4Persistent memory refers to a class of memory devices that are:5 6	a) Usable as main system memory (i.e. cacheable), and7	b) Retain their contents across power failure.8 9Given b) it is best to think of persistent memory as a kind of memory mapped10storage device. To ensure data integrity the operating system needs to manage11persistent regions separately to the normal memory pool. To aid with that this12binding provides a standardised interface for discovering where persistent13memory regions exist inside the physical address space.14 15Bindings for the region nodes:16-----------------------------17 18Required properties:19	- compatible = "pmem-region"20 21	- reg = <base, size>;22		The reg property should specify an address range that is23		translatable to a system physical address range. This address24		range should be mappable as normal system memory would be25		(i.e cacheable).26 27		If the reg property contains multiple address ranges28		each address range will be treated as though it was specified29		in a separate device node. Having multiple address ranges in a30		node implies no special relationship between the two ranges.31 32Optional properties:33	- Any relevant NUMA associativity properties for the target platform.34 35	- volatile; This property indicates that this region is actually36	  backed by non-persistent memory. This lets the OS know that it37	  may skip the cache flushes required to ensure data is made38	  persistent after a write.39 40	  If this property is absent then the OS must assume that the region41	  is backed by non-volatile memory.42 43Examples:44--------------------45 46	/*47	 * This node specifies one 4KB region spanning from48	 * 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 by57	 * volatile (normal) memory.58	 */59	pmem@6000 {60		compatible = "pmem-region";61		reg = < 0x00006000 0x0000100062			0x00008000 0x00001000 >;63		volatile;64	};65 66