xref: /openbmc/linux/Documentation/ABI/testing/sysfs-class-firmware (revision 536fd8184b7dfa30e28e5b459e7c5c91c3a8063f)
197730bbbSRuss WeightWhat: 		/sys/class/firmware/.../data
297730bbbSRuss WeightDate:		July 2022
397730bbbSRuss WeightKernelVersion:	5.19
497730bbbSRuss WeightContact:	Russ Weight <russell.h.weight@intel.com>
597730bbbSRuss WeightDescription:	The data sysfs file is used for firmware-fallback and for
697730bbbSRuss Weight		firmware uploads. Cat a firmware image to this sysfs file
797730bbbSRuss Weight		after you echo 1 to the loading sysfs file. When the firmware
897730bbbSRuss Weight		image write is complete, echo 0 to the loading sysfs file. This
997730bbbSRuss Weight		sequence will signal the completion of the firmware write and
1097730bbbSRuss Weight		signal the lower-level driver that the firmware data is
1197730bbbSRuss Weight		available.
1297730bbbSRuss Weight
13*536fd818SRuss WeightWhat: 		/sys/class/firmware/.../cancel
14*536fd818SRuss WeightDate:		July 2022
15*536fd818SRuss WeightKernelVersion:	5.19
16*536fd818SRuss WeightContact:	Russ Weight <russell.h.weight@intel.com>
17*536fd818SRuss WeightDescription:	Write-only. For firmware uploads, write a "1" to this file to
18*536fd818SRuss Weight		request that the transfer of firmware data to the lower-level
19*536fd818SRuss Weight		device be canceled. This request will be rejected (EBUSY) if
20*536fd818SRuss Weight		the update cannot be canceled (e.g. a FLASH write is in
21*536fd818SRuss Weight		progress) or (ENODEV) if there is no firmware update in progress.
22*536fd818SRuss Weight
23*536fd818SRuss WeightWhat: 		/sys/class/firmware/.../error
24*536fd818SRuss WeightDate:		July 2022
25*536fd818SRuss WeightKernelVersion:	5.19
26*536fd818SRuss WeightContact:	Russ Weight <russell.h.weight@intel.com>
27*536fd818SRuss WeightDescription:	Read-only. Returns a string describing a failed firmware
28*536fd818SRuss Weight		upload. This string will be in the form of <STATUS>:<ERROR>,
29*536fd818SRuss Weight		where <STATUS> will be one of the status strings described
30*536fd818SRuss Weight		for the status sysfs file and <ERROR> will be one of the
31*536fd818SRuss Weight		following: "hw-error", "timeout", "user-abort", "device-busy",
32*536fd818SRuss Weight		"invalid-file-size", "read-write-error", "flash-wearout". The
33*536fd818SRuss Weight		error sysfs file is only meaningful when the current firmware
34*536fd818SRuss Weight		upload status is "idle". If this file is read while a firmware
35*536fd818SRuss Weight		transfer is in progress, then the read will fail with EBUSY.
36*536fd818SRuss Weight
3797730bbbSRuss WeightWhat: 		/sys/class/firmware/.../loading
3897730bbbSRuss WeightDate:		July 2022
3997730bbbSRuss WeightKernelVersion:	5.19
4097730bbbSRuss WeightContact:	Russ Weight <russell.h.weight@intel.com>
4197730bbbSRuss WeightDescription:	The loading sysfs file is used for both firmware-fallback and
4297730bbbSRuss Weight		for firmware uploads. Echo 1 onto the loading file to indicate
4397730bbbSRuss Weight		you are writing a firmware file to the data sysfs node. Echo
4497730bbbSRuss Weight		-1 onto this file to abort the data write or echo 0 onto this
4597730bbbSRuss Weight		file to indicate that the write is complete. For firmware
4697730bbbSRuss Weight		uploads, the zero value also triggers the transfer of the
4797730bbbSRuss Weight		firmware data to the lower-level device driver.
4897730bbbSRuss Weight
49*536fd818SRuss WeightWhat: 		/sys/class/firmware/.../remaining_size
50*536fd818SRuss WeightDate:		July 2022
51*536fd818SRuss WeightKernelVersion:	5.19
52*536fd818SRuss WeightContact:	Russ Weight <russell.h.weight@intel.com>
53*536fd818SRuss WeightDescription:	Read-only. For firmware upload, this file contains the size
54*536fd818SRuss Weight		of the firmware data that remains to be transferred to the
55*536fd818SRuss Weight		lower-level device driver. The size value is initialized to
56*536fd818SRuss Weight		the full size of the firmware image that was previously
57*536fd818SRuss Weight		written to the data sysfs file. This value is periodically
58*536fd818SRuss Weight		updated during the "transferring" phase of the firmware
59*536fd818SRuss Weight		upload.
60*536fd818SRuss Weight		Format: "%u".
61*536fd818SRuss Weight
62*536fd818SRuss WeightWhat: 		/sys/class/firmware/.../status
63*536fd818SRuss WeightDate:		July 2022
64*536fd818SRuss WeightKernelVersion:	5.19
65*536fd818SRuss WeightContact:	Russ Weight <russell.h.weight@intel.com>
66*536fd818SRuss WeightDescription:	Read-only. Returns a string describing the current status of
67*536fd818SRuss Weight		a firmware upload. The string will be one of the following:
68*536fd818SRuss Weight		idle, "receiving", "preparing", "transferring", "programming".
69*536fd818SRuss Weight
7097730bbbSRuss WeightWhat: 		/sys/class/firmware/.../timeout
7197730bbbSRuss WeightDate:		July 2022
7297730bbbSRuss WeightKernelVersion:	5.19
7397730bbbSRuss WeightContact:	Russ Weight <russell.h.weight@intel.com>
7497730bbbSRuss WeightDescription:	This file supports the timeout mechanism for firmware
7597730bbbSRuss Weight		fallback.  This file has no affect on firmware uploads. For
7697730bbbSRuss Weight		more information on timeouts please see the documentation
7797730bbbSRuss Weight		for firmware fallback.
78