Merge tag 'powerpc-6.6-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[platform/kernel/linux-starfive.git] / Documentation / ABI / testing / sysfs-class-firmware
1 What:           /sys/class/firmware/.../data
2 Date:           July 2022
3 KernelVersion:  5.19
4 Contact:        Russ Weight <russ.weight@linux.dev>
5 Description:    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
13 What:           /sys/class/firmware/.../cancel
14 Date:           July 2022
15 KernelVersion:  5.19
16 Contact:        Russ Weight <russ.weight@linux.dev>
17 Description:    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
23 What:           /sys/class/firmware/.../error
24 Date:           July 2022
25 KernelVersion:  5.19
26 Contact:        Russ Weight <russ.weight@linux.dev>
27 Description:    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
37 What:           /sys/class/firmware/.../loading
38 Date:           July 2022
39 KernelVersion:  5.19
40 Contact:        Russ Weight <russ.weight@linux.dev>
41 Description:    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
49 What:           /sys/class/firmware/.../remaining_size
50 Date:           July 2022
51 KernelVersion:  5.19
52 Contact:        Russ Weight <russ.weight@linux.dev>
53 Description:    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
62 What:           /sys/class/firmware/.../status
63 Date:           July 2022
64 KernelVersion:  5.19
65 Contact:        Russ Weight <russ.weight@linux.dev>
66 Description:    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
70 What:           /sys/class/firmware/.../timeout
71 Date:           July 2022
72 KernelVersion:  5.19
73 Contact:        Russ Weight <russ.weight@linux.dev>
74 Description:    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.