Release Notes for Linux drivers / kernel modules
imago_fpga
Public GitHub repository: imago_fpga.
This driver is used for FPGA communication by the following hardware:
- VisionBox AGE-X1/2/4/5, VisionBox LE MANS, VisionBox DAYTONA
- PCIe Machine Vision Controller card
- PCIe Camera Link card
- VisionCam XM / XM2
- VisionSensor PV3
- Machine Vision Manager 2
Driver Release Notes for imago_fpga
Version | SDK version | Changes |
1.3.1.0 | 1.7.11.0 |
- Allocate DMA jobs dynamically using slab cache and remove module parameter 'max_dma_buffers'.
- Fix compatibility with old kernel versions.
- Code optimizations.
|
1.3.0.0 | 1.7.10.0 |
- Add Real-Time-Clock support for the VisionSensor PV3 with I/O Expansion.
- Fix possible problems reading registers after timeout.
- Fix build error with GCC 12 (Debian 12).
- Avoid DKMS warnings.
|
1.2.2.0 | 1.7.9.0 |
- Add support for the VisionCam XM2.
- Fix compatibility with Linux kernel ≥ 5.12.
- Avoid race condition caused by early device access while module initialization was in progress.
|
1.2.1.0 | 1.7.8.0 |
- Add support for the VisionBox AI
|
1.2.0.0 | 1.7.7.0 |
- Rename kernel module from agexpcidrv to imago_fpga.
- Fix compatibility with Linux kernel ≥ 5.10.
- Add support for USB-HID device (Machine Vision Manager 2).
- Add support for DMA completion timestamps.
- Increase maximum number of FPGAs from 4 to 32.
- Let the kernel handle restart of interrupted register reads by signals to avoid problems with SIGINT processing when using Python bindings.
- PCI / PCIe: avoid priority inversion for threaded interrupts when using PREEMP_RT kernel
- Make processing of DMA interrupts adjustable using the module parameter dma_update_in_hwi.
|
1.1.16.0 | 1.7.5.0 |
- Make reading of FPGA registers interruptible by signals and support restart of the read operation.
- Fix compatibility with Linux kernel ≥ 5.0.
|
1.1.15.0 | 1.7.4.0 |
- Fix possible race condition during abortion of waiting DMA threads (Camera Link / VisionCam XM). This could lead to additional errors in user space while waiting for buffers after the abort operation was completed.
- Make number of maximum buffers for each DMA channel adjustable with the module parameter 'max_dma_buffers' (the default is still 32).
|
1.1.14.1 | 1.7.3.1 |
|
1.1.14.0 | 1.7.2.0 |
- Add support for the VisionSensor PV3 (FPGA SPI interface).
|
1.1.13.0 | 1.7.1.0 |
- Bugfix: invalid bit assignment of FPGA device identifiers could lead to misinterpretation as bus priority bit.
|
1.1.12.0 | 1.7.0.1 |
- VisionCam XM:
Add workaround for PCIe MSI race condition on Linux kernel versions < 4.14 which can lead to FPGA communication timeout → enable next FPGA interrupt within interrupt thread instead of hardware interrupt.
|
1.1.11.0 | 1.6.9.1 |
- PCI / PCIe: move interrupt handling from tasklets to hardware interrupt to prevent concurrency with other software interrupts.
- VisionCam XM: move DMA interrupt handling from tasklets to hardware interrupt to avoid processing delay caused by other software interrupts, therefore resulting in invalid frames at high frame rates.
- VisionCam XM: fix DMA cache coherence problems during image acquisition found in the previous SDK release.
|
1.1.10.0 | 1.6.9.0 |
- Enable reuse of VisionBox devices which are not closed when a process is terminated.
- Release DMA buffers left from dead processes.
- Reduce DMA overhead by only mapping / unmapping DMA buffers during allocation / release, not while adding / removing buffers from the acquisition queue. This mainly reduces overhead for systems using an IOMMU for PCIe. This mode requires libAGEXHAL.so ≥ 1.6.9.0.
|
1.1.9.3 | 1.6.8.1 |
- Add support for the VisionBox DAYTONA (SPI interface support)
|
1.1.9.2 | 1.6.5.7-2 |
- Fix build problem with Linux kernel ≥ 4.12
|
1.1.9.1 | 1.6.5.7-1 |
- Use the DKMS build system for building the driver module for the running kernel version
- Add support for the VisionBox AGE-X5
|
1.1.8.2 | 1.6.5.0-2 |
- Add support for Kernel 4.6 and 4.9
- Make waiting threads more robust against unwanted user mode signals
|
1.1.8.1 | 1.6.5.0-1 |
- Add support for the VisionBox LE MANS
- Fix possible race condition between CPU-packet and DMA interrupts
|
1.1.8.0 | 1.6.4.0 |
- Add support for the VisionCam XM
- Add support for Camera Link hardware (DMA support)
- Remove support for Linux kernel 2.6.32
|
1.1.6.2 | 1.6.3.0 |
- Add support for MSI-X interrupts
- Fix a possible race condition which occurs under heavy CPU load when rapidly reading from the same device
- Add support for the Machine Vision Controller (PCIe card)
- Add support for using multiple hardware entities (fix device naming conflict)
|
1.1.5.0 | 1.6.2.2 |
- Rename module and device name
- Device has the permission 0666 after creation
- Add read timeout and abort via IOCTL
|
Module parameters
The following hardware platforms are affected by the module paramter dma_update_in_hwi:
- Camera Link interface
- VisionCam XM
- VisionCam XM2 with Lince5M181 sensor
- dma_update_in_hwi (int)
- The module parameter dma_update_in_hwi controls processing method for DMA transfer interrupts:
- 0: use threaded IRQ for DMA processing
- 1: process DMA within hardware interrupt
- -1 (default): automatic mode selects the hardware interrupt method for:
- if number of DMA transfer pages is ≤ 16
- if IOMMU is used for the device
- VisionCam XM / XM2 hardware
- Example
- Run the following shell command to enable DMA processing within hardware interrupt:
echo "options imago_fpga dma_update_in_hwi=1" > /etc/modprobe.d/imago_fpga.conf
# reboot the device, or reload the module as follows:
rmmod imago_fpga; modprobe imago_fpga
vsvpfedrv
Public GitHub repository: vsvpfedrv.
This driver is used for the sensor interface on the VisionSensor PV / PV2.
Driver Release Notes for vsvpfedrv
Version | SDK version | Changes |
1.0.2.2 | 1.7.11.0 |
- Rename VSDRV.h to vsvpfedrv.h for internal deployment automation.
|
1.0.2.1 | 1.7.10.0 |
|
1.0.2.0 | 1.7.3.1 |
- Enable cache for image buffers.
- Avoid possible race condition when an image buffer was added to the acquisition queue while the queue was empty and a new frame started simultaneously. This could lead to an invalid buffer returned to the user marked as valid.
|
1.0.1.0 | 1.6.9.0 |
- Release DMA buffers left from dead processes.
|
1.0.0.2 | 1.6.8.2 |
- Compile fix for Linux kernel ≥ 4.12
|
1.0.0.1 | 1.6.7.0 |
- Fix cache handling for image buffers
|
1.0.0.0 | 1.6.6.0 |
|
vsmipi
Public GitHub repository: vsmipi.
This driver is used for the MIPI sensor interface on the VisionSensor PV3.
Driver Release Notes for vsmipi
Version | SDK version | Changes |
1.3.0.2 | 1.7.11.0 |
- Rename VSMipi.h to vsmipi.h for internal deployment automation.
|
1.3.0.1 | 1.7.10.0 |
|
1.3.0.0 | 1.7.9.0 |
- Add support for 10 bit MIPI format
|
1.2.1.0 | 1.7.7.0 |
- Reset frame counter when starting acquisition
|
1.2.0.0 | 1.7.5.0 |
- Add support for odd-numbered AOI height
- Fix compatibility with Linux kernel ≥ 4.20
|
1.1.0.0 | - |
- Add support for event based sensors
|
1.0.2.0 | 1.7.4.0 |
- Fix cache coherence for image buffers
- Fix possible NULL pointer dereference while closing the stream
|
1.0.1.0 | 1.7.3.1 |
- Fix rare problem when restarting image acquisition
|
1.0.0.0 | 1.7.2.0 |
|
vcxm2_mipi
Public GitHub repository: vcxm2_mipi.
This driver is used for the MIPI sensor interface on the VisionCam XM2.
Driver Release Notes for vsmipi
Version | SDK version | Changes |
1.0.0.1 | 1.7.11.0 |
|