18c2ecf20Sopenharmony_ciFor all of the nmem device attributes under ``nfit/*``, see the 'NVDIMM Firmware
28c2ecf20Sopenharmony_ciInterface Table (NFIT)' section in the ACPI specification
38c2ecf20Sopenharmony_ci(http://www.uefi.org/specifications) for more details.
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/serial
68c2ecf20Sopenharmony_ciDate:		Jun, 2015
78c2ecf20Sopenharmony_ciKernelVersion:	v4.2
88c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
98c2ecf20Sopenharmony_ciDescription:
108c2ecf20Sopenharmony_ci		(RO) Serial number of the NVDIMM (non-volatile dual in-line
118c2ecf20Sopenharmony_ci		memory module), assigned by the module vendor.
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/handle
158c2ecf20Sopenharmony_ciDate:		Apr, 2015
168c2ecf20Sopenharmony_ciKernelVersion:	v4.2
178c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
188c2ecf20Sopenharmony_ciDescription:
198c2ecf20Sopenharmony_ci		(RO) The address (given by the _ADR object) of the device on its
208c2ecf20Sopenharmony_ci		parent bus of the NVDIMM device containing the NVDIMM region.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/device
248c2ecf20Sopenharmony_ciDate:		Apr, 2015
258c2ecf20Sopenharmony_ciKernelVersion:	v4.1
268c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
278c2ecf20Sopenharmony_ciDescription:
288c2ecf20Sopenharmony_ci		(RO) Device id for the NVDIMM, assigned by the module vendor.
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/rev_id
328c2ecf20Sopenharmony_ciDate:		Jun, 2015
338c2ecf20Sopenharmony_ciKernelVersion:	v4.2
348c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
358c2ecf20Sopenharmony_ciDescription:
368c2ecf20Sopenharmony_ci		(RO) Revision of the NVDIMM, assigned by the module vendor.
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/phys_id
408c2ecf20Sopenharmony_ciDate:		Apr, 2015
418c2ecf20Sopenharmony_ciKernelVersion:	v4.2
428c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
438c2ecf20Sopenharmony_ciDescription:
448c2ecf20Sopenharmony_ci		(RO) Handle (i.e., instance number) for the SMBIOS (system
458c2ecf20Sopenharmony_ci		management BIOS) Memory Device structure describing the NVDIMM
468c2ecf20Sopenharmony_ci		containing the NVDIMM region.
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/flags
508c2ecf20Sopenharmony_ciDate:		Jun, 2015
518c2ecf20Sopenharmony_ciKernelVersion:	v4.2
528c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
538c2ecf20Sopenharmony_ciDescription:
548c2ecf20Sopenharmony_ci		(RO) The flags in the NFIT memory device sub-structure indicate
558c2ecf20Sopenharmony_ci		the state of the data on the nvdimm relative to its energy
568c2ecf20Sopenharmony_ci		source or last "flush to persistence".
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci		The attribute is a translation of the 'NVDIMM State Flags' field
598c2ecf20Sopenharmony_ci		in section 5.2.25.3 'NVDIMM Region Mapping' Structure of the
608c2ecf20Sopenharmony_ci		ACPI specification 6.2.
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci		The health states are "save_fail", "restore_fail", "flush_fail",
638c2ecf20Sopenharmony_ci		"not_armed", "smart_event", "map_fail" and "smart_notify".
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/format
678c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/format1
688c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/formats
698c2ecf20Sopenharmony_ciDate:		Apr, 2016
708c2ecf20Sopenharmony_ciKernelVersion:	v4.7
718c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
728c2ecf20Sopenharmony_ciDescription:
738c2ecf20Sopenharmony_ci		(RO) The interface codes indicate support for persistent memory
748c2ecf20Sopenharmony_ci		mapped directly into system physical address space and / or a
758c2ecf20Sopenharmony_ci		block aperture access mechanism to the NVDIMM media.
768c2ecf20Sopenharmony_ci		The 'formats' attribute displays the number of supported
778c2ecf20Sopenharmony_ci		interfaces.
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci		This layout is compatible with existing libndctl binaries that
808c2ecf20Sopenharmony_ci		only expect one code per-dimm as they will ignore
818c2ecf20Sopenharmony_ci		nmemX/nfit/formats and nmemX/nfit/formatN.
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/vendor
858c2ecf20Sopenharmony_ciDate:		Apr, 2016
868c2ecf20Sopenharmony_ciKernelVersion:	v4.7
878c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
888c2ecf20Sopenharmony_ciDescription:
898c2ecf20Sopenharmony_ci		(RO) Vendor id of the NVDIMM.
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/dsm_mask
938c2ecf20Sopenharmony_ciDate:		May, 2016
948c2ecf20Sopenharmony_ciKernelVersion:	v4.7
958c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
968c2ecf20Sopenharmony_ciDescription:
978c2ecf20Sopenharmony_ci		(RO) The bitmask indicates the supported device specific control
988c2ecf20Sopenharmony_ci		functions relative to the NVDIMM command family supported by the
998c2ecf20Sopenharmony_ci		device
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/family
1038c2ecf20Sopenharmony_ciDate:		Apr, 2016
1048c2ecf20Sopenharmony_ciKernelVersion:	v4.7
1058c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
1068c2ecf20Sopenharmony_ciDescription:
1078c2ecf20Sopenharmony_ci		(RO) Displays the NVDIMM family command sets. Values
1088c2ecf20Sopenharmony_ci		0, 1, 2 and 3 correspond to NVDIMM_FAMILY_INTEL,
1098c2ecf20Sopenharmony_ci		NVDIMM_FAMILY_HPE1, NVDIMM_FAMILY_HPE2 and NVDIMM_FAMILY_MSFT
1108c2ecf20Sopenharmony_ci		respectively.
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci		See the specifications for these command families here:
1138c2ecf20Sopenharmony_ci		http://pmem.io/documents/NVDIMM_DSM_Interface-V1.6.pdf
1148c2ecf20Sopenharmony_ci		https://github.com/HewlettPackard/hpe-nvm/blob/master/Documentation/
1158c2ecf20Sopenharmony_ci		https://msdn.microsoft.com/library/windows/hardware/mt604741"
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/id
1198c2ecf20Sopenharmony_ciDate:		Apr, 2016
1208c2ecf20Sopenharmony_ciKernelVersion:	v4.7
1218c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
1228c2ecf20Sopenharmony_ciDescription:
1238c2ecf20Sopenharmony_ci		(RO) ACPI specification 6.2 section 5.2.25.9, defines an
1248c2ecf20Sopenharmony_ci		identifier for an NVDIMM, which refelects the id attribute.
1258c2ecf20Sopenharmony_ci
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_vendor
1288c2ecf20Sopenharmony_ciDate:		Apr, 2016
1298c2ecf20Sopenharmony_ciKernelVersion:	v4.7
1308c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
1318c2ecf20Sopenharmony_ciDescription:
1328c2ecf20Sopenharmony_ci		(RO) Sub-system vendor id of the NVDIMM non-volatile memory
1338c2ecf20Sopenharmony_ci		subsystem controller.
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_rev_id
1378c2ecf20Sopenharmony_ciDate:		Apr, 2016
1388c2ecf20Sopenharmony_ciKernelVersion:	v4.7
1398c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
1408c2ecf20Sopenharmony_ciDescription:
1418c2ecf20Sopenharmony_ci		(RO) Sub-system revision id of the NVDIMM non-volatile memory subsystem
1428c2ecf20Sopenharmony_ci		controller, assigned by the non-volatile memory subsystem
1438c2ecf20Sopenharmony_ci		controller vendor.
1448c2ecf20Sopenharmony_ci
1458c2ecf20Sopenharmony_ci
1468c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/nmemX/nfit/subsystem_device
1478c2ecf20Sopenharmony_ciDate:		Apr, 2016
1488c2ecf20Sopenharmony_ciKernelVersion:	v4.7
1498c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
1508c2ecf20Sopenharmony_ciDescription:
1518c2ecf20Sopenharmony_ci		(RO) Sub-system device id for the NVDIMM non-volatile memory
1528c2ecf20Sopenharmony_ci		subsystem controller, assigned by the non-volatile memory
1538c2ecf20Sopenharmony_ci		subsystem controller vendor.
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/ndbusX/nfit/revision
1578c2ecf20Sopenharmony_ciDate:		Jun, 2015
1588c2ecf20Sopenharmony_ciKernelVersion:	v4.2
1598c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
1608c2ecf20Sopenharmony_ciDescription:
1618c2ecf20Sopenharmony_ci		(RO) ACPI NFIT table revision number.
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/ndbusX/nfit/scrub
1658c2ecf20Sopenharmony_ciDate:		Sep, 2016
1668c2ecf20Sopenharmony_ciKernelVersion:	v4.9
1678c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
1688c2ecf20Sopenharmony_ciDescription:
1698c2ecf20Sopenharmony_ci		(RW) This shows the number of full Address Range Scrubs (ARS)
1708c2ecf20Sopenharmony_ci		that have been completed since driver load time. Userspace can
1718c2ecf20Sopenharmony_ci		wait on this using select/poll etc. A '+' at the end indicates
1728c2ecf20Sopenharmony_ci		an ARS is in progress
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ci		Writing a value of 1 triggers an ARS scan.
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ci
1778c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/ndbusX/nfit/hw_error_scrub
1788c2ecf20Sopenharmony_ciDate:		Sep, 2016
1798c2ecf20Sopenharmony_ciKernelVersion:	v4.9
1808c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
1818c2ecf20Sopenharmony_ciDescription:
1828c2ecf20Sopenharmony_ci		(RW) Provides a way to toggle the behavior between just adding
1838c2ecf20Sopenharmony_ci		the address (cache line) where the MCE happened to the poison
1848c2ecf20Sopenharmony_ci		list and doing a full scrub. The former (selective insertion of
1858c2ecf20Sopenharmony_ci		the address) is done unconditionally.
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ci		This attribute can have the following values written to it:
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_ci		'0': Switch to the default mode where an exception will only
1908c2ecf20Sopenharmony_ci		insert the address of the memory error into the poison and
1918c2ecf20Sopenharmony_ci		badblocks lists.
1928c2ecf20Sopenharmony_ci		'1': Enable a full scrub to happen if an exception for a memory
1938c2ecf20Sopenharmony_ci		error is received.
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ci
1968c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/ndbusX/nfit/dsm_mask
1978c2ecf20Sopenharmony_ciDate:		Jun, 2017
1988c2ecf20Sopenharmony_ciKernelVersion:	v4.13
1998c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
2008c2ecf20Sopenharmony_ciDescription:
2018c2ecf20Sopenharmony_ci		(RO) The bitmask indicates the supported bus specific control
2028c2ecf20Sopenharmony_ci		functions. See the section named 'NVDIMM Root Device _DSMs' in
2038c2ecf20Sopenharmony_ci		the ACPI specification.
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/ndbusX/nfit/firmware_activate_noidle
2068c2ecf20Sopenharmony_ciDate:		Apr, 2020
2078c2ecf20Sopenharmony_ciKernelVersion:	v5.8
2088c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
2098c2ecf20Sopenharmony_ciDescription:
2108c2ecf20Sopenharmony_ci		(RW) The Intel platform implementation of firmware activate
2118c2ecf20Sopenharmony_ci		support exposes an option let the platform force idle devices in
2128c2ecf20Sopenharmony_ci		the system over the activation event, or trust that the OS will
2138c2ecf20Sopenharmony_ci		do it. The safe default is to let the platform force idle
2148c2ecf20Sopenharmony_ci		devices since the kernel is already in a suspend state, and on
2158c2ecf20Sopenharmony_ci		the chance that a driver does not properly quiesce bus-mastering
2168c2ecf20Sopenharmony_ci		after a suspend callback the platform will handle it.  However,
2178c2ecf20Sopenharmony_ci		the activation might abort if, for example, platform firmware
2188c2ecf20Sopenharmony_ci		determines that the activation time exceeds the max PCI-E
2198c2ecf20Sopenharmony_ci		completion timeout. Since the platform does not know whether the
2208c2ecf20Sopenharmony_ci		OS is running the activation from a suspend context it aborts,
2218c2ecf20Sopenharmony_ci		but if the system owner trusts driver suspend callback to be
2228c2ecf20Sopenharmony_ci		sufficient then 'firmware_activation_noidle' can be
2238c2ecf20Sopenharmony_ci		enabled to bypass the activation abort.
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ciWhat:		/sys/bus/nd/devices/regionX/nfit/range_index
2268c2ecf20Sopenharmony_ciDate:		Jun, 2015
2278c2ecf20Sopenharmony_ciKernelVersion:	v4.2
2288c2ecf20Sopenharmony_ciContact:	linux-nvdimm@lists.01.org
2298c2ecf20Sopenharmony_ciDescription:
2308c2ecf20Sopenharmony_ci		(RO) A unique number provided by the BIOS to identify an address
2318c2ecf20Sopenharmony_ci		range. Used by NVDIMM Region Mapping Structure to uniquely refer
2328c2ecf20Sopenharmony_ci		to this structure. Value of 0 is reserved and not used as an
2338c2ecf20Sopenharmony_ci		index.
234