Hi,

I must admit I'm not a USB or PCI expert, but here is the pb:

First machine:
Athlon 800 Mhz
Abit KT7 RAID mobo (VIA chipset)
USB Controller: CMD Technology Inc USB0670 (rev 6)
kernel 2.4.4

Works perfect & great (used with the Alcatel SpeedTouch USB modem & a USB
mouse).

Second machine
486DX-4 100Mhz
Unknown mobo (United Microelectronics?)
USB Controller: CMD Technology Inc USB0670 (rev 6) [the same card as
previous]
kernel 2.4.4

On this second machine, the first time I insert my USB mouse, the kernel
panic in the OHCI interrupt handler (at the line BUG() in usb-ohci.h, what
is this stupid line which just make a kernel panic?)

So, I rewrite some stuff to handle this error. My conclusion was that the
macro dma_to_td() was used with a value which does not exist in the list
searched.

Next, I recompile & tried again and that gave me (obviously) : 
usb.c: USB device not accepting new address=2 (error=-110).

So, I investigated further and I understand that as soon as a USB
peripheral is inserted, the khubd thread is awaken to initialize the new
device. This initialization code first try to assign a USB addresse to the
device by sending a specific USB control message. 

Normally, with this message is "done", an interrupt is generated and the
ohci->hcca->done_head points to the TD. BUT here is the interesting parts,
this TD does not match ANY of the TD send. 

Questions:
- what is the use of the khubd thread? Why new device are not handled in
hc_interrupt() when (ints & OHCI_INTR_RHSC) is true?

- Is there a PCI stuff I'm missing? I've seen strange message about PCI in
my logs (see at the end of this mail).

- Why invalid value of ohci->hcca->done_head are handled with the macro
BUG()? I see no reason why a driver should trust value from its
"outside" world.

- And why ohci->hcca->done_head is wrong???

- Lots of other USB questions which are unrelated to this one (they will
came in the future :-)).

Logs (on the 486 machine): I change some code to output lots of messages.
I also add a 'correction' to catch invalid ohci->hcca->done_head value. I
added a call to ohci_dump() at the beginning of hc_interrupt(). Else, it's
the standard 2.4.4 kernel.

Benoit.

/proc/cpuinfo:
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 4
model           : 8
model name      : 486 DX/4
stepping        : 3
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme pse
bogomips        : 49.97

/proc/pci:
PCI devices found:
  Bus  0, device  13, function  0:
    Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139 (rev
16).
      IRQ 11.
      Master Capable.  Latency=64.  Min Gnt=32.Max Lat=64.
      I/O at 0xfc00 [0xfcff].
      Non-prefetchable 32 bit memory at 0xffbeef00 [0xffbeefff].
  Bus  0, device  14, function  0:
    USB Controller: CMD Technology Inc USB0670 (rev 6).
      IRQ 10.
      Master Capable.  No bursts.  Min Gnt=2.Max Lat=4.
      Non-prefetchable 32 bit memory at 0xffbef000 [0xffbeffff].
  Bus  0, device  15, function  0:
    VGA compatible controller: Cirrus Logic GD 5430/40 [Alpine] (rev 34).
      Prefetchable 32 bit memory at 0x10000000 [0x10ffffff].
  Bus  0, device  16, function  0:
    Host bridge: United Microelectronics [UMC] UM8881F (rev 1).
  Bus  0, device  18, function  0:
    ISA bridge: United Microelectronics [UMC] UM8886A (rev 13).
  Bus  0, device  18, function  1:
    IDE interface: United Microelectronics [UMC] UM8886BF (rev 13).

/var/log/kern.log:
May 14 02:29:48 routeur kernel: usb-ohci.c: mapping
mem_resource=0xffbef000 at mem_base=0xc2025000 
May 14 02:29:48 routeur kernel: PCI: Setting latency timer of device
00:0e.0 to 64 (was 0) 
May 14 02:29:48 routeur kernel: usb-ohci.c: USB OHCI at membase
0xc2025000, IRQ 10 
May 14 02:29:48 routeur kernel: usb-ohci.c: usb-00:0e.0, CMD Technology
Inc USB0670 
May 14 02:29:48 routeur kernel: usb-ohci.c: HCCA allocated at 0xc08b0000,
hcca_dma=0x8b0000 
May 14 02:29:48 routeur kernel: usb-ohci.c: PCI latency reduced from 64 to
max 4 
May 14 02:29:48 routeur kernel: usb-ohci.c: USB HC reset_hc
usb-00:0e.0: ctrl = 0x40 ; 
May 14 02:29:48 routeur kernel: usb.c: new USB bus registered, assigned
bus number 1 
May 14 02:29:48 routeur kernel: usb-ohci.c: writing ed_controlhead=NULL 
May 14 02:29:48 routeur kernel: usb-ohci.c: hcca_dma=0x8b0000 written to
ohci register 
May 14 02:29:48 routeur kernel: usb.c: kmalloc IF c0e4d3a0, numif 1 
May 14 02:29:48 routeur kernel: usb.c: new device strings: Mfr=0,
Product=2, SerialNumber=1 
May 14 02:29:48 routeur kernel: usb.c: USB device number 1 default
language ID 0x0 
May 14 02:29:48 routeur kernel: Product: USB OHCI Root Hub 
May 14 02:29:48 routeur kernel: SerialNumber: c2025000 
May 14 02:29:48 routeur kernel: hub.c: USB hub found 
May 14 02:29:48 routeur kernel: hub.c: 2 ports detected 
May 14 02:29:48 routeur kernel: hub.c: standalone hub 
May 14 02:29:48 routeur kernel: hub.c: ganged power switching 
May 14 02:29:48 routeur kernel: hub.c: individual port over-current
protection 
May 14 02:29:48 routeur kernel: hub.c: power on to power good time: 510ms 
May 14 02:29:48 routeur kernel: hub.c: hub controller current
requirement: 0mA 
May 14 02:29:48 routeur kernel: hub.c: port removable status: RR 
May 14 02:29:48 routeur kernel: hub.c: local power source is good 
May 14 02:29:48 routeur kernel: hub.c: no over-current condition exists 
May 14 02:29:48 routeur kernel: hub.c: enabling power on all ports 
May 14 02:29:49 routeur kernel: hub.c: port 1 connection change 
May 14 02:29:49 routeur kernel: hub.c: port 1, portstatus 301, change 1,
1.5 Mb/s 
May 14 02:29:49 routeur kernel: usb.c: hub driver claimed interface
c0e4d3a0 
May 14 02:29:49 routeur kernel: usb.c: kusbd: /sbin/hotplug add 1 
May 14 02:29:49 routeur kernel: usb.c: kusbd policy returned 0xfffffffe 
May 14 02:29:49 routeur kernel: usb-ohci.c: === OHCI controller
usb-00:0e.0 state === 
May 14 02:29:49 routeur kernel: usb-ohci.c: HcRevision=0x110 spec 1.0 
May 14 02:29:49 routeur kernel: usb-ohci.c: HcControl=0x0000008f
HCFS=operational IE PLE CBSR=3 
May 14 02:29:49 routeur kernel: usb-ohci.c: HcCommandStatus=0x00000000
SOC=0 
May 14 02:29:49 routeur kernel: usb-ohci.c: HcInterruptStatus: 0x00000064
RHSC FNO SF 
May 14 02:29:49 routeur kernel: usb-ohci.c: HcInterruptEnable: 0x80000013
MIE UE WDH SO 
May 14 02:29:49 routeur kernel: usb-ohci.c: HcInterruptDisable: 0x80000013
MIE UE WDH SO 
May 14 02:29:49 routeur kernel: usb-ohci.c: HcHCCA=0x8b0000
HccaDoneHead=0x0 
May 14 02:29:49 routeur kernel: usb-ohci.c: hcca frame #04a8 
May 14 02:29:49 routeur kernel: usb-ohci.c: roothub.a: ff000a02 POTPGT=255
OCPM NPS NDP=2 
May 14 02:29:49 routeur kernel: usb-ohci.c: roothub.b: 00060000 PPCM=0006
DR=0000 
May 14 02:29:49 routeur kernel: usb-ohci.c: roothub.status: 00000000 
May 14 02:29:49 routeur kernel: usb-ohci.c: roothub.portstatus [0] =
0x00000301 LSDA PPS CCS 
May 14 02:29:49 routeur kernel: usb-ohci.c: roothub.portstatus [1] =
0x00000100 PPS 
May 14 02:29:49 routeur
kernel: usb-ohci.c: ===================================== 
May 14 02:29:50 routeur kernel: hub.c: port 1, portstatus 303, change 10,
1.5 Mb/s 
May 14 02:29:50 routeur kernel: hub.c: USB new device connect on bus1/1,
assigned device number 2 
May 14 02:29:50 routeur kernel: usb-ohci.h: adding td_dma=0xa26000 
May 14 02:29:50 routeur kernel: usb-ohci.h: adding ed_dma=0x1452610 
May 14 02:29:50 routeur kernel: usb-ohci.h: adding td_dma=0xa26030 
May 14 02:29:50 routeur kernel: usb-ohci.h: adding td_dma=0xa26060 
May 14 02:29:50 routeur kernel: usb-ohci.c: ep_link() ed->dma=0x1452610 
May 14 02:29:50 routeur kernel: usb-ohci.c: writing
ed_controlhead=0x1452610 
May 14 02:29:50 routeur kernel: usb-ohci.h: searching for td_dma=0xa26000 
May 14 02:29:50 routeur kernel: usb-ohci.h: searching for td_dma=0xa26030 
May 14 02:29:50 routeur
kernel: usb-ohci.c: hc_interrupt() HccaDoneHead=0xa20000,HcInterruptStatus=0x66 
May 14 02:29:50 routeur kernel: usb-ohci.c: === OHCI controller
usb-00:0e.0 state === 
May 14 02:29:50 routeur kernel: usb-ohci.c: HcRevision=0x110 spec 1.0 
May 14 02:29:50 routeur kernel: usb-ohci.c: HcControl=0x0000009f
HCFS=operational CLE IE PLE CBSR=3 
May 14 02:29:50 routeur kernel: usb-ohci.c: HcCommandStatus=0x00000000
SOC=0 
May 14 02:29:50 routeur kernel: usb-ohci.c: HcInterruptStatus: 0x00000066
RHSC FNO SF WDH 
May 14 02:29:50 routeur kernel: usb-ohci.c: HcInterruptEnable: 0x80000013
MIE UE WDH SO 
May 14 02:29:50 routeur kernel: usb-ohci.c: HcInterruptDisable: 0x80000013
MIE UE WDH SO 
May 14 02:29:50 routeur kernel: usb-ohci.c: HcHCCA=0x8b0000
HccaDoneHead=0xa20000 
May 14 02:29:50 routeur kernel: usb-ohci.c: ed_controlhead 01452610 
May 14 02:29:50 routeur kernel: usb-ohci.c: hcca frame #085c 
May 14 02:29:50 routeur kernel: usb-ohci.c: roothub.a: ff000a02 POTPGT=255
OCPM NPS NDP=2 
May 14 02:29:50 routeur kernel: usb-ohci.c: roothub.b: 00060000 PPCM=0006
DR=0000 
May 14 02:29:50 routeur kernel: usb-ohci.c: roothub.status: 00000000 
May 14 02:29:50 routeur kernel: usb-ohci.c: roothub.portstatus [0] =
0x00000303 LSDA PPS PES CCS 
May 14 02:29:50 routeur kernel: usb-ohci.c: roothub.portstatus [1] =
0x00000100 PPS 
May 14 02:29:50 routeur
kernel: usb-ohci.c: ===================================== 
May 14 02:29:50 routeur
kernel: usb-ohci.c: dl_reverse_done_list() done_head=0xa20000 
May 14 02:29:50 routeur kernel: usb-ohci.h: searching for td_dma=0xa20000 
May 14 02:29:50 routeur kernel: usb-ohci.h: warning, can't find
dma=0xa20000 
May 14 02:29:50 routeur kernel: usb-ohci.c: td_list==NULL 
May 14 02:29:53 routeur kernel: usb_control/bulk_msg: timeout 
May 14 02:29:53 routeur kernel: usb-ohci.c: UNLINK URB:[140e]
dev: 0,ep: 0-O,type:CTRL,flags:   0,len:0/0,stat:
-115(ffffff8d) 
May 14 02:29:53 routeur
kernel: usb-ohci.c: hc_interrupt() HccaDoneHead=0x0,HcInterruptStatus=0x4 
May 14 02:29:53 routeur kernel: usb-ohci.c: === OHCI controller
usb-00:0e.0 state === 
May 14 02:29:53 routeur kernel: usb-ohci.c: HcRevision=0x110 spec 1.0 
May 14 02:29:53 routeur kernel: usb-ohci.c: HcControl=0x0000008f
HCFS=operational IE PLE CBSR=3 
May 14 02:29:53 routeur kernel: usb-ohci.c: HcCommandStatus=0x00000000
SOC=0 
May 14 02:29:53 routeur kernel: usb-ohci.c: HcInterruptStatus: 0x00000004
SF 
May 14 02:29:53 routeur kernel: usb-ohci.c: HcInterruptEnable: 0x80000017
MIE UE SF WDH SO 
May 14 02:29:53 routeur kernel: usb-ohci.c: HcInterruptDisable: 0x80000017
MIE UE SF WDH SO 
May 14 02:29:53 routeur kernel: usb-ohci.c: HcHCCA=0x8b0000
HccaDoneHead=0x0 
May 14 02:29:53 routeur kernel: usb-ohci.c: ed_controlhead 01452610 
May 14 02:29:53 routeur kernel: usb-ohci.c: hcca frame #1411 
May 14 02:29:53 routeur kernel: usb-ohci.c: roothub.a: ff000a02 POTPGT=255
OCPM NPS NDP=2 
May 14 02:29:53 routeur kernel: usb-ohci.c: roothub.b: 00060000 PPCM=0006
DR=0000 
May 14 02:29:53 routeur kernel: usb-ohci.c: roothub.status: 00000000 
May 14 02:29:53 routeur kernel: usb-ohci.c: roothub.portstatus [0] =
0x00000303 LSDA PPS PES CCS 
May 14 02:29:53 routeur kernel: usb-ohci.c: roothub.portstatus [1] =
0x00000100 PPS 
May 14 02:29:53 routeur
kernel: usb-ohci.c: ===================================== 
May 14 02:29:53 routeur kernel: usb-ohci.c: unlink URB timeout 
May 14 02:29:53 routeur kernel: usb.c: USB device not accepting new
address=2 (error=-110) 
May 14 02:29:53 routeur kernel: hub.c: port 1, portstatus 303, change 10,
1.5 Mb/s 
May 14 02:29:53 routeur kernel: hub.c: USB new device connect on bus1/1,
assigned device number 3 
May 14 02:29:53 routeur kernel: usb-ohci.h: adding td_dma=0xa26090 
May 14 02:29:53 routeur kernel: usb-ohci.h: adding ed_dma=0x8fb000 
May 14 02:29:53 routeur kernel: usb-ohci.h: adding td_dma=0xa260c0 
May 14 02:29:53 routeur kernel: usb-ohci.h: adding td_dma=0xa260f0 
May 14 02:29:53 routeur kernel: usb-ohci.c: ep_link() ed->dma=0x8fb000 
May 14 02:29:53 routeur kernel: usb-ohci.h: searching for td_dma=0xa26090 
May 14 02:29:53 routeur kernel: usb-ohci.h: searching for td_dma=0xa260c0 
May 14 02:29:56 routeur kernel: usb_control/bulk_msg: timeout 
May 14 02:29:56 routeur kernel: usb-ohci.c: UNLINK URB:[20fb]
dev: 0,ep: 0-O,type:CTRL,flags:   0,len:0/0,stat:
-115(ffffff8d) 
May 14 02:29:56 routeur
kernel: usb-ohci.c: hc_interrupt() HccaDoneHead=0x0,HcInterruptStatus=0x44 
May 14 02:29:56 routeur kernel: usb-ohci.c: === OHCI controller
usb-00:0e.0 state === 
May 14 02:29:56 routeur kernel: usb-ohci.c: HcRevision=0x110 spec 1.0 
May 14 02:29:56 routeur kernel: usb-ohci.c: HcControl=0x0000008f
HCFS=operational IE PLE CBSR=3 
May 14 02:29:56 routeur kernel: usb-ohci.c: HcCommandStatus=0x00000002
SOC=0 CLF 
May 14 02:29:56 routeur kernel: usb-ohci.c: HcInterruptStatus: 0x00000044
RHSC SF 
May 14 02:29:56 routeur kernel: usb-ohci.c: HcInterruptEnable: 0x80000017
MIE UE SF WDH SO 
May 14 02:29:56 routeur kernel: usb-ohci.c: HcInterruptDisable: 0x80000017
MIE UE SF WDH SO 
May 14 02:29:56 routeur kernel: usb-ohci.c: HcHCCA=0x8b0000
HccaDoneHead=0x0 
May 14 02:29:56 routeur kernel: usb-ohci.c: ed_controlhead 01452610 
May 14 02:29:56 routeur kernel: usb-ohci.c: hcca frame #20fd 
May 14 02:29:56 routeur kernel: usb-ohci.c: roothub.a: ff000a02 POTPGT=255
OCPM NPS NDP=2 
May 14 02:29:56 routeur kernel: usb-ohci.c: roothub.b: 00060000 PPCM=0006
DR=0000 
May 14 02:29:56 routeur kernel: usb-ohci.c: roothub.status: 00000000 
May 14 02:29:56 routeur kernel: usb-ohci.c: roothub.portstatus [0] =
0x00000303 LSDA PPS PES CCS 
May 14 02:29:56 routeur kernel: usb-ohci.c: roothub.portstatus [1] =
0x00000100 PPS 
May 14 02:29:56 routeur
kernel: usb-ohci.c: ===================================== 
May 14 02:29:56 routeur kernel: usb-ohci.c: unlink URB timeout 
May 14 02:29:56 routeur kernel: usb.c: USB device not accepting new
address=3 (error=-110) 





_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to