Skip to content
September 2026 qualifier: applications close Sun 27 Sep · Week 1 starts Fri 2 Oct
Qualifier Hub

IIT Madras Embedded Linux and FPGAs Lectures

EE410178 lectures12 weeks

Weeks

  1. Week 17 lecturesIntroduction · MMIO and AXI-lite basics · Embedded c for hardware access · Memory-mapped I/O concepts · AXI bus protocol overview · Simulation demonstration using cocotb · AXI4-lite register bank implementation
  2. Week 27 lecturesRegister design goals · ARM UART summary of registers · ARM UART summary of registers (cont.) · Smart timer and register map · AXI-lite: reg ctrl features · Smart timer interface via axi-lite · Common register behaviour
  3. Week 37 lecturesFrom Bare Metal Boot to Linux Device Drivers · Bare Metal Access: Registers & MMIO · Deeper into OS Kernel · Virtual Memory Basis · Linux Device Drivers · Demonstration · Demonstration(Cont.,)
  4. Week 47 lecturesIntroduction: Simulation vs. Emulation · Getting Started with Renode: Installation & Setup · Bare-Metal ELF Execution in Renode · Booting Stock Linux on ARM Versatile Express (VExpress) · Running Linux on a Zynq-Based Platform with Renode · Compiling the Linux Kernel and Init System (Part 1) · Compiling the Linux Kernel and Init System (Part 2)
  5. Week 56 lecturesDevice Tree : Describing Hardware for Linux · Understanding the Motivation for Device Tree · Device Tree -Basics: Key Concepts to Recognize · Customised DTB for smart timer · Boot with new DTB(Renode) · DT-Drive Binding
  6. Week 65 lecturesPlatform Drivers — Fundamentals and Device Binding · Platform Driver Skeleton – Structure and Workflow · Demonstration: Smart Timer Platform Driver on Zynq ZedBoard · Demonstration: FFT Platform Driver on Zynq ZedBoard · Driver Binding Across Operating Systems – A Comparative View
  7. Week 75 lecturesIntegration of Verilator and Renode Emulator · Demo: Cosimulation with simplest software without OS · FIR Filter: Fundamentals and Workflow · Demo: FIR–AXI Integration on Renode · Summary on CoSimulation and workflow
  8. Week 86 lecturesInterrupts: Necessity and Types · ARM GIC Architecture & Interrupt Routing Flow · Device Tree Interrupt Bindings · Smart Timer IRQ Hardware Design · Smart Timer IRQ Demo · Interrupt Debug & Performance Overhead
  9. Week 97 lecturesIRQ Handling Basics · Smart Timer — IRQ-Driven Wait Queue Demo · Linux Driver Concurrency and Synchronization · IRQ-Safe Locking and Deferred Execution · FIR Driver: IRQ and Read Synchronization · Demo of IRQ and Read Synchronization in the FIR Driver · Summary : Polling vs Interrupts
  10. Week 106 lecturesDMA vs MMIO: Achieving High-Throughput Data Transfers · DMA Basics and AXI-Stream Fundamentals · Understanding Cache Coherency in DMA Systems · AXI DMA Register Interface Overview · Performance Analysis: DMA vs MMIO · Address Translation, Debugging DMA, and DT Integration
  11. Week 118 lecturesBoot Sequence - Overview · ROM Code, SPL and Zynq Specific Boot Sequence · U-Boot and FPGA Boot Stream Loading · Kernel Initialization and Init System · MMU, Address Translation and Page Tables · Adress Spaces and Reserved memory Regions · Cache Hierarchy · Build Systems - Cross Compilation and Kernal Config
  12. Week 127 lecturesExploring Timing Delays in Linux · PREEMPT_RT: Enabling Deterministic Linux Performance · Power Management and Runtime PM in Embedded Systems · Energy-Efficient Hardware Techniques in Embedded Systems · Secure Boot Chain · Linux File Systems, Updates, and Kernel Optimizations · Course Summary