Course Code: embeddedbspk
Duration: 14 hours
Course Outline:

Session 1: Understanding the Block Drivers

  • Understanding a Generic Hard Disk
  • Request Queue Ecosystem
  • Kernel APIs & Data Structures
  • Creating a RAM Block Device
  • Partitioning a Block Device

Exercises

  • Experiments with a RAM-based Block driver
  • Creating Partitions and Formatting them

Session 2: Programming the PCI

  • Understanding the x86 processor bus: PCI
  • PCI Core & Programming the PCI
  • Finding & interacting with a PCI device
  • The first PCI driver

Exercises

  • Registering & Finding a PCI device
  • Mapping & Accessing the PCI device regions
  • Getting the Ethernet MAC id (Tentative)

Session 3: Linux DMA Engine

  • Need for DMA
  • Types of DMA transfers
  • Linux DMA engine
  • Code walks through & demo of DMA transfer with SPI controller

Exercises

  • Setting up the DMA Trasaction
  • Initiating & Completion of DMA for a PCI device
  • Transacting data using DMA

Session 4: File System Driver Overview

  • Hardware File System & Formatting
  • Virtual File System & its Role
  • The 5 Operation Sets & their role