Udemy
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Deep Dive into Linux PCIe Device Driver Development
Rating: 2.2 out of 5(10 ratings)
61 students

Deep Dive into Linux PCIe Device Driver Development

Linux PCIe Device Driver Development using UDOO-X86 Board based on Intel Braswell N3160 Processor System on Chip
Last updated 5/2021
English

What you'll learn

  • Peripheral Component Interconnect Express (PCIe) Fundamentals
  • Linux PCIe Driver Framework
  • Linux PCIe Watchdog driver implementation
  • Linux PCIe SMBus Driver implementation
  • Linux PCIe Direct Memory Access Study
  • Linux PCIe Ethernet Driver Source code walk through
  • Linux PCIe Port Driver Source Code Walk Through

Course content

3 sections • 10 lectures • 14h 9m total length
  • Introduction to PCIe4:00

    Explore the PCI Express architecture, its dedicated point-to-point serial links, a 64-bit data path, layered model, and how high-speed data throughput, low latency, and reporting improve data reliability and security.

  • PCIe Topology6:41

    Explore the PCI Express topology, including the CPU, root complex, switches, bridges for legacy PCI, and endpoints, with full duplex serial point-to-point links and transaction-layer packets.

  • PCIe Terminology6:55

    Explore PCIe terminology, including differential signaling and two-wire transmit and receive lanes. Learn how endpoints and links negotiate and auto-negotiate the maximum lane count for reliable communication.

  • PCIe Fundamentals2:18:35

    PCIe Bus Architecture, Terminology, Topology, Configuration Space, Device ID, Vendor ID, PCIe Extended Configuration Space, Capability Structure, Device Class information

Requirements

  • linux application development
  • linux kernel module development

Description

This course focuses on the following,

Peripheral Component Interconnect Express (PCIe) Fundamentals

  • PCIe Bus Architecture

  • PCIe Bus Terminology

  • PCIe Bus Topology

  • PCIe Configuration Space

  • PCIe Device ID, Vendor ID

  • PCIe Extended Configuration Space

  • PCIe Capability Structure

  • PCIe Device Class definition

Linux PCIe Sub System

  • PCIe Device Representation

  • Sysfs / Procfs

  • PCI Device ID Structure

  • pci_driver structure

  • Linux Kernel PCI access APIs

Intel LPC Controller

  • Functional and Register Descriptions

  • ACPI Base Register

  • System Management TCO Register for Watchdog

Linux PCIe SMBUS Driver

  • Linux I2C Driver Architecture

  • I2C / SMBus Bus, Adapater, Framework

  • Linux Kernel I2C Adapter APIs

  • I2C SMbus Data

  • I2C Algorithm Structure

  • Managed PCI Access APIs

  • IO Port Access APIs

Linux PCIe Audio Driver

  • Brief information about Intel High Definition Audio Controller

  • Fundamentals of Linux Sound Sub Systems

  • new sound card creation and initialization

  • sound card registeration

  • New sound device component creation

  • Sound HDA Linux Kernel APIs

  • Direct Memory Access Implementation Walk through

  • Message Signal Interrupt Implementation Walkthrough

Linux PCIe Message Signaled Interrupts

  • Message Signaled Interrupts (MSI) Fundamentals

  • Linux Kernel Interrupt Handling APIs

  • Linux Kernel Interrupt Handling Functional Flow

  • Linux Kernel MSI Interrupt Handling APIs

Linux PCIe Direct Memory Access Fundamentals

  • DMA Fundamentals

  • Linux Kernel DMA APIs

  • Linux Kernel DMA Mapping APIs

Linux Ethernet Driver

  • PCIe Ethernet Driver Framework Fundamentals

  • Realtek RTL8111 Register Descriptions

  • Linux PCIe Ethernet Driver Source code walkthough

  • Direct Memory Access Implementation Walk through

  • Message Signal Interrupt Implementation Walkthrough

Linux PCIe Port Driver

  • Linux PCIe Host Bridge Fundamentals

  • PCIe Host Bridge Register Descriptions

  • Linux PCIe Port Driver Source Code walkthrough

  • Direct Memory Access Implementation Walk through

  • Message Signal Interrupt Implementation Walkthrough

Who this course is for:

  • Passionate to learn on PCIe
  • Linux Kernel / Device Driver Developers