1 For all of the nmem device attributes under ``nfit/*``, see the 'NVDIMM Firmware 2 Interface Table (NFIT)' section in the ACPI specification 3 (http://www.uefi.org/specifications) for more details. 4 5 What: /sys/bus/nd/devices/nmemX/nfit/serial 6 Date: Jun, 2015 7 KernelVersion: v4.2 8 Contact: nvdimm@lists.linux.dev 9 Description: 10 (RO) Serial number of the NVDIMM (non-volatile dual in-line 11 memory module), assigned by the module vendor. 12 13 14 What: /sys/bus/nd/devices/nmemX/nfit/handle 15 Date: Apr, 2015 16 KernelVersion: v4.2 17 Contact: nvdimm@lists.linux.dev 18 Description: 19 (RO) The address (given by the _ADR object) of the device on its 20 parent bus of the NVDIMM device containing the NVDIMM region. 21 22 23 What: /sys/bus/nd/devices/nmemX/nfit/device 24 Date: Apr, 2015 25 KernelVersion: v4.1 26 Contact: nvdimm@lists.linux.dev 27 Description: 28 (RO) Device id for the NVDIMM, assigned by the module vendor. 29 30 31 What: /sys/bus/nd/devices/nmemX/nfit/rev_id 32 Date: Jun, 2015 33 KernelVersion: v4.2 34 Contact: nvdimm@lists.linux.dev 35 Description: 36 (RO) Revision of the NVDIMM, assigned by the module vendor. 37 38 39 What: /sys/bus/nd/devices/nmemX/nfit/phys_id 40 Date: Apr, 2015 41 KernelVersion: v4.2 42 Contact: nvdimm@lists.linux.dev 43 Description: 44 (RO) Handle (i.e., instance number) for the SMBIOS (system 45 management BIOS) Memory Device structure describing the NVDIMM 46 containing the NVDIMM region. 47 48 49 What: /sys/bus/nd/devices/nmemX/nfit/flags 50 Date: Jun, 2015 51 KernelVersion: v4.2 52 Contact: nvdimm@lists.linux.dev 53 Description: 54 (RO) The flags in the NFIT memory device sub-structure indicate 55 the state of the data on the nvdimm relative to its energy 56 source or last "flush to persistence". 57 58 The attribute is a translation of the 'NVDIMM State Flags' field 59 in section 5.2.25.3 'NVDIMM Region Mapping' Structure of the 60 ACPI specification 6.2. 61 62 The health states are "save_fail", "restore_fail", "flush_fail", 63 "not_armed", "smart_event", "map_fail" and "smart_notify". 64 65 66 What: /sys/bus/nd/devices/nmemX/nfit/format 67 What: /sys/bus/nd/devices/nmemX/nfit/format1 68 What: /sys/bus/nd/devices/nmemX/nfit/formats 69 Date: Apr, 2016 70 KernelVersion: v4.7 71 Contact: nvdimm@lists.linux.dev 72 Description: 73 (RO) The interface codes indicate support for persistent memory 74 mapped directly into system physical address space and / or a 75 block aperture access mechanism to the NVDIMM media. 76 The 'formats' attribute displays the number of supported 77 interfaces. 78 79 This layout is compatible with existing libndctl binaries that 80 only expect one code per-dimm as they will ignore 81 nmemX/nfit/formats and nmemX/nfit/formatN. 82 83 84 What: /sys/bus/nd/devices/nmemX/nfit/vendor 85 Date: Apr, 2016 86 KernelVersion: v4.7 87 Contact: nvdimm@lists.linux.dev 88 Description: 89 (RO) Vendor id of the NVDIMM. 90 91 92 What: /sys/bus/nd/devices/nmemX/nfit/dsm_mask 93 Date: May, 2016 94 KernelVersion: v4.7 95 Contact: nvdimm@lists.linux.dev 96 Description: 97 (RO) The bitmask indicates the supported device specific control 98 functions relative to the NVDIMM command family supported by the 99 device 100 101 102 What: /sys/bus/nd/devices/nmemX/nfit/family 103 Date: Apr, 2016 104 KernelVersion: v4.7 105 Contact: nvdimm@lists.linux.dev 106 Description: 107 (RO) Displays the NVDIMM family command sets. Values 108 0, 1, 2 and 3 correspond to NVDIMM_FAMILY_INTEL, 109 NVDIMM_FAMILY_HPE1, NVDIMM_FAMILY_HPE2 and NVDIMM_FAMILY_MSFT 110 respectively. 111 112 See the specifications for these command families here: 113 http://pmem.io/documents/NVDIMM_DSM_Interface-V1.6.pdf 114 https://github.com/HewlettPackard/hpe-nvm/blob/master/Documentation/ 115 https://msdn.microsoft.com/library/windows/hardware/mt604741" 116 117 118 What: /sys/bus/nd/devices/nmemX/nfit/id 119 Date: Apr, 2016 120 KernelVersion: v4.7 121 Contact: nvdimm@lists.linux.dev 122 Description: 123 (RO) ACPI specification 6.2 section 5.2.25.9, defines an 124 identifier for an NVDIMM, which reflects the id attribute. 125 126 127 What: /sys/bus/nd/devices/nmemX/nfit/subsystem_vendor 128 Date: Apr, 2016 129 KernelVersion: v4.7 130 Contact: nvdimm@lists.linux.dev 131 Description: 132 (RO) Sub-system vendor id of the NVDIMM non-volatile memory 133 subsystem controller. 134 135 136 What: /sys/bus/nd/devices/nmemX/nfit/subsystem_rev_id 137 Date: Apr, 2016 138 KernelVersion: v4.7 139 Contact: nvdimm@lists.linux.dev 140 Description: 141 (RO) Sub-system revision id of the NVDIMM non-volatile memory subsystem 142 controller, assigned by the non-volatile memory subsystem 143 controller vendor. 144 145 146 What: /sys/bus/nd/devices/nmemX/nfit/subsystem_device 147 Date: Apr, 2016 148 KernelVersion: v4.7 149 Contact: nvdimm@lists.linux.dev 150 Description: 151 (RO) Sub-system device id for the NVDIMM non-volatile memory 152 subsystem controller, assigned by the non-volatile memory 153 subsystem controller vendor. 154 155 156 What: /sys/bus/nd/devices/ndbusX/nfit/revision 157 Date: Jun, 2015 158 KernelVersion: v4.2 159 Contact: nvdimm@lists.linux.dev 160 Description: 161 (RO) ACPI NFIT table revision number. 162 163 164 What: /sys/bus/nd/devices/ndbusX/nfit/scrub 165 Date: Sep, 2016 166 KernelVersion: v4.9 167 Contact: nvdimm@lists.linux.dev 168 Description: 169 (RW) This shows the number of full Address Range Scrubs (ARS) 170 that have been completed since driver load time. Userspace can 171 wait on this using select/poll etc. A '+' at the end indicates 172 an ARS is in progress 173 174 Writing a value of 1 triggers an ARS scan. 175 176 177 What: /sys/bus/nd/devices/ndbusX/nfit/hw_error_scrub 178 Date: Sep, 2016 179 KernelVersion: v4.9 180 Contact: nvdimm@lists.linux.dev 181 Description: 182 (RW) Provides a way to toggle the behavior between just adding 183 the address (cache line) where the MCE happened to the poison 184 list and doing a full scrub. The former (selective insertion of 185 the address) is done unconditionally. 186 187 This attribute can have the following values written to it: 188 189 '0': Switch to the default mode where an exception will only 190 insert the address of the memory error into the poison and 191 badblocks lists. 192 '1': Enable a full scrub to happen if an exception for a memory 193 error is received. 194 195 196 What: /sys/bus/nd/devices/ndbusX/nfit/dsm_mask 197 Date: Jun, 2017 198 KernelVersion: v4.13 199 Contact: nvdimm@lists.linux.dev 200 Description: 201 (RO) The bitmask indicates the supported bus specific control 202 functions. See the section named 'NVDIMM Root Device _DSMs' in 203 the ACPI specification. 204 205 What: /sys/bus/nd/devices/ndbusX/nfit/firmware_activate_noidle 206 Date: Apr, 2020 207 KernelVersion: v5.8 208 Contact: nvdimm@lists.linux.dev 209 Description: 210 (RW) The Intel platform implementation of firmware activate 211 support exposes an option let the platform force idle devices in 212 the system over the activation event, or trust that the OS will 213 do it. The safe default is to let the platform force idle 214 devices since the kernel is already in a suspend state, and on 215 the chance that a driver does not properly quiesce bus-mastering 216 after a suspend callback the platform will handle it. However, 217 the activation might abort if, for example, platform firmware 218 determines that the activation time exceeds the max PCI-E 219 completion timeout. Since the platform does not know whether the 220 OS is running the activation from a suspend context it aborts, 221 but if the system owner trusts driver suspend callback to be 222 sufficient then 'firmware_activation_noidle' can be 223 enabled to bypass the activation abort. 224 225 What: /sys/bus/nd/devices/regionX/nfit/range_index 226 Date: Jun, 2015 227 KernelVersion: v4.2 228 Contact: nvdimm@lists.linux.dev 229 Description: 230 (RO) A unique number provided by the BIOS to identify an address 231 range. Used by NVDIMM Region Mapping Structure to uniquely refer 232 to this structure. Value of 0 is reserved and not used as an 233 index.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.