0001 For all of the nmem device attributes under ``nfit/*``, see the 'NVDIMM Firmware
0002 Interface Table (NFIT)' section in the ACPI specification
0003 (http://www.uefi.org/specifications) for more details.
0004
0005 What: /sys/bus/nd/devices/nmemX/nfit/serial
0006 Date: Jun, 2015
0007 KernelVersion: v4.2
0008 Contact: nvdimm@lists.linux.dev
0009 Description:
0010 (RO) Serial number of the NVDIMM (non-volatile dual in-line
0011 memory module), assigned by the module vendor.
0012
0013
0014 What: /sys/bus/nd/devices/nmemX/nfit/handle
0015 Date: Apr, 2015
0016 KernelVersion: v4.2
0017 Contact: nvdimm@lists.linux.dev
0018 Description:
0019 (RO) The address (given by the _ADR object) of the device on its
0020 parent bus of the NVDIMM device containing the NVDIMM region.
0021
0022
0023 What: /sys/bus/nd/devices/nmemX/nfit/device
0024 Date: Apr, 2015
0025 KernelVersion: v4.1
0026 Contact: nvdimm@lists.linux.dev
0027 Description:
0028 (RO) Device id for the NVDIMM, assigned by the module vendor.
0029
0030
0031 What: /sys/bus/nd/devices/nmemX/nfit/rev_id
0032 Date: Jun, 2015
0033 KernelVersion: v4.2
0034 Contact: nvdimm@lists.linux.dev
0035 Description:
0036 (RO) Revision of the NVDIMM, assigned by the module vendor.
0037
0038
0039 What: /sys/bus/nd/devices/nmemX/nfit/phys_id
0040 Date: Apr, 2015
0041 KernelVersion: v4.2
0042 Contact: nvdimm@lists.linux.dev
0043 Description:
0044 (RO) Handle (i.e., instance number) for the SMBIOS (system
0045 management BIOS) Memory Device structure describing the NVDIMM
0046 containing the NVDIMM region.
0047
0048
0049 What: /sys/bus/nd/devices/nmemX/nfit/flags
0050 Date: Jun, 2015
0051 KernelVersion: v4.2
0052 Contact: nvdimm@lists.linux.dev
0053 Description:
0054 (RO) The flags in the NFIT memory device sub-structure indicate
0055 the state of the data on the nvdimm relative to its energy
0056 source or last "flush to persistence".
0057
0058 The attribute is a translation of the 'NVDIMM State Flags' field
0059 in section 5.2.25.3 'NVDIMM Region Mapping' Structure of the
0060 ACPI specification 6.2.
0061
0062 The health states are "save_fail", "restore_fail", "flush_fail",
0063 "not_armed", "smart_event", "map_fail" and "smart_notify".
0064
0065
0066 What: /sys/bus/nd/devices/nmemX/nfit/format
0067 What: /sys/bus/nd/devices/nmemX/nfit/format1
0068 What: /sys/bus/nd/devices/nmemX/nfit/formats
0069 Date: Apr, 2016
0070 KernelVersion: v4.7
0071 Contact: nvdimm@lists.linux.dev
0072 Description:
0073 (RO) The interface codes indicate support for persistent memory
0074 mapped directly into system physical address space and / or a
0075 block aperture access mechanism to the NVDIMM media.
0076 The 'formats' attribute displays the number of supported
0077 interfaces.
0078
0079 This layout is compatible with existing libndctl binaries that
0080 only expect one code per-dimm as they will ignore
0081 nmemX/nfit/formats and nmemX/nfit/formatN.
0082
0083
0084 What: /sys/bus/nd/devices/nmemX/nfit/vendor
0085 Date: Apr, 2016
0086 KernelVersion: v4.7
0087 Contact: nvdimm@lists.linux.dev
0088 Description:
0089 (RO) Vendor id of the NVDIMM.
0090
0091
0092 What: /sys/bus/nd/devices/nmemX/nfit/dsm_mask
0093 Date: May, 2016
0094 KernelVersion: v4.7
0095 Contact: nvdimm@lists.linux.dev
0096 Description:
0097 (RO) The bitmask indicates the supported device specific control
0098 functions relative to the NVDIMM command family supported by the
0099 device
0100
0101
0102 What: /sys/bus/nd/devices/nmemX/nfit/family
0103 Date: Apr, 2016
0104 KernelVersion: v4.7
0105 Contact: nvdimm@lists.linux.dev
0106 Description:
0107 (RO) Displays the NVDIMM family command sets. Values
0108 0, 1, 2 and 3 correspond to NVDIMM_FAMILY_INTEL,
0109 NVDIMM_FAMILY_HPE1, NVDIMM_FAMILY_HPE2 and NVDIMM_FAMILY_MSFT
0110 respectively.
0111
0112 See the specifications for these command families here:
0113 http://pmem.io/documents/NVDIMM_DSM_Interface-V1.6.pdf
0114 https://github.com/HewlettPackard/hpe-nvm/blob/master/Documentation/
0115 https://msdn.microsoft.com/library/windows/hardware/mt604741"
0116
0117
0118 What: /sys/bus/nd/devices/nmemX/nfit/id
0119 Date: Apr, 2016
0120 KernelVersion: v4.7
0121 Contact: nvdimm@lists.linux.dev
0122 Description:
0123 (RO) ACPI specification 6.2 section 5.2.25.9, defines an
0124 identifier for an NVDIMM, which refelects the id attribute.
0125
0126
0127 What: /sys/bus/nd/devices/nmemX/nfit/subsystem_vendor
0128 Date: Apr, 2016
0129 KernelVersion: v4.7
0130 Contact: nvdimm@lists.linux.dev
0131 Description:
0132 (RO) Sub-system vendor id of the NVDIMM non-volatile memory
0133 subsystem controller.
0134
0135
0136 What: /sys/bus/nd/devices/nmemX/nfit/subsystem_rev_id
0137 Date: Apr, 2016
0138 KernelVersion: v4.7
0139 Contact: nvdimm@lists.linux.dev
0140 Description:
0141 (RO) Sub-system revision id of the NVDIMM non-volatile memory subsystem
0142 controller, assigned by the non-volatile memory subsystem
0143 controller vendor.
0144
0145
0146 What: /sys/bus/nd/devices/nmemX/nfit/subsystem_device
0147 Date: Apr, 2016
0148 KernelVersion: v4.7
0149 Contact: nvdimm@lists.linux.dev
0150 Description:
0151 (RO) Sub-system device id for the NVDIMM non-volatile memory
0152 subsystem controller, assigned by the non-volatile memory
0153 subsystem controller vendor.
0154
0155
0156 What: /sys/bus/nd/devices/ndbusX/nfit/revision
0157 Date: Jun, 2015
0158 KernelVersion: v4.2
0159 Contact: nvdimm@lists.linux.dev
0160 Description:
0161 (RO) ACPI NFIT table revision number.
0162
0163
0164 What: /sys/bus/nd/devices/ndbusX/nfit/scrub
0165 Date: Sep, 2016
0166 KernelVersion: v4.9
0167 Contact: nvdimm@lists.linux.dev
0168 Description:
0169 (RW) This shows the number of full Address Range Scrubs (ARS)
0170 that have been completed since driver load time. Userspace can
0171 wait on this using select/poll etc. A '+' at the end indicates
0172 an ARS is in progress
0173
0174 Writing a value of 1 triggers an ARS scan.
0175
0176
0177 What: /sys/bus/nd/devices/ndbusX/nfit/hw_error_scrub
0178 Date: Sep, 2016
0179 KernelVersion: v4.9
0180 Contact: nvdimm@lists.linux.dev
0181 Description:
0182 (RW) Provides a way to toggle the behavior between just adding
0183 the address (cache line) where the MCE happened to the poison
0184 list and doing a full scrub. The former (selective insertion of
0185 the address) is done unconditionally.
0186
0187 This attribute can have the following values written to it:
0188
0189 '0': Switch to the default mode where an exception will only
0190 insert the address of the memory error into the poison and
0191 badblocks lists.
0192 '1': Enable a full scrub to happen if an exception for a memory
0193 error is received.
0194
0195
0196 What: /sys/bus/nd/devices/ndbusX/nfit/dsm_mask
0197 Date: Jun, 2017
0198 KernelVersion: v4.13
0199 Contact: nvdimm@lists.linux.dev
0200 Description:
0201 (RO) The bitmask indicates the supported bus specific control
0202 functions. See the section named 'NVDIMM Root Device _DSMs' in
0203 the ACPI specification.
0204
0205 What: /sys/bus/nd/devices/ndbusX/nfit/firmware_activate_noidle
0206 Date: Apr, 2020
0207 KernelVersion: v5.8
0208 Contact: nvdimm@lists.linux.dev
0209 Description:
0210 (RW) The Intel platform implementation of firmware activate
0211 support exposes an option let the platform force idle devices in
0212 the system over the activation event, or trust that the OS will
0213 do it. The safe default is to let the platform force idle
0214 devices since the kernel is already in a suspend state, and on
0215 the chance that a driver does not properly quiesce bus-mastering
0216 after a suspend callback the platform will handle it. However,
0217 the activation might abort if, for example, platform firmware
0218 determines that the activation time exceeds the max PCI-E
0219 completion timeout. Since the platform does not know whether the
0220 OS is running the activation from a suspend context it aborts,
0221 but if the system owner trusts driver suspend callback to be
0222 sufficient then 'firmware_activation_noidle' can be
0223 enabled to bypass the activation abort.
0224
0225 What: /sys/bus/nd/devices/regionX/nfit/range_index
0226 Date: Jun, 2015
0227 KernelVersion: v4.2
0228 Contact: nvdimm@lists.linux.dev
0229 Description:
0230 (RO) A unique number provided by the BIOS to identify an address
0231 range. Used by NVDIMM Region Mapping Structure to uniquely refer
0232 to this structure. Value of 0 is reserved and not used as an
0233 index.