134433332SMauro Carvalho ChehabFor all of the nmem device attributes under ``nfit/*``, see the 'NVDIMM Firmware
2014d8fd8SAishwarya PantInterface Table (NFIT)' section in the ACPI specification
3014d8fd8SAishwarya Pant(http://www.uefi.org/specifications) for more details.
4014d8fd8SAishwarya Pant
5014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/serial
6014d8fd8SAishwarya PantDate:		Jun, 2015
7014d8fd8SAishwarya PantKernelVersion:	v4.2
83dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
9014d8fd8SAishwarya PantDescription:
10014d8fd8SAishwarya Pant		(RO) Serial number of the NVDIMM (non-volatile dual in-line
11014d8fd8SAishwarya Pant		memory module), assigned by the module vendor.
12014d8fd8SAishwarya Pant
13014d8fd8SAishwarya Pant
14014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/handle
15014d8fd8SAishwarya PantDate:		Apr, 2015
16014d8fd8SAishwarya PantKernelVersion:	v4.2
173dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
18014d8fd8SAishwarya PantDescription:
19014d8fd8SAishwarya Pant		(RO) The address (given by the _ADR object) of the device on its
20014d8fd8SAishwarya Pant		parent bus of the NVDIMM device containing the NVDIMM region.
21014d8fd8SAishwarya Pant
22014d8fd8SAishwarya Pant
23014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/device
24014d8fd8SAishwarya PantDate:		Apr, 2015
25014d8fd8SAishwarya PantKernelVersion:	v4.1
263dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
27014d8fd8SAishwarya PantDescription:
28014d8fd8SAishwarya Pant		(RO) Device id for the NVDIMM, assigned by the module vendor.
29014d8fd8SAishwarya Pant
30014d8fd8SAishwarya Pant
31014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/rev_id
32014d8fd8SAishwarya PantDate:		Jun, 2015
33014d8fd8SAishwarya PantKernelVersion:	v4.2
343dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
35014d8fd8SAishwarya PantDescription:
36014d8fd8SAishwarya Pant		(RO) Revision of the NVDIMM, assigned by the module vendor.
37014d8fd8SAishwarya Pant
38014d8fd8SAishwarya Pant
39014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/phys_id
40014d8fd8SAishwarya PantDate:		Apr, 2015
41014d8fd8SAishwarya PantKernelVersion:	v4.2
423dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
43014d8fd8SAishwarya PantDescription:
44014d8fd8SAishwarya Pant		(RO) Handle (i.e., instance number) for the SMBIOS (system
45014d8fd8SAishwarya Pant		management BIOS) Memory Device structure describing the NVDIMM
46014d8fd8SAishwarya Pant		containing the NVDIMM region.
47014d8fd8SAishwarya Pant
48014d8fd8SAishwarya Pant
49014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/flags
50014d8fd8SAishwarya PantDate:		Jun, 2015
51014d8fd8SAishwarya PantKernelVersion:	v4.2
523dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
53014d8fd8SAishwarya PantDescription:
54014d8fd8SAishwarya Pant		(RO) The flags in the NFIT memory device sub-structure indicate
55014d8fd8SAishwarya Pant		the state of the data on the nvdimm relative to its energy
56014d8fd8SAishwarya Pant		source or last "flush to persistence".
57014d8fd8SAishwarya Pant
58014d8fd8SAishwarya Pant		The attribute is a translation of the 'NVDIMM State Flags' field
59014d8fd8SAishwarya Pant		in section 5.2.25.3 'NVDIMM Region Mapping' Structure of the
60014d8fd8SAishwarya Pant		ACPI specification 6.2.
61014d8fd8SAishwarya Pant
62014d8fd8SAishwarya Pant		The health states are "save_fail", "restore_fail", "flush_fail",
63014d8fd8SAishwarya Pant		"not_armed", "smart_event", "map_fail" and "smart_notify".
64014d8fd8SAishwarya Pant
65014d8fd8SAishwarya Pant
66014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/format
67014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/format1
68014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/formats
69014d8fd8SAishwarya PantDate:		Apr, 2016
70014d8fd8SAishwarya PantKernelVersion:	v4.7
713dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
72014d8fd8SAishwarya PantDescription:
73014d8fd8SAishwarya Pant		(RO) The interface codes indicate support for persistent memory
74014d8fd8SAishwarya Pant		mapped directly into system physical address space and / or a
75014d8fd8SAishwarya Pant		block aperture access mechanism to the NVDIMM media.
76014d8fd8SAishwarya Pant		The 'formats' attribute displays the number of supported
77014d8fd8SAishwarya Pant		interfaces.
78014d8fd8SAishwarya Pant
79014d8fd8SAishwarya Pant		This layout is compatible with existing libndctl binaries that
80014d8fd8SAishwarya Pant		only expect one code per-dimm as they will ignore
81014d8fd8SAishwarya Pant		nmemX/nfit/formats and nmemX/nfit/formatN.
82014d8fd8SAishwarya Pant
83014d8fd8SAishwarya Pant
84014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/vendor
85014d8fd8SAishwarya PantDate:		Apr, 2016
86014d8fd8SAishwarya PantKernelVersion:	v4.7
873dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
88014d8fd8SAishwarya PantDescription:
89014d8fd8SAishwarya Pant		(RO) Vendor id of the NVDIMM.
90014d8fd8SAishwarya Pant
91014d8fd8SAishwarya Pant
92014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/dsm_mask
93014d8fd8SAishwarya PantDate:		May, 2016
94014d8fd8SAishwarya PantKernelVersion:	v4.7
953dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
96014d8fd8SAishwarya PantDescription:
97014d8fd8SAishwarya Pant		(RO) The bitmask indicates the supported device specific control
98014d8fd8SAishwarya Pant		functions relative to the NVDIMM command family supported by the
99014d8fd8SAishwarya Pant		device
100014d8fd8SAishwarya Pant
101014d8fd8SAishwarya Pant
102014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/family
103014d8fd8SAishwarya PantDate:		Apr, 2016
104014d8fd8SAishwarya PantKernelVersion:	v4.7
1053dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
106014d8fd8SAishwarya PantDescription:
107014d8fd8SAishwarya Pant		(RO) Displays the NVDIMM family command sets. Values
108014d8fd8SAishwarya Pant		0, 1, 2 and 3 correspond to NVDIMM_FAMILY_INTEL,
109014d8fd8SAishwarya Pant		NVDIMM_FAMILY_HPE1, NVDIMM_FAMILY_HPE2 and NVDIMM_FAMILY_MSFT
110014d8fd8SAishwarya Pant		respectively.
111014d8fd8SAishwarya Pant
112014d8fd8SAishwarya Pant		See the specifications for these command families here:
113014d8fd8SAishwarya Pant		http://pmem.io/documents/NVDIMM_DSM_Interface-V1.6.pdf
114014d8fd8SAishwarya Pant		https://github.com/HewlettPackard/hpe-nvm/blob/master/Documentation/
115014d8fd8SAishwarya Pant		https://msdn.microsoft.com/library/windows/hardware/mt604741"
116014d8fd8SAishwarya Pant
117014d8fd8SAishwarya Pant
118014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/id
119014d8fd8SAishwarya PantDate:		Apr, 2016
120014d8fd8SAishwarya PantKernelVersion:	v4.7
1213dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
122014d8fd8SAishwarya PantDescription:
123014d8fd8SAishwarya Pant		(RO) ACPI specification 6.2 section 5.2.25.9, defines an
124*ebab9426SBjorn Helgaas		identifier for an NVDIMM, which reflects the id attribute.
125014d8fd8SAishwarya Pant
126014d8fd8SAishwarya Pant
127014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_vendor
128014d8fd8SAishwarya PantDate:		Apr, 2016
129014d8fd8SAishwarya PantKernelVersion:	v4.7
1303dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
131014d8fd8SAishwarya PantDescription:
132014d8fd8SAishwarya Pant		(RO) Sub-system vendor id of the NVDIMM non-volatile memory
133014d8fd8SAishwarya Pant		subsystem controller.
134014d8fd8SAishwarya Pant
135014d8fd8SAishwarya Pant
136014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_rev_id
137014d8fd8SAishwarya PantDate:		Apr, 2016
138014d8fd8SAishwarya PantKernelVersion:	v4.7
1393dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
140014d8fd8SAishwarya PantDescription:
141014d8fd8SAishwarya Pant		(RO) Sub-system revision id of the NVDIMM non-volatile memory subsystem
142014d8fd8SAishwarya Pant		controller, assigned by the non-volatile memory subsystem
143014d8fd8SAishwarya Pant		controller vendor.
144014d8fd8SAishwarya Pant
145014d8fd8SAishwarya Pant
146014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_device
147014d8fd8SAishwarya PantDate:		Apr, 2016
148014d8fd8SAishwarya PantKernelVersion:	v4.7
1493dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
150014d8fd8SAishwarya PantDescription:
151014d8fd8SAishwarya Pant		(RO) Sub-system device id for the NVDIMM non-volatile memory
152014d8fd8SAishwarya Pant		subsystem controller, assigned by the non-volatile memory
153014d8fd8SAishwarya Pant		subsystem controller vendor.
154014d8fd8SAishwarya Pant
155014d8fd8SAishwarya Pant
156014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/ndbusX/nfit/revision
157014d8fd8SAishwarya PantDate:		Jun, 2015
158014d8fd8SAishwarya PantKernelVersion:	v4.2
1593dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
160014d8fd8SAishwarya PantDescription:
161014d8fd8SAishwarya Pant		(RO) ACPI NFIT table revision number.
162014d8fd8SAishwarya Pant
163014d8fd8SAishwarya Pant
164014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/ndbusX/nfit/scrub
165014d8fd8SAishwarya PantDate:		Sep, 2016
166014d8fd8SAishwarya PantKernelVersion:	v4.9
1673dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
168014d8fd8SAishwarya PantDescription:
169014d8fd8SAishwarya Pant		(RW) This shows the number of full Address Range Scrubs (ARS)
170014d8fd8SAishwarya Pant		that have been completed since driver load time. Userspace can
171014d8fd8SAishwarya Pant		wait on this using select/poll etc. A '+' at the end indicates
172014d8fd8SAishwarya Pant		an ARS is in progress
173014d8fd8SAishwarya Pant
174014d8fd8SAishwarya Pant		Writing a value of 1 triggers an ARS scan.
175014d8fd8SAishwarya Pant
176014d8fd8SAishwarya Pant
177014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/ndbusX/nfit/hw_error_scrub
178014d8fd8SAishwarya PantDate:		Sep, 2016
179014d8fd8SAishwarya PantKernelVersion:	v4.9
1803dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
181014d8fd8SAishwarya PantDescription:
182014d8fd8SAishwarya Pant		(RW) Provides a way to toggle the behavior between just adding
183014d8fd8SAishwarya Pant		the address (cache line) where the MCE happened to the poison
184014d8fd8SAishwarya Pant		list and doing a full scrub. The former (selective insertion of
185014d8fd8SAishwarya Pant		the address) is done unconditionally.
186014d8fd8SAishwarya Pant
187014d8fd8SAishwarya Pant		This attribute can have the following values written to it:
188014d8fd8SAishwarya Pant
189014d8fd8SAishwarya Pant		'0': Switch to the default mode where an exception will only
190014d8fd8SAishwarya Pant		insert the address of the memory error into the poison and
191014d8fd8SAishwarya Pant		badblocks lists.
192014d8fd8SAishwarya Pant		'1': Enable a full scrub to happen if an exception for a memory
193014d8fd8SAishwarya Pant		error is received.
194014d8fd8SAishwarya Pant
195014d8fd8SAishwarya Pant
196014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/ndbusX/nfit/dsm_mask
197014d8fd8SAishwarya PantDate:		Jun, 2017
198014d8fd8SAishwarya PantKernelVersion:	v4.13
1993dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
200014d8fd8SAishwarya PantDescription:
201014d8fd8SAishwarya Pant		(RO) The bitmask indicates the supported bus specific control
202014d8fd8SAishwarya Pant		functions. See the section named 'NVDIMM Root Device _DSMs' in
203014d8fd8SAishwarya Pant		the ACPI specification.
204014d8fd8SAishwarya Pant
205a1facc1fSDan WilliamsWhat:		/sys/bus/nd/devices/ndbusX/nfit/firmware_activate_noidle
206a1facc1fSDan WilliamsDate:		Apr, 2020
207a1facc1fSDan WilliamsKernelVersion:	v5.8
2083dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
209a1facc1fSDan WilliamsDescription:
210a1facc1fSDan Williams		(RW) The Intel platform implementation of firmware activate
211a1facc1fSDan Williams		support exposes an option let the platform force idle devices in
212a1facc1fSDan Williams		the system over the activation event, or trust that the OS will
213a1facc1fSDan Williams		do it. The safe default is to let the platform force idle
214a1facc1fSDan Williams		devices since the kernel is already in a suspend state, and on
215a1facc1fSDan Williams		the chance that a driver does not properly quiesce bus-mastering
216a1facc1fSDan Williams		after a suspend callback the platform will handle it.  However,
217a1facc1fSDan Williams		the activation might abort if, for example, platform firmware
218a1facc1fSDan Williams		determines that the activation time exceeds the max PCI-E
219a1facc1fSDan Williams		completion timeout. Since the platform does not know whether the
220a1facc1fSDan Williams		OS is running the activation from a suspend context it aborts,
221a1facc1fSDan Williams		but if the system owner trusts driver suspend callback to be
222a1facc1fSDan Williams		sufficient then 'firmware_activation_noidle' can be
223a1facc1fSDan Williams		enabled to bypass the activation abort.
224014d8fd8SAishwarya Pant
225014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/regionX/nfit/range_index
226014d8fd8SAishwarya PantDate:		Jun, 2015
227014d8fd8SAishwarya PantKernelVersion:	v4.2
2283dd4fe4bSDan WilliamsContact:	nvdimm@lists.linux.dev
229014d8fd8SAishwarya PantDescription:
230014d8fd8SAishwarya Pant		(RO) A unique number provided by the BIOS to identify an address
231014d8fd8SAishwarya Pant		range. Used by NVDIMM Region Mapping Structure to uniquely refer
232014d8fd8SAishwarya Pant		to this structure. Value of 0 is reserved and not used as an
233014d8fd8SAishwarya Pant		index.
234