Messages in this thread | | | From | yi1.li@linux ... | Subject | [RFC 0/2] Add streaming API for firmware and FPGA manager | Date | Thu, 9 Mar 2017 18:18:08 -0600 |
| |
From: Yi Li <yi1.li@linux.intel.com>
As the FPGA hardware advances, the firmware image size grows (hundres of MBs or more). It could be an issue for kernel to allocate a big buffer to load the whole firmware file. Here is an attempt to read the firmware file into a small buffer and program the FPGA in a loop (or so call the streaming mode). It should not be a performance hit for FPGA programing since the majority of time spend is with the FPGA CvP/PR-IP interface.
pseudo code in fpga manager: while (size > 0) { ret = stream_firmware(&fw, image_name, dev, offset, streamsize); ret = mgr->mops->write(mgr, fw->data, fw->size); offset += fw->size; size -= fw->size; }
Thanks, Yi
Yi Li (2): firmware class: Add stream_firmware API. fpga manager: Add fpga_mgr_firmware_stream API
drivers/base/firmware_class.c | 128 ++++++++++++++++++++++++++++++++++++++++++ drivers/fpga/fpga-mgr.c | 77 +++++++++++++++++++++++++ include/linux/firmware.h | 2 + include/linux/fpga/fpga-mgr.h | 4 ++ 4 files changed, 211 insertions(+)
-- 2.7.4
| |