Transferred from: http://blog.csdn.net/brucexu1978/article/details/17583407
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Http://www.cnblogs.com/general001/articles/2319552.html
http://blog.csdn.net/uruita/article/details/7263290:module_device_table
HTTP://BLOG.CHINAUNIX.NET/UID-25909619-ID-3281432.HTML:USB process
Http://blog.chinaunix.net/uid-25909619-id-3273345.html:uhci
HTTP://BLOG.CHINAUNIX.NET/UID-25909619-ID-3381683.HTML:USB Hot Swap Implementation mechanism (hub probe or interrupt)
Http://www.cnblogs.com/sdphome/archive/2011/09/29/2195789.html
http://blog.csdn.net/jiang_dlut/article/details/5832237: This speaks of Usb_device_driver and Usb_driver. Usbhub found the insertion of a new device, first use device to Dvice_add (see Usb_alloc_dev, where Dev->dev.type = &usb_device_type; This is the entire USB device), Then Usb_register_device_driver registered driver Generic_probe will be called by Usb_probe_device, this function will call usb_set_configuration. The device_add of such an interface type is called (Intf->dev.type = &usb_if_device_type; This is a USB interface device, which was understood for half a day, so it was not found interface How the dev in probe can be transformed into a interface. Thanks to this document). The probe function of the device interface is called in Usb_probe_interface,usb_probe_interface is registered in Usb_register_driver (usb_register). This way, the enumeration of USB devices is easy to read.
http://blog.csdn.net/brucexu1978/article/details/9043523: This article describes the process of matching Linux device and driver.
Http://wenku.baidu.com/link?url=eIwUG6V4v4dUPub-z_ 6EZS3LTHKDTGZU4NYARHLQNVU40QNK3SRRDBE7TEMYIKISHQWN9WIWXYXFG2ISXVVONAIQOYZG9XPG8VISJPBFEYI:USB protocol
Http://wenku.baidu.com/link?url= HZJV0UKUJ0ZUIHOHEUEREKJWY93CB0FGVVG9JAF8TWZXQCJJLSDSKOAWDBSB-FTKI5EUWYUEGQYAS89IEJP5YNT5QAQNUJEVCXGTC26UDPG: USB Hub Protocol
Http://download.farsight.com.cn/download/pdf/Farsight-USB08-HubRequest.pdf:hub Request
Http://wenku.baidu.com/link?url=ZH7Oe5k8B1yH-04YKAiFh948-fqsxn7sqpAd9b3iemJ5J_ GMN4OJSYP1UBCKRL0-PD3NMYP5L519F4SM5NOVQNBT0QCI4BN91J-2HBU2RME:OHCI Register Description: Ed, TD
HTTP://BLOG.CSDN.NET/QIURIHUANGHUA/ARTICLE/DETAILS/6411640:EHCI: Software Simplification
Http://wenku.baidu.com/link?url= t8jhyspwwurlrimccbysy0xuwxulwycvx1jkim78z7skqd80ivjiet5lwmvtqbb0gvqbu-i5dvnpp0zelaix2s3zguoynulsqcxrwa77ddq:usb3.0:4 more speeding. Line, separating the 2 hubs (Overspeed, 2.0), the device can send a ready asynchronous request, unlike 2.0 of a host-initiated polling request. The streaming pipe is used for 3.0 flow control (bulk expansion). Burst mode transmission is supported. There is basically no Linux usb3.0 driver on the web, and there is no particularly public information and explanation of USB3.0 chips (20140122).
Http://www.epc.com.cn/subject/200803/10591.html: Wireless USB Bandwidth Analysis
Http://blog.csdn.net/leo_wonty/article/details/7418261:usb Masstorage
Http://blog.chinaunix.net/uid-10386087-id-2958758.html
http://blog.csdn.net/xushiyan/article/details/6877460: Describes the Linux SCSI driver architecture, including interfaces to the Linux block layer, interfaces to the underlying host, and some sequence. At this point the USB mass storage device is how to hook up the SCSI, and then attached to the block device, which is attached to the file system (sorry, this took me nearly 5 years, because it is the usual time, sad urge AH).
HTTP://BLOG.CSDN.NET/XUSHIYAN/ARTICLE/DETAILS/6941640:SCSI IO Callback
USB Gadget:
http://blog.csdn.net/successcw/article/details/17137361
Http://wenku.baidu.com/link?url=m73s8Hq5wxD-DZR5X02-Ltp9kEGiNSlKSUfJhf0mvrityUP5CwE1JnpyndnqlFcrW2hrMhL8_ 4lh0utf1p2ddal00u44y40znosh51v2yxk
http://blog.csdn.net/arnoldlu/article/details/9291883
http://lwn.net/Articles/395712/: Tell the trend against the composite framework.
The gadget drive frame on the USB device side is generally thinner. The protocol layer (MASSTORAGE/CDC, etc.) calls the gadget API, Gadget API calls Gadget's Endpoint EP OPS, an OPS function that comes from the registered EP of the specific hardware platform. Udc_core is mainly responsible for the UDC add USB_ADD_GADGET_UDC, equipment layer usb_gadget_probe_driver and so on.
The difference between File_storage and Mass_storage is that the former does not use composite abstraction, which uses composite abstraction. Composite abstraction layer is also used for other protocols (Serial/network, etc.) (config/function management).
Mass storage are accessed by VFS through a specific storage device whose path is determined by the file parameter when the module is loaded (the file can be accessed by the VFS API in the kernel state). The SCSI command is parsed at the sorage layer.
ANDROID.C in the mass_storage is also walking composite. This file incorporates a number of USB device features, including ADB. Enable different functions through the SYSFS store function.
Specific UDC driver responsible for queue/Transport management (DMA FIFO?) /Device management/interrupts, etc. can refer to omap and so on, Platform_driver_probe register this driver. DMA calls the DMA feature operation provided by the platform layer. The DMA functions of different platform are different.
HTTP://BLOG.CSDN.NET/EMBEDEDSWORDMAN/ARTICLE/DETAILS/6689593:USB Gadget serial port
Http://blog.chinaunix.net/uid-24227137-id-3437527.html:linux TTY Driver
Http://blog.chinaunix.net/uid-27717694-id-3495612.html:linux Console
http://wenku.baidu.com/link?url=BUfLIzBG-ER22uiONf0nN78xXL_Inv4rciMtSl5IcDyRJ1D0_ Jf4i20eqvc2qzleba2ct7iviek4vzzv8cl0d37ajf0kfebgskk-usschta:linux Pseudo Terminal
USB serial port is mainly to convert USB to TTY device, device side and host side are like this. CDC ACM Analog Modem
Audio device uses the Linux sound core interface
Video:v4l2 interface
ETHER:CDC Eem/ecm/subset, implement Net_device_ops interface:
Http://wenku.baidu.com/view/d06c4318ff00bed5b9f31dbc.html
Android MTP: File transfer Ptp:still Image class: Http://baike.baidu.com/link?url= Qceecpkdlhqrvy9zoaipmipimyhifouggw4nrtp1tazvlq7wf1_cta73jhmhwc-t
Rndis: Microsoft protocol instead of CDC ether protocol
Http://wenku.baidu.com/link?url=VK6wEQIWlmL7VgIpuHBhCZPk-CivVSHdCthSzy-_AdVK_ 7zdrwp4vlojzpmsxnmwitk76rgeld0stawvkv8ztt__9spkvkt3lwci7ogfnti
USB Drive Frame Analysis "Go" under Linux