1 .. SPDX-License-Identifier: GPL-2.0 2 3 ================================== 4 NVDIMM Runtime Firmware Activation 5 ================================== 6 7 Some persistent memory devices run a firmware 8 "DIMM" to perform tasks like media management, 9 and health monitoring. The process of updating 10 involves a reboot because it has implications 11 transactions. However, reboots are disruptive 12 persistent memory platform implementation, des 13 DSM specification [1], has added support for a 14 runtime. 15 16 A native sysfs interface is implemented in lib 17 to advertise and control their local runtime f 18 capability. 19 20 The libnvdimm bus object, ndbusX, implements a 21 attribute that shows the state of the firmware 22 'armed', 'overflow', and 'busy'. 23 24 - idle: 25 No devices are set / armed to activate firmw 26 27 - armed: 28 At least one device is armed 29 30 - busy: 31 In the busy state armed devices are in the p 32 back to idle and completing an activation cy 33 34 - overflow: 35 If the platform has a concept of incremental 36 the activation it could be the case that too 37 activation. In that scenario the potential f 38 timeout is indicated by the 'overflow' state 39 40 The 'ndbusX/firmware/activate' property can be 41 either 'live', or 'quiesce'. A value of 'quies 42 run firmware activation from within the equiva 43 'freeze' state where drivers and applications 44 modifications of system memory. A value of 'li 45 firmware activation without this hibernation c 46 'ndbusX/firmware/activate' property will be el 47 firmware activation capability is detected. 48 49 Another property 'ndbusX/firmware/capability' 50 'live' or 'quiesce', where 'live' indicates th 51 does not require or inflict any quiesce period 52 firmware. A capability value of 'quiesce' indi 53 expect and injects a quiet period for the memo 54 may still be written to 'ndbusX/firmware/activ 55 assume the risk of racing firmware update with 56 application activity. The 'ndbusX/firmware/cap 57 elided completely if no firmware activation ca 58 59 The libnvdimm memory-device / DIMM object, nme 60 'nmemX/firmware/activate' and 'nmemX/firmware/ 61 communicate the per-device firmware activation 62 'ndbusX/firmware/activate' attribute, the 'nme 63 attribute indicates 'idle', 'armed', or 'busy' 64 from 'armed' to 'idle' when the system is prep 65 firmware staged + state set to armed, and 'ndb 66 triggered. After that activation event the nme 67 attribute reflects the state of the last activ 68 69 - none: 70 No runtime activation triggered since the la 71 72 - success: 73 The last runtime activation completed succes 74 75 - fail: 76 The last runtime activation failed for devic 77 78 - not_staged: 79 The last runtime activation failed due to a 80 firmware image not being staged. 81 82 - need_reset: 83 Runtime firmware activation failed, but the 84 activated via the legacy method of power-cyc 85 86 [1]: https://docs.pmem.io/persistent-memory/
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.