| For all of the nmem device attributes under ``nfit/*``, see the 'NVDIMM Firmware | 
 | Interface Table (NFIT)' section in the ACPI specification | 
 | (http://www.uefi.org/specifications) for more details. | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/serial | 
 | Date:		Jun, 2015 | 
 | KernelVersion:	v4.2 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) Serial number of the NVDIMM (non-volatile dual in-line | 
 | 		memory module), assigned by the module vendor. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/handle | 
 | Date:		Apr, 2015 | 
 | KernelVersion:	v4.2 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) The address (given by the _ADR object) of the device on its | 
 | 		parent bus of the NVDIMM device containing the NVDIMM region. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/device | 
 | Date:		Apr, 2015 | 
 | KernelVersion:	v4.1 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) Device id for the NVDIMM, assigned by the module vendor. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/rev_id | 
 | Date:		Jun, 2015 | 
 | KernelVersion:	v4.2 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) Revision of the NVDIMM, assigned by the module vendor. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/phys_id | 
 | Date:		Apr, 2015 | 
 | KernelVersion:	v4.2 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) Handle (i.e., instance number) for the SMBIOS (system | 
 | 		management BIOS) Memory Device structure describing the NVDIMM | 
 | 		containing the NVDIMM region. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/flags | 
 | Date:		Jun, 2015 | 
 | KernelVersion:	v4.2 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) The flags in the NFIT memory device sub-structure indicate | 
 | 		the state of the data on the nvdimm relative to its energy | 
 | 		source or last "flush to persistence". | 
 |  | 
 | 		The attribute is a translation of the 'NVDIMM State Flags' field | 
 | 		in section 5.2.25.3 'NVDIMM Region Mapping' Structure of the | 
 | 		ACPI specification 6.2. | 
 |  | 
 | 		The health states are "save_fail", "restore_fail", "flush_fail", | 
 | 		"not_armed", "smart_event", "map_fail" and "smart_notify". | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/format | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/format1 | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/formats | 
 | Date:		Apr, 2016 | 
 | KernelVersion:	v4.7 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) The interface codes indicate support for persistent memory | 
 | 		mapped directly into system physical address space and / or a | 
 | 		block aperture access mechanism to the NVDIMM media. | 
 | 		The 'formats' attribute displays the number of supported | 
 | 		interfaces. | 
 |  | 
 | 		This layout is compatible with existing libndctl binaries that | 
 | 		only expect one code per-dimm as they will ignore | 
 | 		nmemX/nfit/formats and nmemX/nfit/formatN. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/vendor | 
 | Date:		Apr, 2016 | 
 | KernelVersion:	v4.7 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) Vendor id of the NVDIMM. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/dsm_mask | 
 | Date:		May, 2016 | 
 | KernelVersion:	v4.7 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) The bitmask indicates the supported device specific control | 
 | 		functions relative to the NVDIMM command family supported by the | 
 | 		device | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/family | 
 | Date:		Apr, 2016 | 
 | KernelVersion:	v4.7 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) Displays the NVDIMM family command sets. Values | 
 | 		0, 1, 2 and 3 correspond to NVDIMM_FAMILY_INTEL, | 
 | 		NVDIMM_FAMILY_HPE1, NVDIMM_FAMILY_HPE2 and NVDIMM_FAMILY_MSFT | 
 | 		respectively. | 
 |  | 
 | 		See the specifications for these command families here: | 
 | 		http://pmem.io/documents/NVDIMM_DSM_Interface-V1.6.pdf | 
 | 		https://github.com/HewlettPackard/hpe-nvm/blob/master/Documentation/ | 
 | 		https://msdn.microsoft.com/library/windows/hardware/mt604741" | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/id | 
 | Date:		Apr, 2016 | 
 | KernelVersion:	v4.7 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) ACPI specification 6.2 section 5.2.25.9, defines an | 
 | 		identifier for an NVDIMM, which reflects the id attribute. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/subsystem_vendor | 
 | Date:		Apr, 2016 | 
 | KernelVersion:	v4.7 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) Sub-system vendor id of the NVDIMM non-volatile memory | 
 | 		subsystem controller. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/subsystem_rev_id | 
 | Date:		Apr, 2016 | 
 | KernelVersion:	v4.7 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) Sub-system revision id of the NVDIMM non-volatile memory subsystem | 
 | 		controller, assigned by the non-volatile memory subsystem | 
 | 		controller vendor. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/nmemX/nfit/subsystem_device | 
 | Date:		Apr, 2016 | 
 | KernelVersion:	v4.7 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) Sub-system device id for the NVDIMM non-volatile memory | 
 | 		subsystem controller, assigned by the non-volatile memory | 
 | 		subsystem controller vendor. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/ndbusX/nfit/revision | 
 | Date:		Jun, 2015 | 
 | KernelVersion:	v4.2 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) ACPI NFIT table revision number. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/ndbusX/nfit/scrub | 
 | Date:		Sep, 2016 | 
 | KernelVersion:	v4.9 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RW) This shows the number of full Address Range Scrubs (ARS) | 
 | 		that have been completed since driver load time. Userspace can | 
 | 		wait on this using select/poll etc. A '+' at the end indicates | 
 | 		an ARS is in progress | 
 |  | 
 | 		Writing a value of 1 triggers an ARS scan. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/ndbusX/nfit/hw_error_scrub | 
 | Date:		Sep, 2016 | 
 | KernelVersion:	v4.9 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RW) Provides a way to toggle the behavior between just adding | 
 | 		the address (cache line) where the MCE happened to the poison | 
 | 		list and doing a full scrub. The former (selective insertion of | 
 | 		the address) is done unconditionally. | 
 |  | 
 | 		This attribute can have the following values written to it: | 
 |  | 
 | 		'0': Switch to the default mode where an exception will only | 
 | 		insert the address of the memory error into the poison and | 
 | 		badblocks lists. | 
 | 		'1': Enable a full scrub to happen if an exception for a memory | 
 | 		error is received. | 
 |  | 
 |  | 
 | What:		/sys/bus/nd/devices/ndbusX/nfit/dsm_mask | 
 | Date:		Jun, 2017 | 
 | KernelVersion:	v4.13 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) The bitmask indicates the supported bus specific control | 
 | 		functions. See the section named 'NVDIMM Root Device _DSMs' in | 
 | 		the ACPI specification. | 
 |  | 
 | What:		/sys/bus/nd/devices/ndbusX/nfit/firmware_activate_noidle | 
 | Date:		Apr, 2020 | 
 | KernelVersion:	v5.8 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RW) The Intel platform implementation of firmware activate | 
 | 		support exposes an option let the platform force idle devices in | 
 | 		the system over the activation event, or trust that the OS will | 
 | 		do it. The safe default is to let the platform force idle | 
 | 		devices since the kernel is already in a suspend state, and on | 
 | 		the chance that a driver does not properly quiesce bus-mastering | 
 | 		after a suspend callback the platform will handle it.  However, | 
 | 		the activation might abort if, for example, platform firmware | 
 | 		determines that the activation time exceeds the max PCI-E | 
 | 		completion timeout. Since the platform does not know whether the | 
 | 		OS is running the activation from a suspend context it aborts, | 
 | 		but if the system owner trusts driver suspend callback to be | 
 | 		sufficient then 'firmware_activation_noidle' can be | 
 | 		enabled to bypass the activation abort. | 
 |  | 
 | What:		/sys/bus/nd/devices/regionX/nfit/range_index | 
 | Date:		Jun, 2015 | 
 | KernelVersion:	v4.2 | 
 | Contact:	nvdimm@lists.linux.dev | 
 | Description: | 
 | 		(RO) A unique number provided by the BIOS to identify an address | 
 | 		range. Used by NVDIMM Region Mapping Structure to uniquely refer | 
 | 		to this structure. Value of 0 is reserved and not used as an | 
 | 		index. |