嵌入式linux(linux-2.6.20) usb hub 插上u盘过后出现错误

时间:2021-12-29 08:06:36
向各位高手请教,最近我移植了linux-2.6.20(+2.6.20-at91.patch)到AT91RM9200的板子上,在usb口上插上u盘可用,信息如下: 
usb 1-1: new full speed USB device using at91_ohci and address 11 
usb 1-1: configuration #1 chosen from 1 choice 
scsi0 : SCSI emulation for USB Mass Storage devices 
scsi 0:0:0:0: Direct-Access USB Flash Disk 2.00 PQ: 0 ANSI: 2 
SCSI device sda: 509376 512-byte hdwr sectors (261 MB) 
sda: Write Protect is off 
sda: assuming drive cache: write through 
SCSI device sda: 509376 512-byte hdwr sectors (261 MB) 
sda: Write Protect is off 
sda: assuming drive cache: write through 
sda: sda1 
sd 0:0:0:0: Attached scsi removable disk sda 
说明usb口上插入u盘时可以用的。 

在usb口上插入usb HUB 提示信息如下: 
# usb 1-1: new full speed USB device using at91_ohci and address 6 
usb 1-1: configuration #1 chosen from 1 choice 
hub 1-1:1.0: USB hub found 
hub 1-1:1.0: 4 ports detected 
说明系统检测到了usb hub 
但是在usb Hub上插上U盘过后出现信息如下: 
usb 1-1.2: new full speed USB device using at91_ohci and address 7 
usb 1-1.2: device descriptor read/64, error -62 
usb 1-1.2: device descriptor read/64, error -62 
usb 1-1.2: new full speed USB device using at91_ohci and address 8 
usb 1-1.2: device descriptor read/64, error -62 
usb 1-1.2: device descriptor read/64, error -62 
usb 1-1.2: new full speed USB device using at91_ohci and address 9 
usb 1-1.2: device not accepting address 9, error -62 
usb 1-1.2: new full speed USB device using at91_ohci and address 10 
usb 1-1.2: device not accepting address 10, error -62 

我在asm-generic/errno.h中 error -62 为: 
#define ETIME 62 /* Timer expired */ 
在Documentation/usb/error-codes.txt 
-ETIME (**) No response packet received within the prescribed 
bus turn-around time. This error may instead be 
reported as -EPROTO or -EILSEQ. 

请各路高手帮我分析一下,到底是什么原因?不胜感激。 
其他的2.6的内核也试过了,也出现同样的问题。

2 个解决方案

#1


兄弟,我的QQ149572748,有空我们交流,我正在做USB驱动程序

#2


这个还需调试
原来碰到过类似的现象:
插u盘可以;
4口的小usb hub,再插u盘,也可以;
一个带硬盘的usb hub 就不行了
--------------最后是调 代码 :好像是一个地方等待 中断响应的延时
改小了 就好了

#1


兄弟,我的QQ149572748,有空我们交流,我正在做USB驱动程序

#2


这个还需调试
原来碰到过类似的现象:
插u盘可以;
4口的小usb hub,再插u盘,也可以;
一个带硬盘的usb hub 就不行了
--------------最后是调 代码 :好像是一个地方等待 中断响应的延时
改小了 就好了