Embedded software Linux DMA driver

Since 2005 we have provided embedded software solutions for a range of industry sectors including military and aerospace, industrial automation and telecommunications. From embedded software and system development, to software porting and software optimisation, we can satisfy most requirements.

The following project showcases part of our extensive capabilities:

Customer need

Developed video processing FPGA supporting very high bandwidth data transfer to and from host memory.

FPGA interfaced to host processor via PCI Express.

Host processor was an off-the-shelf Freescale QorIQ (PowerPC) evaluation board running Linux.

Needed software to support DMA between the FPGA and host memory.

The challenge

Disparate nature of existing documentation.

Need for flexibility to support future extension and evolution in parallel with software being documented.

Several client “stake-holders” with different needs.

Our solution

Software needed to support very high data throughput with low loading on CPU.

Software needed to be portable to a variety of target hardware, including different processor architectures.

Designed and developed high-performance Linux device driver and user-space library for video processing FPGA.

Developed test software to evaluate and demonstrate throughput.

The outcome

Throughput target of 3 Gbit/second was achieved.

Software has since been ported easily to Intel and ARM-based host processors.

Software has been used successfully in several client projects.