1NDCTL-ACTIVATE-FIR(1) NDCTL-ACTIVATE-FIR(1)
2
3
4
6 ndctl-activate-firmware - activate staged firmware on memory devices
7
9 ndctl activate-firmware [<bus-id> <bus-id2> ... <bus-idN>] [<options>]
10
11 Some persistent memory devices run a firmware locally on the device /
12 "DIMM" to perform tasks like media management, capacity provisioning,
13 and health monitoring. The process of updating that firmware typically
14 involves a reboot because it has implications for in-flight memory
15 transactions. However, reboots can be costly for systems that can not
16 tolerate extended downtime.
17
18 The kernel detects platforms that expose support for
19 runtime-firmware-activation (FWA). The ndctl update-firmware stages new
20 firmware binaries, but if the platform supports FWA it will
21 additionally arm the devices for activation. Then ndctl
22 activate-firmware may attempt to activate the firmware live. However,
23 if the platform indicates that the memory controller will be taken
24 off-line for the duration of the update "activate_method == suspend"
25 then the default policy for firmware activation is to inject a
26 truncated hibernate cycle to freeze devices and applications before the
27 hard quiesce is injected by the platform, and then resume the system.
28
29 DANGER the activate-firmware command includes a --force option to tell
30 the driver bypass the hibernation cycle and perform the update "live".
31 I.e. it arranges for applications and devices to race the platform
32 injected quiesce period. This option should only be used explicit
33 knowledge that the platform quiesce time will not trigger completion
34 timeout violations for any devices in the system.
35
37 Check for any buses that support activation without triggering an
38 activation:
39
40 # ndctl activate-firmware all --dry-run
41 ACPI.NFIT: ndbus1: has no devices that support firmware update.
42 nfit_test.1: ndbus3: has no devices that support firmware update.
43 e820: ndbus0: has no devices that support firmware update.
44 [
45 {
46 "provider":"nfit_test.0",
47 "dev":"ndbus1",
48 "scrub_state":"idle",
49 "firmware":{
50 "activate_method":"suspend",
51 "activate_state":"idle"
52 },
53 "dimms":[
54 {
55 ...
56
57 Check that a specific bus supports activation without performing an
58 activation:
59
60 # ndctl activate-firmware nfit_test.0 --dry-run --force
61 [
62 {
63 "provider":"nfit_test.0",
64 "dev":"ndbus2",
65 "scrub_state":"idle",
66 "firmware":{
67 "activate_method":"suspend",
68 "activate_state":"idle"
69 },
70 "dimms":[
71 ...
72 ]
73
74 The result is equivalent to ndctl list -BFDu upon successful
75 activation.
76
77 The ndctl list command can also enumerate the default activation
78 method:
79
80 # ndctl list -b nfit_test.0 -BF
81 [
82 {
83 "provider":"nfit_test.0",
84 "dev":"ndbus2",
85 "scrub_state":"idle",
86 "firmware":{
87 "activate_method":"suspend",
88 "activate_state":"idle"
89 }
90 }
91 ]
92
94 -n, --dry-run
95 Perform all actions related to activation including honoring --idle
96 and --force, but skip the final execution of the activation. The
97 overrides are undone before the command completes. Any failed
98 overrides will be reported as error messages.
99
100 -I, --idle
101 Implied by default, this option controls whether the platform will
102 attempt to increase the completion timeout of all devices in the
103 system and validate that the max completion timeout satisfies the
104 time needed to perform the activation. This validation step can be
105 overridden by specifying --no-idle.
106
107 -f, --force
108 The activation method defaults to the reported
109 "bus.firmware.activate_method" property. When the method is "live"
110 then this --force option is ignored. When the method is "reset" no
111 runtime activation is attempted. When the method is "suspend" this
112 option indicates to the driver to bypass the hibernate cycle to
113 activate firmware. in the bus When the reported "activate_method"
114 is "suspend" the kernel driver may support overriding the suspend
115 requirement and instead issue the firmware-activation live.
116 CAUTION this may lead to undefined system behavior if device
117 completion timeouts are violated for in-flight memory operations.
118
119 -v, --verbose
120 Emit debug messages for the firmware activation procedure
121
123 Copyright © 2016 - 2022, Intel Corporation. License GPLv2: GNU GPL
124 version 2 http://gnu.org/licenses/gpl.html. This is free software: you
125 are free to change and redistribute it. There is NO WARRANTY, to the
126 extent permitted by law.
127
129 linkndctl:ndctl-update-firmware[1], Intel Optane PMem DSM Interface[1]
130
132 1. Intel Optane PMem DSM Interface
133 https://pmem.io/documents/IntelOptanePMem_DSM_Interface-V2.0.pdf
134
135
136
137 08/03/2023 NDCTL-ACTIVATE-FIR(1)