100% Knowledge Guarantee
100% Genuine Placement Assistance

Network PCI Device Drivers training Bangalore, Network PCI device driver Institutes in bangalore,Network PCI driver course in bangalore, PCI driver course in bangalore,network device driver course in bangalore,pci device driver course in bangalore,weekned training institutes,network training course in bangalore in India.

NETWORK AND PCI LINUX DEVICE DRIVER PROGRAMMING

PREREQUISITE : Advanced C, Linux Systems and Character Driver Programming

For network interface card (NIC) hardware to operate properly, you need a suitable device driver for the NIC hardware. A NIC device driver implements a hardware-independent common interface between the Linux kernel and the NIC, so that packets can be moved between the kernel and the NIC. A PCI device driver is the program that allows a PCI device to function as intended. Different PCI devices use different drivers.

 

CH1: PCI DEVICE DRIVER AND ITS ROLE

Understanding the x86 processor bus: PCI

PCI Core & Programming the PCI

Finding & Interacting with a PCI Device

PCI Bus, Device and Function numbers

Registering & Finding a PCI device

Mapping & Accessing the PCI device regions

Accessing the Configuration Space

Accessing the I/O and Memory Regions

Enabling the PCI Device

 

Hands-On Assignments

Lab1:Registering the driver with the PCI subsystem.

Lab2: Write a module that scans your PCI devices, and gathers information about them.For each found device, read some information from its configuration register.Fields you may wish to obtain could include: PCI_VENDOR_ID, PCI_DEVICE_ID, PCI_REVISION_ID,PCI_INTERRUPT_LINE,PCI_LATENCY_TIMER,PCI_COMMAND.

Lab3: Write a Character based PCI driver to find Information about IRQ Line,Memory region,I/O region,configuration region,prefetchable and non-prefetchable region in BAR.

 

CH2: MEMORY MAPPING AND DMA

What memory is DMA'able

DMA addressing limitations

Types of DMA mappings

DMA Direction

 

Hands-On Assignments

Lab1: Write a module that allocates and maps a suitable DMA buffer, and obtains the bus address handle. Do this in three ways: (a)Using dma_alloc_coherent(), (b)Using dma_map_single(), (c)Using a DMA Pool.

 

CH3: BASIC NETWORK DEVICE DRIVER

Registering the Network Driver

Buffer Management with skbuffs

Packet Transmission & Reception

Reception using interrupt and poll

Start the network interface’s transmit Queue

Other network operations including statistics

Hands-On Assignments

Lab1: Building a Transmitting Network Driver, Module to include a transmission function.

Lab2: Adding Reception, Extend your transmitting device driver to include a reception function.

 

CH4: ADVANVED NETWORK DEVICE DRIVER

Registering with the Linux low level bus interface subsystem

Allocating interface descriptor block (net_device)

Device specific structure and initializing media specific fields

Getting device specific structure object pointer

Enabling Network interface card

Getting the Device resources (MMIO and PMIO)

Getting device MAC address

Initialization of device methods in the net_device

Registering net_device object with the kernel

Registering the interrupt handler (ISR)

Allocating Rxring and Txring

Initializing the hardware (network interface card)

 

Hands-On Assignments

Lab3: Writing the PCI based Network Driver for NIC(Network Interface Card). Programming the Network Device Registers, Implementing the Transmission & Reception with the actual device(NIC) and Setting up the network across computers.

 

 

info@embisyslabs.com

+91-88848 67053

Embisys Labs Development,Training,Consultancy & Support www.embisyslabs.com