10–12 Dec 2013
DESY
Europe/Berlin timezone

PCIe Device Drivers Common Interface.

12 Dec 2013, 16:45
13m
DESY Lecture Hall (DESY)

DESY Lecture Hall

DESY

Notkestraße 85 22607 Hamburg

Speaker

Mr Ludwig Petrosyan (DESY)

Description

PCI Express is gradually gaining momentum in becoming a new industry standard for many chipset manufacturers and developers. The PCI standard is currently the most widely used architecture.However, recent industry trends indicate chipset manufacturers will also be utilizing the more afficient PCI Express chipsete in future designs, alongside the existing PCI chipsete. The uTCA as well as the majority of architectures today use the PCI Express bus as a central bus of data transmissions. In order to take full advantage of PCI Express' enhanced features, more robust device drivers are requqred. A device driver contains all the device-specific code necessary to communicate with a device. This code includes a standard set of interfaces to the rest of the system. This interface shields the kernel from device specifics just as the system call interface protects application programs from platform specifics. Application programs and the rest of the kernel need little, if any, device-specific code to address the device. In this way, device drivers make the system more portable and easier to maintain. But new devices demand new drivers and over time with increasing in number of drivers, their support is at a loss. On the other side the drivers from different producers have different API that leads to certain difficulties at the level of the user programming. However the basic functionality of the PCI Express device does not depend on device type and could be common for all drivers. The Linux Device Driver Model allows modules stacking, that basically means one module can use the symbols defined in other modules. Using the stacking and independence of the basic functionality of the PCI Express device allows us to split PCI Express device driver into multiple parts. The driver for current device will use PCI Express driver common part provided by the top level driver. The top level module provides all common structures and functions for PCI Express communication. Such flexibility will facilitate the tasks of creation and supporting of the device drivers, on the other hand it will lead to the principle ”write for one use for all” at the level of user programming. Our experience of creating and using stacked PCI Express device drivers will be presented.

Primary author

Presentation materials