notusb
驱动牛犊
驱动牛犊
  • 注册日期2001-11-08
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1397回复:2

need help

楼主#
更多 发布于:2001-11-12 12:11
hello,

I am writing the firmware for an ARM-based
development board (CX82100 from Conexant System
Inc.), and it has a usb slave port. I can't tell
which chip it uses since lacking of info, and
I only know it uses the chip from Sand
Microelectronic Inc., which seems disappered.
My host system is linux 2.4.9, with builtin usb
support.
My problem is, after initing the USB device
controller on the board, I can receive the
linux's request, get-device-descriptor, which
is the first time request, and is 8 bytes length,
i.e. Linux wants to know my device's max packet
size for the control endpoint, and then, as the
response, I send the device info(8 bytes also)
to linux (by filling the dma buffer), but the
device always tells me it's pending on sending
the packet, at the same time, at the linux side,
printing debug info "usb_control/bulk_msg: timeout"
for five times, and then "USB device not
responding, giving up (error=-110)". Linux will
retry the above process again, and gives up
finally. The fact is my device can receive all
the ten(5 * 2) 8-byte-length requests without
any problem, but the transporting function suspended
after the first response. As the board data sheet
says, it seems the device is waiting for host's
ACK. But linux seems doesn't recieve the response
from the device, and won't send ACK but timeout
gain and again. What's the problem?
Since my device only hands on the limited setup
requests(e.g. GetDescriptor, GetConfiguration,
SetConfiguration)to me, and the others are dealed
with by the hardware such as SetAddress. I can't tell
which step I was on, but I check the linux usb
source(usb.c), and I notice the function
usb_new_device(), seems the SetAddress has completed
properly, but then failed at

2151: err = usb_get_descriptor(dev, USB_DT_DEVICE, 0, &dev->descriptor, 8);

Any kind of help or advice is welcome, thanks!

KDriver
驱动中牛
驱动中牛
  • 注册日期2001-06-09
  • 最后登录2008-09-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-11-12 15:46
台湾人?
不要说鸟语,bai tuo!
“萎软”,是Microsoft的小名!
singwoo
驱动牛犊
驱动牛犊
  • 注册日期2001-09-10
  • 最后登录2002-02-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-11-12 16:07
if time out for 5 times that mean the function  "usb_submit_urb" was not properly done.This function is related to your host system(ohci or uhci).you can check this function in usb-ohci.c or usb-uhci.c

That is what i know.

singwoo
游客

返回顶部