1What: /sys/class/firmware/.../data 2Date: July 2022 3KernelVersion: 5.19 4Contact: Russ Weight <russ.weight@linux.dev> 5Description: The data sysfs file is used for firmware-fallback and for 6 firmware uploads. Cat a firmware image to this sysfs file 7 after you echo 1 to the loading sysfs file. When the firmware 8 image write is complete, echo 0 to the loading sysfs file. This 9 sequence will signal the completion of the firmware write and 10 signal the lower-level driver that the firmware data is 11 available. 12 13What: /sys/class/firmware/.../cancel 14Date: July 2022 15KernelVersion: 5.19 16Contact: Russ Weight <russ.weight@linux.dev> 17Description: Write-only. For firmware uploads, write a "1" to this file to 18 request that the transfer of firmware data to the lower-level 19 device be canceled. This request will be rejected (EBUSY) if 20 the update cannot be canceled (e.g. a FLASH write is in 21 progress) or (ENODEV) if there is no firmware update in progress. 22 23What: /sys/class/firmware/.../error 24Date: July 2022 25KernelVersion: 5.19 26Contact: Russ Weight <russ.weight@linux.dev> 27Description: Read-only. Returns a string describing a failed firmware 28 upload. This string will be in the form of <STATUS>:<ERROR>, 29 where <STATUS> will be one of the status strings described 30 for the status sysfs file and <ERROR> will be one of the 31 following: "hw-error", "timeout", "user-abort", "device-busy", 32 "invalid-file-size", "read-write-error", "flash-wearout". The 33 error sysfs file is only meaningful when the current firmware 34 upload status is "idle". If this file is read while a firmware 35 transfer is in progress, then the read will fail with EBUSY. 36 37What: /sys/class/firmware/.../loading 38Date: July 2022 39KernelVersion: 5.19 40Contact: Russ Weight <russ.weight@linux.dev> 41Description: The loading sysfs file is used for both firmware-fallback and 42 for firmware uploads. Echo 1 onto the loading file to indicate 43 you are writing a firmware file to the data sysfs node. Echo 44 -1 onto this file to abort the data write or echo 0 onto this 45 file to indicate that the write is complete. For firmware 46 uploads, the zero value also triggers the transfer of the 47 firmware data to the lower-level device driver. 48 49What: /sys/class/firmware/.../remaining_size 50Date: July 2022 51KernelVersion: 5.19 52Contact: Russ Weight <russ.weight@linux.dev> 53Description: Read-only. For firmware upload, this file contains the size 54 of the firmware data that remains to be transferred to the 55 lower-level device driver. The size value is initialized to 56 the full size of the firmware image that was previously 57 written to the data sysfs file. This value is periodically 58 updated during the "transferring" phase of the firmware 59 upload. 60 Format: "%u". 61 62What: /sys/class/firmware/.../status 63Date: July 2022 64KernelVersion: 5.19 65Contact: Russ Weight <russ.weight@linux.dev> 66Description: Read-only. Returns a string describing the current status of 67 a firmware upload. The string will be one of the following: 68 idle, "receiving", "preparing", "transferring", "programming". 69 70What: /sys/class/firmware/.../timeout 71Date: July 2022 72KernelVersion: 5.19 73Contact: Russ Weight <russ.weight@linux.dev> 74Description: This file supports the timeout mechanism for firmware 75 fallback. This file has no affect on firmware uploads. For 76 more information on timeouts please see the documentation 77 for firmware fallback. 78