| 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 refelects 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. |