mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-25 13:43:55 +08:00
37 lines
1.6 KiB
Plaintext
37 lines
1.6 KiB
Plaintext
|
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
|