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