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