Re: [RFC PATCH] fpga: Introduce new fpga subsystem

Alan Tull
2013-09-24T16:23:06Z

On Tue, 2013-09-24 at 17:58 +0200, Michal Simek wrote:
> Hi,
>
> On 09/24/2013 05:55 PM, Alan Tull wrote:
> >
> >> I have ported the altera fpga manager driver to work with your version
> >> of the fpga manager framework. It works fine if I use the
> >> firmware_class.c's built-in support to load the firmware, but not with a
> >> userspace helper.
> >>
> >
> >
> > Hi Michal,
> >
> > I cleaned up my udev rules and now I see the userspace helper working.
> > Just adding one udev rule that points to the standard hotplug-script was
> > sufficient to see the userspace script working nicely.
> >
> > All in all, the firmware interface seems pretty easy to use and it gives
> > us the flexibility to either use the kernel to load the firmware or to
> > use scripts, so it should work with a variety of use cases.
> >
> > Since we are arriving at a solution that is suitable for the both of us,
> > I expect you will be able to add Dinh and myself as maintainers here,
> > right? I have no problem with there only being one repo to store
> > patches for this subsystem.
>
> Does it mean that you are able to see "loading" file there?
>
> Can you share your script?
>
> Thanks,
> Michal
>

Hi Michal,

Yes, I could see /sys/class/fpga/fpga0/image.rbf/loading and 'data' and
a few others (If I was requesting to load 'image.rbf'). It's a nice
interface.

I just used the linux/Documentation/firmware_class/hotplug-script
without modifications.

To enable it:

* cp linux/Documentation/firmware_class/hotplug-script /lib/udev/

* chmod 755 /lib/udev/hotplug-script

* Add this udev rule:
SUBSYSTEM=="firmware", ACTION=="add", RUN+="/lib/udev/hotplug-script"

* Check that there aren't other 'firmware' udev rules to get in the
way.

* Add your firmware files to /usr/lib/hotplug/firmware/ or change that
path in hotplug-script to point to where your firmware files.

The default hotplug-script doesn't do anything special (that the kernel
couldn't do by itself). What's great is that it could call another
script that adds headers or does whatever other special un-gzipping or
other massaging that the firmware image needs before it gets loaded.

Regards,
Alan

>
>