2014年4月9日 星期三

USB hub problem 及研究

最近遇到一個問題,就是Genesys Logic 的GL852G Hub IC 無法在Au1200 board 下 run high speed.
Initial (插拔或重開機) 有時是High speed, 大部份時間是 full speed.

但其較差的兄弟 GL850G 則無此問題

為此 研究了 USB driver code ( HCD 部份) 目前還是沒有頭緒,不過卻更深入地了解了
WINCE 下 USB Driver 的架構。

參考資料

Search USB EHCI, USB giisr.dll, usb enumeration, hcdattach ....
http://www.cctime.com/html/2010-6-23/20106231428565702.htm
http://www.eettaiwan.com/ART_8800271415_644847_TA_ebef4eeb.HTM
http://bluefish.blog.51cto.com/214870/72920
http://www.beyondlogic.org/usbnutshell/usb7.htm
http://kunyi.spaces.live.com/blog/cns!30484CDA412A1D29!748.entry
http://dev.firnow.com/course/6_system/linux/Linuxjs/2007917/71729.html
http://blogs.msdn.com/b/ningling/archive/2007/06/10/windows-ce-6-0.aspx
http://www.gentoo.org/doc/zh_cn/usb-guide.xml


還有compile 的問題,為了避免全部 sysgen

更改在 common oak driver usb 下面的 code
要用 sysgen 才會更新
光是這樣就make run time image 的話, 重開機會當在load ehci.dll 或 ohcd.dll

所以在 db1200\ 下面 要rebuild ehci.dll and ohcd.dll (Public OAK 下面先sysgen, 再build db1200下的 ehci 跟 ohcd )




解決了 修改 ResetAndEnablePort() 當失敗的時候 重試至成功為止
owner
chw.cpp  ResetAndEnablePort