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