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