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