2020-10-30 15:40:39 +08:00
|
|
|
For all of the nmem device attributes under ``nfit/*``, see the 'NVDIMM Firmware
|
2018-02-23 20:54:48 +08:00
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
Description:
|
|
|
|
(RO) Vendor id of the NVDIMM.
|
|
|
|
|
|
|
|
|
|
|
|
What: /sys/bus/nd/devices/nmemX/nfit/dsm_mask
|
|
|
|
Date: May, 2016
|
|
|
|
KernelVersion: v4.7
|
|
|
|
Contact: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
Description:
|
|
|
|
(RO) ACPI NFIT table revision number.
|
|
|
|
|
|
|
|
|
|
|
|
What: /sys/bus/nd/devices/ndbusX/nfit/scrub
|
|
|
|
Date: Sep, 2016
|
|
|
|
KernelVersion: v4.9
|
|
|
|
Contact: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
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: linux-nvdimm@lists.01.org
|
|
|
|
Description:
|
|
|
|
(RO) The bitmask indicates the supported bus specific control
|
|
|
|
functions. See the section named 'NVDIMM Root Device _DSMs' in
|
|
|
|
the ACPI specification.
|
|
|
|
|
2020-07-21 06:08:24 +08:00
|
|
|
What: /sys/bus/nd/devices/ndbusX/nfit/firmware_activate_noidle
|
|
|
|
Date: Apr, 2020
|
|
|
|
KernelVersion: v5.8
|
|
|
|
Contact: linux-nvdimm@lists.01.org
|
|
|
|
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.
|
2018-02-23 20:54:48 +08:00
|
|
|
|
|
|
|
What: /sys/bus/nd/devices/regionX/nfit/range_index
|
|
|
|
Date: Jun, 2015
|
|
|
|
KernelVersion: v4.2
|
|
|
|
Contact: linux-nvdimm@lists.01.org
|
|
|
|
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.
|