devLib2
2.12
|
The exploreApp support is intended as a tool to explore new PCI devices. This may be useful when preparing to write a dedicated driver and/or during development of PCI/PCIe device firmware. exploreApp allows a PCI register to be read and/or written an EPICS record. For example:
The record pcitestout will be connected to the PCI device 8:0.0 (bus 8, device 0, function 0) with the first BAR. A single write of 4 bytes is made when the record is processed.
The following can be added to some xyzApp/src/Makefile to include exploreApp.
INP/OUT link strings may contain the following components
For record types: longout, bo, mbbo, mbboDirect, ao allowed DTYP are:
For record types: longin, longout, bi, bo, mbbi, mbbo, mbbiDirect, mbboDirect, ai, ao
The ao record type also accepts
The ai record type also accepts
The waveform record type accepts both integer Read and Write DTYP. The step= link option may be applied to change how the address counter is incremented. The default step size is the read size (eg. 4 for Read32). A step size of 0 will read the base address NELM times.
Limited support of PCI interrupts is available on Linux only. A longin record with DTYP="Explore IRQ Count" and SCAN="I/O Intr" will be processed each time an interrupt occurs.
This requires that a UIO kernel module be installed.
The DTYP="Explore FRIB Flash" support implements a FRIB specific protocol for accessing a SPI flash chip over PCI. The frib-flash.db file demonstrates use.