swh:1:snp:c2847dfd741eae21606027cf29250d1ebcd63fb4
Raw File
Tip revision: 31ade3b83e1821da5fbb2f11b5b3d4ab2ec39db8 authored by Linus Torvalds on 30 November 2015, 02:58:26 UTC
Linux 4.4-rc3
Tip revision: 31ade3b
fmc-fakedev.txt
fmc-fakedev
===========

This package includes a software-only device, called fmc-fakedev, which
is able to register up to 4 mezzanines (by default it registers one).
Unlike the SPEC driver, which creates an FMC device for each PCI cards
it manages, this module creates a single instance of its set of
mezzanines.

It is meant as the simplest possible example of how a driver should be
written, and it includes a fake EEPROM image (built using the tools
described in *note FMC Identification::),, which by default is
replicated for each fake mezzanine.

You can also use this device to verify the match algorithms, by asking
it to test your own EEPROM image. You can provide the image by means of
the eeprom= module parameter: the new EEPROM image is loaded, as usual,
by means of the firmware loader.  This example shows the defaults and a
custom EEPROM image:

     spusa.root# insmod fmc-fakedev.ko
     [   99.971247]  fake-fmc-carrier: mezzanine 0
     [   99.975393]       Manufacturer: fake-vendor
     [   99.979624]       Product name: fake-design-for-testing
     spusa.root# rmmod fmc-fakedev
     spusa.root# insmod fmc-fakedev.ko eeprom=fdelay-eeprom.bin
     [  121.447464]  fake-fmc-carrier: Mezzanine 0: eeprom "fdelay-eeprom.bin"
     [  121.462725]  fake-fmc-carrier: mezzanine 0
     [  121.466858]       Manufacturer: CERN
     [  121.470477]       Product name: FmcDelay1ns4cha
     spusa.root# rmmod fmc-fakedev

After loading the device, you can use the write_ee method do modify its
own internal fake EEPROM: whenever the image is overwritten starting at
offset 0, the module will unregister and register again the FMC device.
This is shown in fmc-write-eeprom.txt
back to top