|
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 122 | +Description: |
| 123 | + (RO) ACPI specification 6.2 section 5.2.25.9, defines an |
| 124 | + identifier for an NVDIMM, which refelects the id attribute. |
| 125 | + |
| 126 | + |
| 127 | +What: /sys/bus/nd/devices/nmemX/nfit/subsystem_vendor |
| 128 | +Date: Apr, 2016 |
| 129 | +KernelVersion: v4.7 |
| 130 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 206 | +What: /sys/bus/nd/devices/regionX/nfit/range_index |
| 207 | +Date: Jun, 2015 |
| 208 | +KernelVersion: v4.2 |
| 209 | + |
| 210 | +Description: |
| 211 | + (RO) A unique number provided by the BIOS to identify an address |
| 212 | + range. Used by NVDIMM Region Mapping Structure to uniquely refer |
| 213 | + to this structure. Value of 0 is reserved and not used as an |
| 214 | + index. |
| 215 | + |
| 216 | + |
| 217 | +What: /sys/bus/nd/devices/regionX/nfit/ecc_unit_size |
| 218 | +Date: Aug, 2017 |
| 219 | +KernelVersion: v4.14 |
| 220 | + |
| 221 | +Description: |
| 222 | + (RO) Size of a write request to a DIMM that will not incur a |
| 223 | + read-modify-write cycle at the memory controller. |
| 224 | + |
| 225 | + When the nfit driver initializes it runs an ARS (Address Range |
| 226 | + Scrub) operation across every pmem range. Part of that process |
| 227 | + involves determining the ARS capabilities of a given address |
| 228 | + range. One of the capabilities that is reported is the 'Clear |
| 229 | + Uncorrectable Error Range Length Unit Size' (see: ACPI 6.2 |
| 230 | + section 9.20.7.4 Function Index 1 - Query ARS Capabilities). |
| 231 | + This property indicates the boundary at which the NVDIMM may |
| 232 | + need to perform read-modify-write cycles to maintain ECC (Error |
| 233 | + Correcting Code) blocks. |
0 commit comments