xref: /linux/Documentation/ABI/testing/sysfs-bus-nfit (revision 014d8fd8805b29186448bc4e5a697b34b604587a)
1*014d8fd8SAishwarya PantFor all of the nmem device attributes under nfit/*, see the 'NVDIMM Firmware
2*014d8fd8SAishwarya PantInterface Table (NFIT)' section in the ACPI specification
3*014d8fd8SAishwarya Pant(http://www.uefi.org/specifications) for more details.
4*014d8fd8SAishwarya Pant
5*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/serial
6*014d8fd8SAishwarya PantDate:		Jun, 2015
7*014d8fd8SAishwarya PantKernelVersion:	v4.2
8*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
9*014d8fd8SAishwarya PantDescription:
10*014d8fd8SAishwarya Pant		(RO) Serial number of the NVDIMM (non-volatile dual in-line
11*014d8fd8SAishwarya Pant		memory module), assigned by the module vendor.
12*014d8fd8SAishwarya Pant
13*014d8fd8SAishwarya Pant
14*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/handle
15*014d8fd8SAishwarya PantDate:		Apr, 2015
16*014d8fd8SAishwarya PantKernelVersion:	v4.2
17*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
18*014d8fd8SAishwarya PantDescription:
19*014d8fd8SAishwarya Pant		(RO) The address (given by the _ADR object) of the device on its
20*014d8fd8SAishwarya Pant		parent bus of the NVDIMM device containing the NVDIMM region.
21*014d8fd8SAishwarya Pant
22*014d8fd8SAishwarya Pant
23*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/device
24*014d8fd8SAishwarya PantDate:		Apr, 2015
25*014d8fd8SAishwarya PantKernelVersion:	v4.1
26*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
27*014d8fd8SAishwarya PantDescription:
28*014d8fd8SAishwarya Pant		(RO) Device id for the NVDIMM, assigned by the module vendor.
29*014d8fd8SAishwarya Pant
30*014d8fd8SAishwarya Pant
31*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/rev_id
32*014d8fd8SAishwarya PantDate:		Jun, 2015
33*014d8fd8SAishwarya PantKernelVersion:	v4.2
34*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
35*014d8fd8SAishwarya PantDescription:
36*014d8fd8SAishwarya Pant		(RO) Revision of the NVDIMM, assigned by the module vendor.
37*014d8fd8SAishwarya Pant
38*014d8fd8SAishwarya Pant
39*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/phys_id
40*014d8fd8SAishwarya PantDate:		Apr, 2015
41*014d8fd8SAishwarya PantKernelVersion:	v4.2
42*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
43*014d8fd8SAishwarya PantDescription:
44*014d8fd8SAishwarya Pant		(RO) Handle (i.e., instance number) for the SMBIOS (system
45*014d8fd8SAishwarya Pant		management BIOS) Memory Device structure describing the NVDIMM
46*014d8fd8SAishwarya Pant		containing the NVDIMM region.
47*014d8fd8SAishwarya Pant
48*014d8fd8SAishwarya Pant
49*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/flags
50*014d8fd8SAishwarya PantDate:		Jun, 2015
51*014d8fd8SAishwarya PantKernelVersion:	v4.2
52*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
53*014d8fd8SAishwarya PantDescription:
54*014d8fd8SAishwarya Pant		(RO) The flags in the NFIT memory device sub-structure indicate
55*014d8fd8SAishwarya Pant		the state of the data on the nvdimm relative to its energy
56*014d8fd8SAishwarya Pant		source or last "flush to persistence".
57*014d8fd8SAishwarya Pant
58*014d8fd8SAishwarya Pant		The attribute is a translation of the 'NVDIMM State Flags' field
59*014d8fd8SAishwarya Pant		in section 5.2.25.3 'NVDIMM Region Mapping' Structure of the
60*014d8fd8SAishwarya Pant		ACPI specification 6.2.
61*014d8fd8SAishwarya Pant
62*014d8fd8SAishwarya Pant		The health states are "save_fail", "restore_fail", "flush_fail",
63*014d8fd8SAishwarya Pant		"not_armed", "smart_event", "map_fail" and "smart_notify".
64*014d8fd8SAishwarya Pant
65*014d8fd8SAishwarya Pant
66*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/format
67*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/format1
68*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/formats
69*014d8fd8SAishwarya PantDate:		Apr, 2016
70*014d8fd8SAishwarya PantKernelVersion:	v4.7
71*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
72*014d8fd8SAishwarya PantDescription:
73*014d8fd8SAishwarya Pant		(RO) The interface codes indicate support for persistent memory
74*014d8fd8SAishwarya Pant		mapped directly into system physical address space and / or a
75*014d8fd8SAishwarya Pant		block aperture access mechanism to the NVDIMM media.
76*014d8fd8SAishwarya Pant		The 'formats' attribute displays the number of supported
77*014d8fd8SAishwarya Pant		interfaces.
78*014d8fd8SAishwarya Pant
79*014d8fd8SAishwarya Pant		This layout is compatible with existing libndctl binaries that
80*014d8fd8SAishwarya Pant		only expect one code per-dimm as they will ignore
81*014d8fd8SAishwarya Pant		nmemX/nfit/formats and nmemX/nfit/formatN.
82*014d8fd8SAishwarya Pant
83*014d8fd8SAishwarya Pant
84*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/vendor
85*014d8fd8SAishwarya PantDate:		Apr, 2016
86*014d8fd8SAishwarya PantKernelVersion:	v4.7
87*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
88*014d8fd8SAishwarya PantDescription:
89*014d8fd8SAishwarya Pant		(RO) Vendor id of the NVDIMM.
90*014d8fd8SAishwarya Pant
91*014d8fd8SAishwarya Pant
92*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/dsm_mask
93*014d8fd8SAishwarya PantDate:		May, 2016
94*014d8fd8SAishwarya PantKernelVersion:	v4.7
95*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
96*014d8fd8SAishwarya PantDescription:
97*014d8fd8SAishwarya Pant		(RO) The bitmask indicates the supported device specific control
98*014d8fd8SAishwarya Pant		functions relative to the NVDIMM command family supported by the
99*014d8fd8SAishwarya Pant		device
100*014d8fd8SAishwarya Pant
101*014d8fd8SAishwarya Pant
102*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/family
103*014d8fd8SAishwarya PantDate:		Apr, 2016
104*014d8fd8SAishwarya PantKernelVersion:	v4.7
105*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
106*014d8fd8SAishwarya PantDescription:
107*014d8fd8SAishwarya Pant		(RO) Displays the NVDIMM family command sets. Values
108*014d8fd8SAishwarya Pant		0, 1, 2 and 3 correspond to NVDIMM_FAMILY_INTEL,
109*014d8fd8SAishwarya Pant		NVDIMM_FAMILY_HPE1, NVDIMM_FAMILY_HPE2 and NVDIMM_FAMILY_MSFT
110*014d8fd8SAishwarya Pant		respectively.
111*014d8fd8SAishwarya Pant
112*014d8fd8SAishwarya Pant		See the specifications for these command families here:
113*014d8fd8SAishwarya Pant		http://pmem.io/documents/NVDIMM_DSM_Interface-V1.6.pdf
114*014d8fd8SAishwarya Pant		https://github.com/HewlettPackard/hpe-nvm/blob/master/Documentation/
115*014d8fd8SAishwarya Pant		https://msdn.microsoft.com/library/windows/hardware/mt604741"
116*014d8fd8SAishwarya Pant
117*014d8fd8SAishwarya Pant
118*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/id
119*014d8fd8SAishwarya PantDate:		Apr, 2016
120*014d8fd8SAishwarya PantKernelVersion:	v4.7
121*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
122*014d8fd8SAishwarya PantDescription:
123*014d8fd8SAishwarya Pant		(RO) ACPI specification 6.2 section 5.2.25.9, defines an
124*014d8fd8SAishwarya Pant		identifier for an NVDIMM, which refelects the id attribute.
125*014d8fd8SAishwarya Pant
126*014d8fd8SAishwarya Pant
127*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_vendor
128*014d8fd8SAishwarya PantDate:		Apr, 2016
129*014d8fd8SAishwarya PantKernelVersion:	v4.7
130*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
131*014d8fd8SAishwarya PantDescription:
132*014d8fd8SAishwarya Pant		(RO) Sub-system vendor id of the NVDIMM non-volatile memory
133*014d8fd8SAishwarya Pant		subsystem controller.
134*014d8fd8SAishwarya Pant
135*014d8fd8SAishwarya Pant
136*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_rev_id
137*014d8fd8SAishwarya PantDate:		Apr, 2016
138*014d8fd8SAishwarya PantKernelVersion:	v4.7
139*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
140*014d8fd8SAishwarya PantDescription:
141*014d8fd8SAishwarya Pant		(RO) Sub-system revision id of the NVDIMM non-volatile memory subsystem
142*014d8fd8SAishwarya Pant		controller, assigned by the non-volatile memory subsystem
143*014d8fd8SAishwarya Pant		controller vendor.
144*014d8fd8SAishwarya Pant
145*014d8fd8SAishwarya Pant
146*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_device
147*014d8fd8SAishwarya PantDate:		Apr, 2016
148*014d8fd8SAishwarya PantKernelVersion:	v4.7
149*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
150*014d8fd8SAishwarya PantDescription:
151*014d8fd8SAishwarya Pant		(RO) Sub-system device id for the NVDIMM non-volatile memory
152*014d8fd8SAishwarya Pant		subsystem controller, assigned by the non-volatile memory
153*014d8fd8SAishwarya Pant		subsystem controller vendor.
154*014d8fd8SAishwarya Pant
155*014d8fd8SAishwarya Pant
156*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/ndbusX/nfit/revision
157*014d8fd8SAishwarya PantDate:		Jun, 2015
158*014d8fd8SAishwarya PantKernelVersion:	v4.2
159*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
160*014d8fd8SAishwarya PantDescription:
161*014d8fd8SAishwarya Pant		(RO) ACPI NFIT table revision number.
162*014d8fd8SAishwarya Pant
163*014d8fd8SAishwarya Pant
164*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/ndbusX/nfit/scrub
165*014d8fd8SAishwarya PantDate:		Sep, 2016
166*014d8fd8SAishwarya PantKernelVersion:	v4.9
167*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
168*014d8fd8SAishwarya PantDescription:
169*014d8fd8SAishwarya Pant		(RW) This shows the number of full Address Range Scrubs (ARS)
170*014d8fd8SAishwarya Pant		that have been completed since driver load time. Userspace can
171*014d8fd8SAishwarya Pant		wait on this using select/poll etc. A '+' at the end indicates
172*014d8fd8SAishwarya Pant		an ARS is in progress
173*014d8fd8SAishwarya Pant
174*014d8fd8SAishwarya Pant		Writing a value of 1 triggers an ARS scan.
175*014d8fd8SAishwarya Pant
176*014d8fd8SAishwarya Pant
177*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/ndbusX/nfit/hw_error_scrub
178*014d8fd8SAishwarya PantDate:		Sep, 2016
179*014d8fd8SAishwarya PantKernelVersion:	v4.9
180*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
181*014d8fd8SAishwarya PantDescription:
182*014d8fd8SAishwarya Pant		(RW) Provides a way to toggle the behavior between just adding
183*014d8fd8SAishwarya Pant		the address (cache line) where the MCE happened to the poison
184*014d8fd8SAishwarya Pant		list and doing a full scrub. The former (selective insertion of
185*014d8fd8SAishwarya Pant		the address) is done unconditionally.
186*014d8fd8SAishwarya Pant
187*014d8fd8SAishwarya Pant		This attribute can have the following values written to it:
188*014d8fd8SAishwarya Pant
189*014d8fd8SAishwarya Pant		'0': Switch to the default mode where an exception will only
190*014d8fd8SAishwarya Pant		insert the address of the memory error into the poison and
191*014d8fd8SAishwarya Pant		badblocks lists.
192*014d8fd8SAishwarya Pant		'1': Enable a full scrub to happen if an exception for a memory
193*014d8fd8SAishwarya Pant		error is received.
194*014d8fd8SAishwarya Pant
195*014d8fd8SAishwarya Pant
196*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/ndbusX/nfit/dsm_mask
197*014d8fd8SAishwarya PantDate:		Jun, 2017
198*014d8fd8SAishwarya PantKernelVersion:	v4.13
199*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
200*014d8fd8SAishwarya PantDescription:
201*014d8fd8SAishwarya Pant		(RO) The bitmask indicates the supported bus specific control
202*014d8fd8SAishwarya Pant		functions. See the section named 'NVDIMM Root Device _DSMs' in
203*014d8fd8SAishwarya Pant		the ACPI specification.
204*014d8fd8SAishwarya Pant
205*014d8fd8SAishwarya Pant
206*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/regionX/nfit/range_index
207*014d8fd8SAishwarya PantDate:		Jun, 2015
208*014d8fd8SAishwarya PantKernelVersion:	v4.2
209*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
210*014d8fd8SAishwarya PantDescription:
211*014d8fd8SAishwarya Pant		(RO) A unique number provided by the BIOS to identify an address
212*014d8fd8SAishwarya Pant		range. Used by NVDIMM Region Mapping Structure to uniquely refer
213*014d8fd8SAishwarya Pant		to this structure. Value of 0 is reserved and not used as an
214*014d8fd8SAishwarya Pant		index.
215*014d8fd8SAishwarya Pant
216*014d8fd8SAishwarya Pant
217*014d8fd8SAishwarya PantWhat:		/sys/bus/nd/devices/regionX/nfit/ecc_unit_size
218*014d8fd8SAishwarya PantDate:		Aug, 2017
219*014d8fd8SAishwarya PantKernelVersion:	v4.14
220*014d8fd8SAishwarya PantContact:	linux-nvdimm@lists.01.org
221*014d8fd8SAishwarya PantDescription:
222*014d8fd8SAishwarya Pant		(RO) Size of a write request to a DIMM that will not incur a
223*014d8fd8SAishwarya Pant		read-modify-write cycle at the memory controller.
224*014d8fd8SAishwarya Pant
225*014d8fd8SAishwarya Pant		When the nfit driver initializes it runs an ARS (Address Range
226*014d8fd8SAishwarya Pant		Scrub) operation across every pmem range. Part of that process
227*014d8fd8SAishwarya Pant		involves determining the ARS capabilities of a given address
228*014d8fd8SAishwarya Pant		range. One of the capabilities that is reported is the 'Clear
229*014d8fd8SAishwarya Pant		Uncorrectable Error Range Length Unit Size' (see: ACPI 6.2
230*014d8fd8SAishwarya Pant		section 9.20.7.4 Function Index 1 - Query ARS Capabilities).
231*014d8fd8SAishwarya Pant		This property indicates the boundary at which the NVDIMM may
232*014d8fd8SAishwarya Pant		need to perform read-modify-write cycles to maintain ECC (Error
233*014d8fd8SAishwarya Pant		Correcting Code) blocks.
234