BEST PCIe driver
 All Data Structures Files Functions Variables Macros Pages
PCI eXpress Driver

PCI eXpress driver for Altera Cyclone V GT board

CAEN els d.o.o.

Author
Jan Marjanovic
Date
March 2013
Version
0.7

Change log

  • version 0.7:
    • implemented multiple buffers, mutiple DMAs
  • version 0.6:
    • implemented mailbox communication
  • version 0.5:
    • implemented cyclic buffer
  • version 0.4:
    • added ioctl function
  • version 0.3:
    • added interrupts

Main driver file

BEST_PCIe.c

Header file

BEST_PCIe.h (also for user space programs)

Description

- PCI eXpress device driver for Altera Cyclone V GT board.
- Tested on kernel 3.13

Build

make

Insert: (insert_module.sh)

  • Insert module in kernel
  • Find major number
  • Create node in /dev
  • Change permission on node

Remove: (remove_module.sh)

  • Remove node
  • Remove module from kernel

Usage

  1. Open file
    fd = open("/dev/best0", O_RDWR);
  2. Read status using ioctl to determine which is the last buffer valid.
    ioctl(fd, IOCTL_READ_STATUS, &data);
  3. Set buffer to read from using ioctl command.
    ioctl(fd, IOCTL_WRITE_BUF_NR, data.last_buff_valid);
  4. Read from buffer
    read(fd, buf, data.buff_len );
  5. Close
    close(fd);