Shopping Cart :Check Out

PCI Device Drivers using Linux Hands On Workshop

Course Introduction:

This intensive course transforms an IT-Professional or a Student into a Linux Device Driver & Kernel Developer for PCI devices. The participant will develop a deep understanding of Linux PCI subsystem, how it interfaces with rest of the Linux kernel as well as various devices; Participant will be able to write drivers for PCI devices.

Target Audience:

* Professionals and Students who are working in Linux Systems Programming Areas
* Anyone planning to learn Linux Kernel PCI Programming


* A sound knowledge of C programming language
* Sound knowledge of Linux Systems Programming
* Linux Driver Basics

Course Contents

Day 1 Day 2 Day 3
Introduction to Linux Device Drivers and the TTY Subsystem The Linux PCI Subsystem Writing a Linux PCI Device Driver(PCI-Serial I/O card)
-Hardware Programming Model(Registers, Interrupts, data I/O etc) -The PCI Bus Architecture -Understanding the Device Hardware
-The Linux Device Sub-system -PCI Addressing and Hardware Registers -Driver Interface with Linux PCI and Serial(TTY) Subsystems
-The /dev,/sys,and /proc filesystems -PCI Device Configuration and Initialization -Structure of the PCI Driver
-Linux Device I/O Model -The Linux PCI Subsystem -Overview of the Driver Interface Functions
-Linux Kernel Modules -PCI Interface Functions for Drivers -Implementing PCI Interface Functions
-Linux Device Driver Architecture -PCI Driver Data Structures -Registering and Enabling the Driver
-Character Drivers -PCI Driver Structure -Accessing the PCI Configuration Space
-Block Drivers -PCI Device Structure -Accessing Memory and IO Address Spaces
-Network Drivers -A Minimal PCI Driver -Interrupt Handling
-The TTY Sub-system Architecture -The Role of the PCI Probe function -Unregistering the Driver
-Structure of the Linux TTY Serial Port Driver -Interrupt Allocation and Mapping in PCI -Implementing Serial Interface Functions
-TTY Driver Data Strucutres -Hands-on: -Registering with the TTY Sub-system
-TTY Driver Functions -The Linux PCI utilities-lspci TTY Serial Read/Write Functions
-Hands-on: -Decoding the PCI configuration space -TTY Device Control Functions
-Writing Simple kernel modules Writing a Skeleton PCI Driver
-Building a character device driver
-Code walk-through of a serial port driver
Day 4
Debugging and Testing Linux PCI drivers
-Using pciutils package
-Exercising the PCI Driver
-Tracing and logging
-Debugging the Driver
-Memory Allocation Issues
-Driver Registration Issues
-Device Organization Issues
-PCI Configuration Space Issues
-Making the PCI Driver More Robust
-Identifying bugs in the driver

Training Programs