162306a36Sopenharmony_ciFor all of the nmem device attributes under ``nfit/*``, see the 'NVDIMM Firmware
262306a36Sopenharmony_ciInterface Table (NFIT)' section in the ACPI specification
362306a36Sopenharmony_ci(http://www.uefi.org/specifications) for more details.
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/serial
662306a36Sopenharmony_ciDate:		Jun, 2015
762306a36Sopenharmony_ciKernelVersion:	v4.2
862306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
962306a36Sopenharmony_ciDescription:
1062306a36Sopenharmony_ci		(RO) Serial number of the NVDIMM (non-volatile dual in-line
1162306a36Sopenharmony_ci		memory module), assigned by the module vendor.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/handle
1562306a36Sopenharmony_ciDate:		Apr, 2015
1662306a36Sopenharmony_ciKernelVersion:	v4.2
1762306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
1862306a36Sopenharmony_ciDescription:
1962306a36Sopenharmony_ci		(RO) The address (given by the _ADR object) of the device on its
2062306a36Sopenharmony_ci		parent bus of the NVDIMM device containing the NVDIMM region.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/device
2462306a36Sopenharmony_ciDate:		Apr, 2015
2562306a36Sopenharmony_ciKernelVersion:	v4.1
2662306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
2762306a36Sopenharmony_ciDescription:
2862306a36Sopenharmony_ci		(RO) Device id for the NVDIMM, assigned by the module vendor.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/rev_id
3262306a36Sopenharmony_ciDate:		Jun, 2015
3362306a36Sopenharmony_ciKernelVersion:	v4.2
3462306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
3562306a36Sopenharmony_ciDescription:
3662306a36Sopenharmony_ci		(RO) Revision of the NVDIMM, assigned by the module vendor.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/phys_id
4062306a36Sopenharmony_ciDate:		Apr, 2015
4162306a36Sopenharmony_ciKernelVersion:	v4.2
4262306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
4362306a36Sopenharmony_ciDescription:
4462306a36Sopenharmony_ci		(RO) Handle (i.e., instance number) for the SMBIOS (system
4562306a36Sopenharmony_ci		management BIOS) Memory Device structure describing the NVDIMM
4662306a36Sopenharmony_ci		containing the NVDIMM region.
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/flags
5062306a36Sopenharmony_ciDate:		Jun, 2015
5162306a36Sopenharmony_ciKernelVersion:	v4.2
5262306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
5362306a36Sopenharmony_ciDescription:
5462306a36Sopenharmony_ci		(RO) The flags in the NFIT memory device sub-structure indicate
5562306a36Sopenharmony_ci		the state of the data on the nvdimm relative to its energy
5662306a36Sopenharmony_ci		source or last "flush to persistence".
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci		The attribute is a translation of the 'NVDIMM State Flags' field
5962306a36Sopenharmony_ci		in section 5.2.25.3 'NVDIMM Region Mapping' Structure of the
6062306a36Sopenharmony_ci		ACPI specification 6.2.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci		The health states are "save_fail", "restore_fail", "flush_fail",
6362306a36Sopenharmony_ci		"not_armed", "smart_event", "map_fail" and "smart_notify".
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/format
6762306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/format1
6862306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/formats
6962306a36Sopenharmony_ciDate:		Apr, 2016
7062306a36Sopenharmony_ciKernelVersion:	v4.7
7162306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
7262306a36Sopenharmony_ciDescription:
7362306a36Sopenharmony_ci		(RO) The interface codes indicate support for persistent memory
7462306a36Sopenharmony_ci		mapped directly into system physical address space and / or a
7562306a36Sopenharmony_ci		block aperture access mechanism to the NVDIMM media.
7662306a36Sopenharmony_ci		The 'formats' attribute displays the number of supported
7762306a36Sopenharmony_ci		interfaces.
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci		This layout is compatible with existing libndctl binaries that
8062306a36Sopenharmony_ci		only expect one code per-dimm as they will ignore
8162306a36Sopenharmony_ci		nmemX/nfit/formats and nmemX/nfit/formatN.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/vendor
8562306a36Sopenharmony_ciDate:		Apr, 2016
8662306a36Sopenharmony_ciKernelVersion:	v4.7
8762306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
8862306a36Sopenharmony_ciDescription:
8962306a36Sopenharmony_ci		(RO) Vendor id of the NVDIMM.
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/dsm_mask
9362306a36Sopenharmony_ciDate:		May, 2016
9462306a36Sopenharmony_ciKernelVersion:	v4.7
9562306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
9662306a36Sopenharmony_ciDescription:
9762306a36Sopenharmony_ci		(RO) The bitmask indicates the supported device specific control
9862306a36Sopenharmony_ci		functions relative to the NVDIMM command family supported by the
9962306a36Sopenharmony_ci		device
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/family
10362306a36Sopenharmony_ciDate:		Apr, 2016
10462306a36Sopenharmony_ciKernelVersion:	v4.7
10562306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
10662306a36Sopenharmony_ciDescription:
10762306a36Sopenharmony_ci		(RO) Displays the NVDIMM family command sets. Values
10862306a36Sopenharmony_ci		0, 1, 2 and 3 correspond to NVDIMM_FAMILY_INTEL,
10962306a36Sopenharmony_ci		NVDIMM_FAMILY_HPE1, NVDIMM_FAMILY_HPE2 and NVDIMM_FAMILY_MSFT
11062306a36Sopenharmony_ci		respectively.
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci		See the specifications for these command families here:
11362306a36Sopenharmony_ci		http://pmem.io/documents/NVDIMM_DSM_Interface-V1.6.pdf
11462306a36Sopenharmony_ci		https://github.com/HewlettPackard/hpe-nvm/blob/master/Documentation/
11562306a36Sopenharmony_ci		https://msdn.microsoft.com/library/windows/hardware/mt604741"
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/id
11962306a36Sopenharmony_ciDate:		Apr, 2016
12062306a36Sopenharmony_ciKernelVersion:	v4.7
12162306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
12262306a36Sopenharmony_ciDescription:
12362306a36Sopenharmony_ci		(RO) ACPI specification 6.2 section 5.2.25.9, defines an
12462306a36Sopenharmony_ci		identifier for an NVDIMM, which reflects the id attribute.
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_vendor
12862306a36Sopenharmony_ciDate:		Apr, 2016
12962306a36Sopenharmony_ciKernelVersion:	v4.7
13062306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
13162306a36Sopenharmony_ciDescription:
13262306a36Sopenharmony_ci		(RO) Sub-system vendor id of the NVDIMM non-volatile memory
13362306a36Sopenharmony_ci		subsystem controller.
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_rev_id
13762306a36Sopenharmony_ciDate:		Apr, 2016
13862306a36Sopenharmony_ciKernelVersion:	v4.7
13962306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
14062306a36Sopenharmony_ciDescription:
14162306a36Sopenharmony_ci		(RO) Sub-system revision id of the NVDIMM non-volatile memory subsystem
14262306a36Sopenharmony_ci		controller, assigned by the non-volatile memory subsystem
14362306a36Sopenharmony_ci		controller vendor.
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_device
14762306a36Sopenharmony_ciDate:		Apr, 2016
14862306a36Sopenharmony_ciKernelVersion:	v4.7
14962306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
15062306a36Sopenharmony_ciDescription:
15162306a36Sopenharmony_ci		(RO) Sub-system device id for the NVDIMM non-volatile memory
15262306a36Sopenharmony_ci		subsystem controller, assigned by the non-volatile memory
15362306a36Sopenharmony_ci		subsystem controller vendor.
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/ndbusX/nfit/revision
15762306a36Sopenharmony_ciDate:		Jun, 2015
15862306a36Sopenharmony_ciKernelVersion:	v4.2
15962306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
16062306a36Sopenharmony_ciDescription:
16162306a36Sopenharmony_ci		(RO) ACPI NFIT table revision number.
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/ndbusX/nfit/scrub
16562306a36Sopenharmony_ciDate:		Sep, 2016
16662306a36Sopenharmony_ciKernelVersion:	v4.9
16762306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
16862306a36Sopenharmony_ciDescription:
16962306a36Sopenharmony_ci		(RW) This shows the number of full Address Range Scrubs (ARS)
17062306a36Sopenharmony_ci		that have been completed since driver load time. Userspace can
17162306a36Sopenharmony_ci		wait on this using select/poll etc. A '+' at the end indicates
17262306a36Sopenharmony_ci		an ARS is in progress
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci		Writing a value of 1 triggers an ARS scan.
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/ndbusX/nfit/hw_error_scrub
17862306a36Sopenharmony_ciDate:		Sep, 2016
17962306a36Sopenharmony_ciKernelVersion:	v4.9
18062306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
18162306a36Sopenharmony_ciDescription:
18262306a36Sopenharmony_ci		(RW) Provides a way to toggle the behavior between just adding
18362306a36Sopenharmony_ci		the address (cache line) where the MCE happened to the poison
18462306a36Sopenharmony_ci		list and doing a full scrub. The former (selective insertion of
18562306a36Sopenharmony_ci		the address) is done unconditionally.
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci		This attribute can have the following values written to it:
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci		'0': Switch to the default mode where an exception will only
19062306a36Sopenharmony_ci		insert the address of the memory error into the poison and
19162306a36Sopenharmony_ci		badblocks lists.
19262306a36Sopenharmony_ci		'1': Enable a full scrub to happen if an exception for a memory
19362306a36Sopenharmony_ci		error is received.
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/ndbusX/nfit/dsm_mask
19762306a36Sopenharmony_ciDate:		Jun, 2017
19862306a36Sopenharmony_ciKernelVersion:	v4.13
19962306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
20062306a36Sopenharmony_ciDescription:
20162306a36Sopenharmony_ci		(RO) The bitmask indicates the supported bus specific control
20262306a36Sopenharmony_ci		functions. See the section named 'NVDIMM Root Device _DSMs' in
20362306a36Sopenharmony_ci		the ACPI specification.
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/ndbusX/nfit/firmware_activate_noidle
20662306a36Sopenharmony_ciDate:		Apr, 2020
20762306a36Sopenharmony_ciKernelVersion:	v5.8
20862306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
20962306a36Sopenharmony_ciDescription:
21062306a36Sopenharmony_ci		(RW) The Intel platform implementation of firmware activate
21162306a36Sopenharmony_ci		support exposes an option let the platform force idle devices in
21262306a36Sopenharmony_ci		the system over the activation event, or trust that the OS will
21362306a36Sopenharmony_ci		do it. The safe default is to let the platform force idle
21462306a36Sopenharmony_ci		devices since the kernel is already in a suspend state, and on
21562306a36Sopenharmony_ci		the chance that a driver does not properly quiesce bus-mastering
21662306a36Sopenharmony_ci		after a suspend callback the platform will handle it.  However,
21762306a36Sopenharmony_ci		the activation might abort if, for example, platform firmware
21862306a36Sopenharmony_ci		determines that the activation time exceeds the max PCI-E
21962306a36Sopenharmony_ci		completion timeout. Since the platform does not know whether the
22062306a36Sopenharmony_ci		OS is running the activation from a suspend context it aborts,
22162306a36Sopenharmony_ci		but if the system owner trusts driver suspend callback to be
22262306a36Sopenharmony_ci		sufficient then 'firmware_activation_noidle' can be
22362306a36Sopenharmony_ci		enabled to bypass the activation abort.
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ciWhat:		/sys/bus/nd/devices/regionX/nfit/range_index
22662306a36Sopenharmony_ciDate:		Jun, 2015
22762306a36Sopenharmony_ciKernelVersion:	v4.2
22862306a36Sopenharmony_ciContact:	nvdimm@lists.linux.dev
22962306a36Sopenharmony_ciDescription:
23062306a36Sopenharmony_ci		(RO) A unique number provided by the BIOS to identify an address
23162306a36Sopenharmony_ci		range. Used by NVDIMM Region Mapping Structure to uniquely refer
23262306a36Sopenharmony_ci		to this structure. Value of 0 is reserved and not used as an
23362306a36Sopenharmony_ci		index.
234