Messages in this thread | | | Date | Tue, 28 Oct 2008 23:14:25 +0100 | From | "Kay Sievers" <> | Subject | Re: getting configuration info into a driver at load-time |
| |
On Tue, Oct 28, 2008 at 00:07, Sebastian Kuzminsky <seb@highlab.com> wrote: > Hi folks, i'm looking for a way to pass structured configuration information > to a device driver at load-time. > > I'm working on a device driver for a family of FPGA cards for motion control > of industrial robots and computer-controlled machine tools. The driver > loads the FPGA firmware with request_firmware() and sends it to the FPGA. > > Once the FPGA is up and running, the user needs to configure the firmware > specifically for their machine, by telling the firmware things like "my > machine has two stepper motors and three servo motors, and the second servo > motor has an encoder with an index channel". The details of the information > being relayed isnt important, the key thing is that it's like a struct > containing a couple of arrays of different kinds structs, something like > this: > > struct config { > > struct { > bool enabled; > bool index_enabled; > bool index_mask_enabled; > } encoder_config[]; > > struct { > bool enabled; > } pwmgen_config[]; > > struct { > bool enabled; > uint width; > } stepgen_config[]; > > char *firmware; > > bool enable_raw; > > } board_config; > > > Each board that the driver finds should get its own "board_config". > > I thought about exposing this config structure in /sys or /proc (in a > per-board directory), and let the user poke in the config values after the > driver has loaded, but I'd really prefer to make the information available > at load-time. > > Currently the driver has a module param array of char*, with each board's > configuration encoded into an ascii string which gets decoded "by hand" in > the driver. Pretty grotty. > > Is there some easier/cleaner way to do this?
Maybe configfs?
Kay
| |