User Tools

Site Tools


mywiki:linux:linux_bus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mywiki:linux:linux_bus [2016/01/28 17:07] supermywiki:linux:linux_bus [2019/09/15 18:55] (current) – external edit 127.0.0.1
Line 1: Line 1:
 Linux Buses/Devices/and Drivers Linux Buses/Devices/and Drivers
  
-| Reference | {{:mywiki:linux:linux-kernel-slides.pdf|Kernel Slides}} |+| Reference | {{:mywiki:linux:linux-kernel-slides.pdf|Kernel Slides}} | {{:mywiki:linux:linux_device_model_2.ppt|}} | [[http://lwn.net/Kernel/LDD3/|Linux Device Drivers, Third Edition]] |
  
 ^ bus | a channel between the processor and one or more devices. It is represented by struct **bus_type**. \\ Commonly it can be **dynamically detected**, like PCI, USB \\ It can be virtual or physical, All devices are connected to a bus \\ A bus can be plugged into another bus E.g., USB controller is usually a PCI device | ^ bus | a channel between the processor and one or more devices. It is represented by struct **bus_type**. \\ Commonly it can be **dynamically detected**, like PCI, USB \\ It can be virtual or physical, All devices are connected to a bus \\ A bus can be plugged into another bus E.g., USB controller is usually a PCI device |
Line 10: Line 10:
 ^ framework | allows the driver to expose the hardware features in a generic way. | ^ framework | allows the driver to expose the hardware features in a generic way. |
 ^ class | Higher-level view of a device that abstracts out low-level implementation details \\ Allows user space to work with devices based on what they do, rather than how they are interconnected \\ Almost all classes show up under /sys/class \\ /sys/class/net – network interfaces \\  /sys/class/input – input devices \\  /sys/class/tty – serial devices | ^ class | Higher-level view of a device that abstracts out low-level implementation details \\ Allows user space to work with devices based on what they do, rather than how they are interconnected \\ Almost all classes show up under /sys/class \\ /sys/class/net – network interfaces \\  /sys/class/input – input devices \\  /sys/class/tty – serial devices |
 +| udev | Is a daemon process that scans for devices and dynamically creates the corresponding nodes in /dev/ \\ Replaces devfs \\ Running in userspace | 
 +| Firmware | request_firmware/release_firmware |
 +
 +
  
  
Line 22: Line 26:
 {{:mywiki:linux:linux_device_n_driver_interaction2.jpg|}} {{:mywiki:linux:linux_device_n_driver_interaction2.jpg|}}
 {{:mywiki:linux:linux_device_n_driver_interaction3.png|}} {{:mywiki:linux:linux_device_n_driver_interaction3.png|}}
 +
 +{{:mywiki:linux:pci-structures.gif?500|}}
mywiki/linux/linux_bus.1453972026.txt.gz · Last modified: (external edit)