Firmware upgrade for CNA
Naresh
gbal.naresh at gmail.com
Fri Dec 9 19:30:44 UTC 2011
Thanks John.
Sent from my iPhone
On 09-Dec-2011, at 6:19 PM, John Baldwin <jhb at freebsd.org> wrote:
> On Sunday, December 04, 2011 1:04:12 pm Naresh wrote:
>> Hi All,
>>
>> Our product is a CNA i.e it supports both 10G Ethernet and Storage. We need to provide firmware upgrade facility through our FreeBSD nic driver.
>>
>> The driver should be able to flash any version of the firmware when provided.
>>
>> Asuuming driver is already loaded flashing steps should be something like
>> 1) User will invoke flashing by providing the image name and file path.
>> 2) Driver should load the image from the path and start flashing.
>> 3) Return the flashing status to the user.
>>
>> I looked into load_firmware FreeBSD mechanism. But it requires image to be
>> converted to loadable module, load image module and then invoke driver using sysctl to start flashing.
>>
>> Is there any standard way other than load_firmware ? Can we open and read a file in the driver?
>>
>> In Linux, we copy the image to /lib/firmware and invoke flashing using something like "ethtool -f eth0 image".
>> Then kernel loads the image file from
>> /lib/firmware to a data buffer and invokes the driver. The driver then flashes and return status.
>>
>> Is there a approach in FreeBSD something similar to Linux ?
>
> There is not a framework along those lines, no. However, you could provide an
> ioctl which accepts a data buffer and have a small userland utility that takes
> the filename as an argument, loads it into a local buffer, then invokes your
> ioctl.
>
> --
> John Baldwin
More information about the freebsd-drivers
mailing list