aboutsummaryrefslogtreecommitdiff
path: root/Documentation/ABI/testing/sysfs-bus-nfit
blob: 619eb8ca0f991a91625450e0afe4cd9d247f5ba1 (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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
For all of the nmem device attributes under nfit/*, see the 'NVDIMM Firmware
Interface Table (NFIT)' section in the ACPI specification
(http://www.uefi.org/specifications) for more details.

What:		/sys/bus/nd/devices/nmemX/nfit/serial
Date:		Jun, 2015
KernelVersion:	v4.2
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) Serial number of the NVDIMM (non-volatile dual in-line
		memory module), assigned by the module vendor.


What:		/sys/bus/nd/devices/nmemX/nfit/handle
Date:		Apr, 2015
KernelVersion:	v4.2
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) The address (given by the _ADR object) of the device on its
		parent bus of the NVDIMM device containing the NVDIMM region.


What:		/sys/bus/nd/devices/nmemX/nfit/device
Date:		Apr, 2015
KernelVersion:	v4.1
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) Device id for the NVDIMM, assigned by the module vendor.


What:		/sys/bus/nd/devices/nmemX/nfit/rev_id
Date:		Jun, 2015
KernelVersion:	v4.2
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) Revision of the NVDIMM, assigned by the module vendor.


What:		/sys/bus/nd/devices/nmemX/nfit/phys_id
Date:		Apr, 2015
KernelVersion:	v4.2
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) Handle (i.e., instance number) for the SMBIOS (system
		management BIOS) Memory Device structure describing the NVDIMM
		containing the NVDIMM region.


What:		/sys/bus/nd/devices/nmemX/nfit/flags
Date:		Jun, 2015
KernelVersion:	v4.2
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) The flags in the NFIT memory device sub-structure indicate
		the state of the data on the nvdimm relative to its energy
		source or last "flush to persistence".

		The attribute is a translation of the 'NVDIMM State Flags' field
		in section 5.2.25.3 'NVDIMM Region Mapping' Structure of the
		ACPI specification 6.2.

		The health states are "save_fail", "restore_fail", "flush_fail",
		"not_armed", "smart_event", "map_fail" and "smart_notify".


What:		/sys/bus/nd/devices/nmemX/nfit/format
What:		/sys/bus/nd/devices/nmemX/nfit/format1
What:		/sys/bus/nd/devices/nmemX/nfit/formats
Date:		Apr, 2016
KernelVersion:	v4.7
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) The interface codes indicate support for persistent memory
		mapped directly into system physical address space and / or a
		block aperture access mechanism to the NVDIMM media.
		The 'formats' attribute displays the number of supported
		interfaces.

		This layout is compatible with existing libndctl binaries that
		only expect one code per-dimm as they will ignore
		nmemX/nfit/formats and nmemX/nfit/formatN.


What:		/sys/bus/nd/devices/nmemX/nfit/vendor
Date:		Apr, 2016
KernelVersion:	v4.7
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) Vendor id of the NVDIMM.


What:		/sys/bus/nd/devices/nmemX/nfit/dsm_mask
Date:		May, 2016
KernelVersion:	v4.7
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) The bitmask indicates the supported device specific control
		functions relative to the NVDIMM command family supported by the
		device


What:		/sys/bus/nd/devices/nmemX/nfit/family
Date:		Apr, 2016
KernelVersion:	v4.7
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) Displays the NVDIMM family command sets. Values
		0, 1, 2 and 3 correspond to NVDIMM_FAMILY_INTEL,
		NVDIMM_FAMILY_HPE1, NVDIMM_FAMILY_HPE2 and NVDIMM_FAMILY_MSFT
		respectively.

		See the specifications for these command families here:
		http://pmem.io/documents/NVDIMM_DSM_Interface-V1.6.pdf
		https://github.com/HewlettPackard/hpe-nvm/blob/master/Documentation/
		https://msdn.microsoft.com/library/windows/hardware/mt604741"


What:		/sys/bus/nd/devices/nmemX/nfit/id
Date:		Apr, 2016
KernelVersion:	v4.7
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) ACPI specification 6.2 section 5.2.25.9, defines an
		identifier for an NVDIMM, which refelects the id attribute.


What:		/sys/bus/nd/devices/nmemX/nfit/subsystem_vendor
Date:		Apr, 2016
KernelVersion:	v4.7
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) Sub-system vendor id of the NVDIMM non-volatile memory
		subsystem controller.


What:		/sys/bus/nd/devices/nmemX/nfit/subsystem_rev_id
Date:		Apr, 2016
KernelVersion:	v4.7
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) Sub-system revision id of the NVDIMM non-volatile memory subsystem
		controller, assigned by the non-volatile memory subsystem
		controller vendor.


What:		/sys/bus/nd/devices/nmemX/nfit/subsystem_device
Date:		Apr, 2016
KernelVersion:	v4.7
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) Sub-system device id for the NVDIMM non-volatile memory
		subsystem controller, assigned by the non-volatile memory
		subsystem controller vendor.


What:		/sys/bus/nd/devices/ndbusX/nfit/revision
Date:		Jun, 2015
KernelVersion:	v4.2
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) ACPI NFIT table revision number.


What:		/sys/bus/nd/devices/ndbusX/nfit/scrub
Date:		Sep, 2016
KernelVersion:	v4.9
Contact:	linux-nvdimm@lists.01.org
Description:
		(RW) This shows the number of full Address Range Scrubs (ARS)
		that have been completed since driver load time. Userspace can
		wait on this using select/poll etc. A '+' at the end indicates
		an ARS is in progress

		Writing a value of 1 triggers an ARS scan.


What:		/sys/bus/nd/devices/ndbusX/nfit/hw_error_scrub
Date:		Sep, 2016
KernelVersion:	v4.9
Contact:	linux-nvdimm@lists.01.org
Description:
		(RW) Provides a way to toggle the behavior between just adding
		the address (cache line) where the MCE happened to the poison
		list and doing a full scrub. The former (selective insertion of
		the address) is done unconditionally.

		This attribute can have the following values written to it:

		'0': Switch to the default mode where an exception will only
		insert the address of the memory error into the poison and
		badblocks lists.
		'1': Enable a full scrub to happen if an exception for a memory
		error is received.


What:		/sys/bus/nd/devices/ndbusX/nfit/dsm_mask
Date:		Jun, 2017
KernelVersion:	v4.13
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) The bitmask indicates the supported bus specific control
		functions. See the section named 'NVDIMM Root Device _DSMs' in
		the ACPI specification.


What:		/sys/bus/nd/devices/regionX/nfit/range_index
Date:		Jun, 2015
KernelVersion:	v4.2
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) A unique number provided by the BIOS to identify an address
		range. Used by NVDIMM Region Mapping Structure to uniquely refer
		to this structure. Value of 0 is reserved and not used as an
		index.


What:		/sys/bus/nd/devices/regionX/nfit/ecc_unit_size
Date:		Aug, 2017
KernelVersion:	v4.14
Contact:	linux-nvdimm@lists.01.org
Description:
		(RO) Size of a write request to a DIMM that will not incur a
		read-modify-write cycle at the memory controller.

		When the nfit driver initializes it runs an ARS (Address Range
		Scrub) operation across every pmem range. Part of that process
		involves determining the ARS capabilities of a given address
		range. One of the capabilities that is reported is the 'Clear
		Uncorrectable Error Range Length Unit Size' (see: ACPI 6.2
		section 9.20.7.4 Function Index 1 - Query ARS Capabilities).
		This property indicates the boundary at which the NVDIMM may
		need to perform read-modify-write cycles to maintain ECC (Error
		Correcting Code) blocks.