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