Messages in this thread | | | Subject | Re: [RFC PATCH 0/5] Extend FW framework for user FW uploads | From | Russ Weight <> | Date | Thu, 10 Feb 2022 18:30:31 -0800 |
| |
On 2/3/22 3:00 PM, Luis Chamberlain wrote: > On Thu, Feb 03, 2022 at 02:30:47PM -0700, Russ Weight wrote: >> Extend the firmware loader subsystem to support a persistent sysfs >> interface that userspace may use to initiate a firmware update. For >> example, FPGA based PCIe cards automatically load firmware and FPGA images >> from local FLASH when the card boots. The images in FLASH may be updated >> with new images that are uploaded by the user. >> >> A device driver may call fw_upload_register() to expose persistent >> "loading" and "data" sysfs files at /sys/class/firmare/<NAME>/*. These >> files are used in the same way as the fallback sysfs "loading" and "data" >> files. However, when 0 is written to "loading" to complete the write of >> firmware data, the data is also transferred to the lower-level driver >> using pre-registered call-back functions. The data transfer is done in >> the context of a kernel worker thread. >> >> Additional sysfs nodes are added in the same location as "loading" and >> "data" to monitor the transfer of the image data to the device using >> callback functions provided by the lower-level device driver and to allow >> the data transfer to be cancelled. >> >> Example usage: >> >> $ pwd >> /sys/class/firmware/n3000bmc-sec-update.8 >> $ ls >> cancel device loading remaining_size subsystem >> data error power status uevent >> $ echo 1 > loading >> $ cat /tmp/firmware.bin > data >> $ echo 0 > loading >> $ while :; do cat status; cat remaining_size ; sleep 3; done >> preparing >> 44590080 >> <--snip--> >> transferring >> 44459008 >> transferring >> 44311552 >> <--snip--> >> <snip> >> transferring >> 173056 >> <--snip--> >> programming >> 0 >> <--snip--> >> idle >> 0 >> ^C > Nice. Please extend lib/test_firmware.c while at it and try to break > and ensure your stuff is not regressed with future changes. Yes. I'm looking at the test_firmware module and I'll add to it for the next patch submission.
Thanks, - Russ > > Luis
| |