VXI and VME

cancel
Showing results for 
Search instead for 
Did you mean: 

nivxi 2.1 driver for linux kernel 2.6 has broken interrupts

After wasting a couple days trying to get VXI interrupts to work with nivxi 2.1 and a Linux 2.6 kernel, I've found the problem. The driver never calls pci_enable_device() for the pci-mxi-2 board! This can cause, for example, the Linux interrupt handler installed by the nivxi driver to get installed on the wrong IRQ line and never get run, which in turn causes VXI interrupts to break. I've attached a modified version of the nivxi 2.1 kernel driver (minus the binary-only object files which you will need to add, see the README) which has a hack in it to call pci_enable_device(). It also adds udev support (it creates /dev/vxi0 on module load) and a pci device id table with the id of the pci-mxi-2 board (allows module autoloading). This makes the nivxi/sys/load_vxi script obsolete, you just need to add a rule to udev specifying the desired permissions for /dev/vxi0. For example, if you had a group called "vxi", you might use

KERNEL="vxi[0-9]*", MODE="0660", GROUP="vxi"
Message 1 of 2
(6,637 Views)
By the way, ignore the bit in the README about it having been tested against nivxi 2.0.1. It was tested against nivxi 2.1.
0 Kudos
Message 2 of 2
(6,635 Views)