134433332SMauro Carvalho ChehabFor all of the nmem device attributes under ``nfit/*``, see the 'NVDIMM Firmware 2014d8fd8SAishwarya PantInterface Table (NFIT)' section in the ACPI specification 3014d8fd8SAishwarya Pant(http://www.uefi.org/specifications) for more details. 4014d8fd8SAishwarya Pant 5014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/serial 6014d8fd8SAishwarya PantDate: Jun, 2015 7014d8fd8SAishwarya PantKernelVersion: v4.2 8*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 9014d8fd8SAishwarya PantDescription: 10014d8fd8SAishwarya Pant (RO) Serial number of the NVDIMM (non-volatile dual in-line 11014d8fd8SAishwarya Pant memory module), assigned by the module vendor. 12014d8fd8SAishwarya Pant 13014d8fd8SAishwarya Pant 14014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/handle 15014d8fd8SAishwarya PantDate: Apr, 2015 16014d8fd8SAishwarya PantKernelVersion: v4.2 17*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 18014d8fd8SAishwarya PantDescription: 19014d8fd8SAishwarya Pant (RO) The address (given by the _ADR object) of the device on its 20014d8fd8SAishwarya Pant parent bus of the NVDIMM device containing the NVDIMM region. 21014d8fd8SAishwarya Pant 22014d8fd8SAishwarya Pant 23014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/device 24014d8fd8SAishwarya PantDate: Apr, 2015 25014d8fd8SAishwarya PantKernelVersion: v4.1 26*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 27014d8fd8SAishwarya PantDescription: 28014d8fd8SAishwarya Pant (RO) Device id for the NVDIMM, assigned by the module vendor. 29014d8fd8SAishwarya Pant 30014d8fd8SAishwarya Pant 31014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/rev_id 32014d8fd8SAishwarya PantDate: Jun, 2015 33014d8fd8SAishwarya PantKernelVersion: v4.2 34*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 35014d8fd8SAishwarya PantDescription: 36014d8fd8SAishwarya Pant (RO) Revision of the NVDIMM, assigned by the module vendor. 37014d8fd8SAishwarya Pant 38014d8fd8SAishwarya Pant 39014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/phys_id 40014d8fd8SAishwarya PantDate: Apr, 2015 41014d8fd8SAishwarya PantKernelVersion: v4.2 42*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 43014d8fd8SAishwarya PantDescription: 44014d8fd8SAishwarya Pant (RO) Handle (i.e., instance number) for the SMBIOS (system 45014d8fd8SAishwarya Pant management BIOS) Memory Device structure describing the NVDIMM 46014d8fd8SAishwarya Pant containing the NVDIMM region. 47014d8fd8SAishwarya Pant 48014d8fd8SAishwarya Pant 49014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/flags 50014d8fd8SAishwarya PantDate: Jun, 2015 51014d8fd8SAishwarya PantKernelVersion: v4.2 52*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 53014d8fd8SAishwarya PantDescription: 54014d8fd8SAishwarya Pant (RO) The flags in the NFIT memory device sub-structure indicate 55014d8fd8SAishwarya Pant the state of the data on the nvdimm relative to its energy 56014d8fd8SAishwarya Pant source or last "flush to persistence". 57014d8fd8SAishwarya Pant 58014d8fd8SAishwarya Pant The attribute is a translation of the 'NVDIMM State Flags' field 59014d8fd8SAishwarya Pant in section 5.2.25.3 'NVDIMM Region Mapping' Structure of the 60014d8fd8SAishwarya Pant ACPI specification 6.2. 61014d8fd8SAishwarya Pant 62014d8fd8SAishwarya Pant The health states are "save_fail", "restore_fail", "flush_fail", 63014d8fd8SAishwarya Pant "not_armed", "smart_event", "map_fail" and "smart_notify". 64014d8fd8SAishwarya Pant 65014d8fd8SAishwarya Pant 66014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/format 67014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/format1 68014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/formats 69014d8fd8SAishwarya PantDate: Apr, 2016 70014d8fd8SAishwarya PantKernelVersion: v4.7 71*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 72014d8fd8SAishwarya PantDescription: 73014d8fd8SAishwarya Pant (RO) The interface codes indicate support for persistent memory 74014d8fd8SAishwarya Pant mapped directly into system physical address space and / or a 75014d8fd8SAishwarya Pant block aperture access mechanism to the NVDIMM media. 76014d8fd8SAishwarya Pant The 'formats' attribute displays the number of supported 77014d8fd8SAishwarya Pant interfaces. 78014d8fd8SAishwarya Pant 79014d8fd8SAishwarya Pant This layout is compatible with existing libndctl binaries that 80014d8fd8SAishwarya Pant only expect one code per-dimm as they will ignore 81014d8fd8SAishwarya Pant nmemX/nfit/formats and nmemX/nfit/formatN. 82014d8fd8SAishwarya Pant 83014d8fd8SAishwarya Pant 84014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/vendor 85014d8fd8SAishwarya PantDate: Apr, 2016 86014d8fd8SAishwarya PantKernelVersion: v4.7 87*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 88014d8fd8SAishwarya PantDescription: 89014d8fd8SAishwarya Pant (RO) Vendor id of the NVDIMM. 90014d8fd8SAishwarya Pant 91014d8fd8SAishwarya Pant 92014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/dsm_mask 93014d8fd8SAishwarya PantDate: May, 2016 94014d8fd8SAishwarya PantKernelVersion: v4.7 95*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 96014d8fd8SAishwarya PantDescription: 97014d8fd8SAishwarya Pant (RO) The bitmask indicates the supported device specific control 98014d8fd8SAishwarya Pant functions relative to the NVDIMM command family supported by the 99014d8fd8SAishwarya Pant device 100014d8fd8SAishwarya Pant 101014d8fd8SAishwarya Pant 102014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/family 103014d8fd8SAishwarya PantDate: Apr, 2016 104014d8fd8SAishwarya PantKernelVersion: v4.7 105*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 106014d8fd8SAishwarya PantDescription: 107014d8fd8SAishwarya Pant (RO) Displays the NVDIMM family command sets. Values 108014d8fd8SAishwarya Pant 0, 1, 2 and 3 correspond to NVDIMM_FAMILY_INTEL, 109014d8fd8SAishwarya Pant NVDIMM_FAMILY_HPE1, NVDIMM_FAMILY_HPE2 and NVDIMM_FAMILY_MSFT 110014d8fd8SAishwarya Pant respectively. 111014d8fd8SAishwarya Pant 112014d8fd8SAishwarya Pant See the specifications for these command families here: 113014d8fd8SAishwarya Pant http://pmem.io/documents/NVDIMM_DSM_Interface-V1.6.pdf 114014d8fd8SAishwarya Pant https://github.com/HewlettPackard/hpe-nvm/blob/master/Documentation/ 115014d8fd8SAishwarya Pant https://msdn.microsoft.com/library/windows/hardware/mt604741" 116014d8fd8SAishwarya Pant 117014d8fd8SAishwarya Pant 118014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/id 119014d8fd8SAishwarya PantDate: Apr, 2016 120014d8fd8SAishwarya PantKernelVersion: v4.7 121*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 122014d8fd8SAishwarya PantDescription: 123014d8fd8SAishwarya Pant (RO) ACPI specification 6.2 section 5.2.25.9, defines an 124014d8fd8SAishwarya Pant identifier for an NVDIMM, which refelects the id attribute. 125014d8fd8SAishwarya Pant 126014d8fd8SAishwarya Pant 127014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/subsystem_vendor 128014d8fd8SAishwarya PantDate: Apr, 2016 129014d8fd8SAishwarya PantKernelVersion: v4.7 130*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 131014d8fd8SAishwarya PantDescription: 132014d8fd8SAishwarya Pant (RO) Sub-system vendor id of the NVDIMM non-volatile memory 133014d8fd8SAishwarya Pant subsystem controller. 134014d8fd8SAishwarya Pant 135014d8fd8SAishwarya Pant 136014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/subsystem_rev_id 137014d8fd8SAishwarya PantDate: Apr, 2016 138014d8fd8SAishwarya PantKernelVersion: v4.7 139*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 140014d8fd8SAishwarya PantDescription: 141014d8fd8SAishwarya Pant (RO) Sub-system revision id of the NVDIMM non-volatile memory subsystem 142014d8fd8SAishwarya Pant controller, assigned by the non-volatile memory subsystem 143014d8fd8SAishwarya Pant controller vendor. 144014d8fd8SAishwarya Pant 145014d8fd8SAishwarya Pant 146014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/nmemX/nfit/subsystem_device 147014d8fd8SAishwarya PantDate: Apr, 2016 148014d8fd8SAishwarya PantKernelVersion: v4.7 149*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 150014d8fd8SAishwarya PantDescription: 151014d8fd8SAishwarya Pant (RO) Sub-system device id for the NVDIMM non-volatile memory 152014d8fd8SAishwarya Pant subsystem controller, assigned by the non-volatile memory 153014d8fd8SAishwarya Pant subsystem controller vendor. 154014d8fd8SAishwarya Pant 155014d8fd8SAishwarya Pant 156014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/ndbusX/nfit/revision 157014d8fd8SAishwarya PantDate: Jun, 2015 158014d8fd8SAishwarya PantKernelVersion: v4.2 159*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 160014d8fd8SAishwarya PantDescription: 161014d8fd8SAishwarya Pant (RO) ACPI NFIT table revision number. 162014d8fd8SAishwarya Pant 163014d8fd8SAishwarya Pant 164014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/ndbusX/nfit/scrub 165014d8fd8SAishwarya PantDate: Sep, 2016 166014d8fd8SAishwarya PantKernelVersion: v4.9 167*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 168014d8fd8SAishwarya PantDescription: 169014d8fd8SAishwarya Pant (RW) This shows the number of full Address Range Scrubs (ARS) 170014d8fd8SAishwarya Pant that have been completed since driver load time. Userspace can 171014d8fd8SAishwarya Pant wait on this using select/poll etc. A '+' at the end indicates 172014d8fd8SAishwarya Pant an ARS is in progress 173014d8fd8SAishwarya Pant 174014d8fd8SAishwarya Pant Writing a value of 1 triggers an ARS scan. 175014d8fd8SAishwarya Pant 176014d8fd8SAishwarya Pant 177014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/ndbusX/nfit/hw_error_scrub 178014d8fd8SAishwarya PantDate: Sep, 2016 179014d8fd8SAishwarya PantKernelVersion: v4.9 180*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 181014d8fd8SAishwarya PantDescription: 182014d8fd8SAishwarya Pant (RW) Provides a way to toggle the behavior between just adding 183014d8fd8SAishwarya Pant the address (cache line) where the MCE happened to the poison 184014d8fd8SAishwarya Pant list and doing a full scrub. The former (selective insertion of 185014d8fd8SAishwarya Pant the address) is done unconditionally. 186014d8fd8SAishwarya Pant 187014d8fd8SAishwarya Pant This attribute can have the following values written to it: 188014d8fd8SAishwarya Pant 189014d8fd8SAishwarya Pant '0': Switch to the default mode where an exception will only 190014d8fd8SAishwarya Pant insert the address of the memory error into the poison and 191014d8fd8SAishwarya Pant badblocks lists. 192014d8fd8SAishwarya Pant '1': Enable a full scrub to happen if an exception for a memory 193014d8fd8SAishwarya Pant error is received. 194014d8fd8SAishwarya Pant 195014d8fd8SAishwarya Pant 196014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/ndbusX/nfit/dsm_mask 197014d8fd8SAishwarya PantDate: Jun, 2017 198014d8fd8SAishwarya PantKernelVersion: v4.13 199*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 200014d8fd8SAishwarya PantDescription: 201014d8fd8SAishwarya Pant (RO) The bitmask indicates the supported bus specific control 202014d8fd8SAishwarya Pant functions. See the section named 'NVDIMM Root Device _DSMs' in 203014d8fd8SAishwarya Pant the ACPI specification. 204014d8fd8SAishwarya Pant 205a1facc1fSDan WilliamsWhat: /sys/bus/nd/devices/ndbusX/nfit/firmware_activate_noidle 206a1facc1fSDan WilliamsDate: Apr, 2020 207a1facc1fSDan WilliamsKernelVersion: v5.8 208*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 209a1facc1fSDan WilliamsDescription: 210a1facc1fSDan Williams (RW) The Intel platform implementation of firmware activate 211a1facc1fSDan Williams support exposes an option let the platform force idle devices in 212a1facc1fSDan Williams the system over the activation event, or trust that the OS will 213a1facc1fSDan Williams do it. The safe default is to let the platform force idle 214a1facc1fSDan Williams devices since the kernel is already in a suspend state, and on 215a1facc1fSDan Williams the chance that a driver does not properly quiesce bus-mastering 216a1facc1fSDan Williams after a suspend callback the platform will handle it. However, 217a1facc1fSDan Williams the activation might abort if, for example, platform firmware 218a1facc1fSDan Williams determines that the activation time exceeds the max PCI-E 219a1facc1fSDan Williams completion timeout. Since the platform does not know whether the 220a1facc1fSDan Williams OS is running the activation from a suspend context it aborts, 221a1facc1fSDan Williams but if the system owner trusts driver suspend callback to be 222a1facc1fSDan Williams sufficient then 'firmware_activation_noidle' can be 223a1facc1fSDan Williams enabled to bypass the activation abort. 224014d8fd8SAishwarya Pant 225014d8fd8SAishwarya PantWhat: /sys/bus/nd/devices/regionX/nfit/range_index 226014d8fd8SAishwarya PantDate: Jun, 2015 227014d8fd8SAishwarya PantKernelVersion: v4.2 228*3dd4fe4bSDan WilliamsContact: nvdimm@lists.linux.dev 229014d8fd8SAishwarya PantDescription: 230014d8fd8SAishwarya Pant (RO) A unique number provided by the BIOS to identify an address 231014d8fd8SAishwarya Pant range. Used by NVDIMM Region Mapping Structure to uniquely refer 232014d8fd8SAishwarya Pant to this structure. Value of 0 is reserved and not used as an 233014d8fd8SAishwarya Pant index. 234