Dies ist eine alte Version des Dokuments!


flink Linux Kernel Modules

This is the user documentation for the flink kernel modules. They offer drivers capabilities to communicate with various hardware interfaces. For more information about the inner workings see flink Linux Kernel Modules on Github. The driver API can be found under ADI

Overview

When flink is used on a Linux based system the flink library in userspace communicates with the hardware by means of several kernel modules. The basic module is flink.ko. Further, every flink device needs one more kernel module for each hardware interface which is used to communicate with an external FPGA. This could be flink_pci.ko or flink_spi.ko. They use the appropriate Linux subsystem pci or spi, respectively.

Requirements

  • Linux based operating system
  • GCC 4.6 or newer
  • GNU make

Building

  • Clone git repository:
     git clone https://github.com/flink-project/flinkkmod.git
  • Choose the target plattform and find its appropriate kernel configuration together with the kernel headers. Find more help about this in Compiling a New Kernel

  • Build for the host plattform with:
    make
  • Build for a plattform different from the host with:
    make ARCH=arch CROSS_COMPILE=comp KERNELDIR=path

    with the following settings

    • arch: target plattform such as powerpc or arm
    • comp: cross compiler such as powerpc-linux-gnu- or arm-linux-gnueabi-
    • path: path to kernel headers

  • The makefile will switch to the kernel directory, read the current configuration and compile all necessary flink kernel modules for the choosen target plattform.
  • Use depmod to create suitable dependency files for the new modules. This step is not necessary if modules are loaded with insmod.

Installation

  • Move new kernel modules into the default location to /lib/modules/version of the target plattform.
  • Load each module with insmod, e.g.
    insmod flink.ko
  • If dependency files were created beforehand its better to use
    modprobe flink.ko
  • Some kernel module must be loaded with the appropriate arguments according to the target board specifications (see below)

Module Parameters

Determine the availabe parameters for each kernel module with the command modinfo. The following table shows the currently available modules with their parameters.

module parameters description example
flink.ko core module
flink_pci.ko vendor id, product id for pci interface flink_pci vid=0x1172 (Altera) pid=4
mpc5200/flink_lpb.ko device memory length for local plus bus mpc5200/flink_lpb dev_mem_length=0x280