Linux Device Drivers - Communicating with Hardware
- Descrição
- Currículo
- FAQ
- Revisões
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
-
4X86 I/O portsVídeo Aula
-
5Accessing I/O PortsVídeo Aula
-
6Requesting I/O PortsVídeo Aula
-
7Linux Kernel Module Example for requesting i/o portsVídeo Aula
-
8Why read value is not same as writeVídeo Aula
-
9Why all ports are not listed in /proc/ioportsVídeo Aula
-
10Where to find information of processor ioportsVídeo Aula
-
11Linux Kernel Module to enable the SpeakerVídeo Aula
-
12Ports listVídeo Aula
-
13Introduction to RTCVídeo Aula
-
14RTC Ports and Registers Part1Vídeo Aula
-
15RTC Ports and Registers Part2Vídeo Aula
-
16Linux Kernel Module communicating with RTCVídeo Aula
-
17Walkthrough of rtc driver in Linux kernelVídeo Aula
-
18Hardware and software clockVídeo Aula
-
19Linux Kernel Module example to update timeVídeo Aula
-
20Introduction to PC KeyboardVídeo Aula
-
21ScancodesVídeo Aula
-
22How to find out scancode of a keyVídeo Aula
-
23TypematicVídeo Aula
-
24Reset CommandVídeo Aula
-
25I/O Ports of keyboardVídeo Aula
-
26Linux Kernel Module sending keyboard controller commandsVídeo Aula
-
27Linux Kernel Module Enabling and Disabling mouseVídeo Aula
-
28Linux Kernel Module Enabling and Disabling keyboardVídeo Aula
-
29Linux Kernel Module reading command byte after disabling keyboardVídeo Aula
-
30Status RegisterVídeo Aula
-
31Linux Kernel Module to print keys typedVídeo Aula
-
32Linux Kernel Module to turn on keyboard ledsVídeo Aula
-
33IntroductionVídeo Aula
-
34ioperm system callVídeo Aula
-
35Add an error message to normal userVídeo Aula
-
36What happens when you dont call ioperm and access IO Ports from userspaceVídeo Aula
-
37Accessing RTC Registers from user spaceVídeo Aula
-
38ioplVídeo Aula
-
39Accessing RTC Registers after ioplVídeo Aula
-
40Pushing keys from user space processVídeo Aula
-
41Restart Your Computer using keyboard portVídeo Aula
-
42Restart Your Computer using Reset PCI PortVídeo Aula
-
43Enabling and Disabling speakerVídeo Aula
-
448254 Timers and speakersVídeo Aula
-
45/dev/portVídeo Aula
-
46IntroductionVídeo Aula
-
47Requesting IO MemoryVídeo Aula
-
48Accessing IO MemoryVídeo Aula
-
49Why cant we directly access IO memoryVídeo Aula
-
50Linux Kernel Module example calling request mem region failed caseVídeo Aula
-
51Linux Kernel Module example calling request mem region success caseVídeo Aula
-
52Linux Kernel Module example calling ioremap and iounmapVídeo Aula
-
53Linux Kernel Module example writing to memoryVídeo Aula
-
54Linux Kernel Module example calling ioread and iowriteVídeo Aula
-
55Hardware Random Number GeneratorVídeo Aula
-
56Registers in Hardware Random Number GeneratorVídeo Aula
-
57Ports access as IO MemoryVídeo Aula
-
58Accessing memory mapped io from user spaceVídeo Aula
-
59CONFIG_STRICT_DEVMEMVídeo Aula
-
60devmem utilityVídeo Aula
-
61Simple implementation of devmem utility in cVídeo Aula
-
62Updated code to print stringVídeo Aula
-
63Configure GPIO using devmemVídeo Aula
-
64RTC on qemu armVídeo Aula
-
65Dump BIOS data on fileVídeo Aula
-
66Writing string into RAM and reading backVídeo Aula
-
72IntroductionVídeo Aula
-
73PCI Address SpaceVídeo Aula
-
74PCI Configuration SpaceVídeo Aula
-
75How to access registers in PCI Configuration SpaceVídeo Aula
-
76lspciVídeo Aula
-
77Access configuration address space from Linux Kernel ModuleVídeo Aula
-
78Linux Kernel Module to print full address spaceVídeo Aula
-
79What happens when we try to read a device which doesnt existVídeo Aula
-
80Base Address RegistersVídeo Aula
-
81Base Address of Base Address RegisterVídeo Aula
-
82Find out amount of memory consumed by PCI DeviceVídeo Aula
-
83Introduction to PCI ExpressVídeo Aula