Re: [PATCH v8 2/4] fpga manager: add sysfs interface document

From: atull
Date: Sun Jan 11 2015 - 11:29:32 EST


On Sat, 10 Jan 2015, Pavel Machek wrote:

> On Sat 2015-01-10 10:10:51, Pantelis Antoniou wrote:
> > Hi Pavel,
> >
> > > On Jan 9, 2015, at 22:56 , Pavel Machek <pavel@xxxxxxx> wrote:
> > >
> > > On Fri 2015-01-09 13:14:24, atull wrote:
> > >> On Wed, 7 Jan 2015, Pavel Machek wrote:
> > >>
> > >>> On Tue 2015-01-06 14:13:37, atull@xxxxxxxxxxxxxxxxxxxxx wrote:
> > >>>> +
> > >>>> +What: /sys/class/fpga_manager/<fpga>/firmware
> > >>>> +Date: October 2014
> > >>>> +KernelVersion: 3.18
> > >>>> +Contact: Alan Tull <atull@xxxxxxxxxxxxxxxxxxxxx>
> > >>>> +Description: Name of the FPGA image file to load using firmware
> > >>>> class.
> > >>>
> > >>> This one is ugly: it unneccessarily passes firmware name through the
> > >>> kernel. Just make interface and code simpler by always passing
> > >>> "socfpga-fpga-image" or something like that.
> > >>>
> > >>> Thanks,
> > >>> Pavel
> > >>
> > >> Hi Pavel,
> > >>
> > >> It might be ugly. It's not unnecessary. Some uses of FPGAs involve
> > >> switching out the FPGA images dynamically under control of the userspace.
> > >
> > > Then configure udev to load right firmware for you, or ln -s
> > > image-i-want-now socfpga-fpga-image to select the one to readâ?
> > >
> >
> > Who said that udev is going to be available in the kind of system this is going to end in?
>
> Noone.
>
> > Doing ln -s tricks to load a different image? Really?
>
> But if you don't have udev, you can do ln -s. It is better than
> open-coding symlink functionality into
> /sys/class/fpga_manager/<fpga>/firmware ... cause that's what this is.
>
> Actually, clean implementation of "firmware" would be symlink in
> sysfs; but I'd say that would be overdoing it.
>
> > I say the interface is fine as it is.
>
> I say it is not.
> Pavel

Hi Pavel,

I see that we could do it that way and it would eliminate one of the
sysfs files (../fpga_manager/<fpga>/firmware). Either way we are assuming
that there are fpga images in the filesystem in the firmware search path,
so I don't see why adding a piece of indirection (symlink) makes things
better.

We want to be able to switch out the FPGA image
under control of userspace. So we don't want an interface that makes
it more cumbersome or tries to pretend that there's only one image.

Previous uses of the firmware layer has been to use it to load once after
bootup; this is different since some use cases will want to switch out
the FPGA image. If someone wants there to be only one FPGA image on
the FGPA forever, they will probably not be using this framework; their
FPGA will probably be loaded before Linux boots up.

Alan


> --
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
>