Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Linux Device Drivers - Communicating with Hardware
Rating: 4.2 out of 5(161 ratings)
2,060 students

Linux Device Drivers - Communicating with Hardware

Linux Kernel Programming for IO Mapped and Memory Mapped devices
Created byLinux Trainer
Last updated 11/2020
English
English [Auto],

What you'll learn

  • IO Mapped IO
  • Memory Mapped IO
  • PCI
  • Kernel Modules for Keyboard and RTC

Course content

9 sections84 lectures3h 11m total length
  • Introduction2:46

    Explore how input and output with peripherals use memory-mapped I/O or port-mapped I/O, comparing shared memory space versus separate I/O spaces, and how CPUs implement these methods.

  • Registers in Hardware devices1:03

    Read and write to registers at consecutive addresses in memory space or io space to control devices. Complex devices add more registers; basic devices use a minimum register set.

  • How does hardware distinguish between port IO and memory access3:54

    See how the CPU uses the address bus and control signals to distinguish memory access from I/O, with memory controllers handling data transfers and keyboards and mice.

Requirements

  • Should be able to write/compile/load/unload Hello World Linux Kernel Modules

Description

What you will learn in this course:

  • Two modes of communication with hardware - IO Mapped IO and Memory Mapped IO

  • Kernel Drivers/Modules for IO Mapped IO - Speaker, RTC, Keyboard

  • Kernel Drivers/Modules for Memory Mapped IO - Hardware Random Generator, GPIO, UART

  • Accessing IO Mapped IO and Memory Mapped IO from user space

  • PCI and SMBIOS

API's/Macros/Structures

  • inb, outb, inw, outw, inl, outl

  • inb_p, outb_p, inw_p, outw_p, inl_p, outl_p

  • struct resource, request_region, release_region

  • ioperm, iopl, geteuid

  • request_mem_region, release_mem_region, ioremap, iounmap, ioread8, ioread16, ioread32, iowrite8, iowrite16, iowrite32

  • ioport_map, ioport_unmap,mmap

Files:

/dev/port, /dev/mem, /proc/iomem, /proc/ioports

Commands

  • hwclock

  • date

  • showkey

  • hexdump

  • strings

  • dd

  • lspci

  • biosdecode

  • dmidecode

Who this course is for:

  • Kernel developers curious about learning how to communicate with hardware