Linux那些事兒之我是EHCI 引子

2021-05-23 07:13:07 字數 873 閱讀 3432

轉眼之間,到了2023年,先祝大家新年快樂,希望新的一年裡好運連連,工資猛漲。好久沒有寫了,乙個原因在於,作 為乙個phd學生,難免要做一些讀*****寫*****的瑣事,另乙個原因就是自己太懶了。大哥甲一如既往,堅持的寫作,著實讓人欽佩。此時此刻,我情 不自禁,作詩一首,北飄奇男子,江南大丈夫。海上常常生明月,江湖就此一枝花。不服不行。

這裡主要就linux ehci host controller這部分的**,談談我自己理解。不當之處,請多指正。參考資料,ehci spec和linux-2.6.22.1核心。我盡量少貼**,把問題討論清楚。

現在開說,要進行usb傳輸,得有乙個usb host controller, usb主控制器。它與插入系統的usb 裝置進行相互操作,並負責處理usb 裝置與系統其它部分通訊所必需的所有低層次細節。

乙個usb2.0主控器如圖所示

usb 2.0定義了低速(ls),全速(fs),高速(hs)傳輸。ehci僅僅支援高速傳輸,所以它必須還要有乙個companion hc,如(uhci)來支援低速和全速裝置,情況時這樣的:

1), fs/ls 裝置插入到root hub port,會由companion hc(uhci/ohci)發現並管理裝置;

2),fs/ls 裝置插入到usb 2.0 hub(not root hub),那麼由ehci 通過split transaction和transanction translation(tt)支援fs/ls 裝置。

比如,當乙個usb裝置插入root hub port時,先要做一件routing的事情。所有的root hub port預設是被ehci占有的,所以,ehci和插入的usb裝置通訊,看是不是hs裝置,如果是好說。如果不是,ehci就放棄這個port的占有 權,讓給companion hc(uhci/ohci)去管理。

Linux那些事兒之我是EHCI 引子

轉眼之間,到了2008年,先祝大家新年快樂,希望新的一年裡好運連連,工資猛漲。好久沒有寫了,乙個原因在於,作為乙個phd學生,難免要做一些讀 寫 的瑣事,另乙個原因就是自己太懶了。大哥甲一如既往,堅持的寫作,著實讓人欽佩。此時此刻,我情不自禁,作詩一首,北飄奇男子,江南大丈夫。海上常常生明月,江湖就...

《Linux那些事兒之我是PCI》筆記

核心版本 2.6.22 1.pci access mode bios,direct,mmconfig,any。bios mode 有的bios程式提供了針對pci匯流排的操作,這些操作包括匯流排列舉,此種bios稱為pci bios 此種方式直接使用bios程式列舉的結果。64位平台沒有該選項 di...

讀Linux那些事兒之我是HUB筆記(一)

革命尚未成功,繼續看我們的hub 1 usb裝置能夠使用條件 乙個是 usbcore,這就是核心模組,另乙個是主機控制器的驅動程式 usb host controller.乙個是 echi的,三個是uhci,就是host controller 的介面 hub 叫做集線器 裝置與host contro...