This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335X 的USB串口问题



在AM335x移植EC20 4G模块驱动, 移植 完USB串口,插入USB 4G模块可以正常工作,但是拔出USB,就会在控制台不停的打印

option: option_instat_callback: error-1 -71    最后死机重启  ,打开内核的调试 dbg ,打印信息

musb-hdrc musb-hdrc.1: ... next ep2 RX urb df38e7c0
musb-hdrc musb-hdrc.1: qh df2ddac0 urb df38e7c0 dev3 ep7in-intr, hw_ep 2, df388a80/10
musb-hdrc musb-hdrc.1: <-- hw2 urb df38e7c0 spd3 dev3 ep7in h_addr02 h_port00 bytes 10
musb-hdrc musb-hdrc.1: RXCSR2 := 0020
musb-hdrc musb-hdrc.1: <== hw 3 rxcsr 1204, urb actual 0 (+dma 0)
musb-hdrc musb-hdrc.1: end 3 RX proto error
musb-hdrc musb-hdrc.1: complete df384ac0 IntCallback+0x0/0x2f8 (-71), dev3 ep9in, 0/8
musb-hdrc musb-hdrc.1: <== hw 10 rxcsr 1003, urb actual 0 (+dma 0)
musb-hdrc musb-hdrc.1: RX10 count 1, buffer df772c40 len 0/1
musb-hdrc musb-hdrc.1: read last packet
musb-hdrc musb-hdrc.1: <== hw 12 rxcsr 1204, urb actual 0 (+dma 0)
musb-hdrc musb-hdrc.1: end 12 RX proto error
musb-hdrc musb-hdrc.1: complete df3063c0 option_instat_callback+0x0/0x1a4 (-71), dev3 ep5in, 0/10
drivers/usb/serial/option.c: option_instat_callback
drivers/usb/serial/option.c: option_instat_callback: urb df3063c0 port de03f000 has data df2e1c80
option: option_instat_callback: error -71

请大神帮忙看一下,这是什么问题?谢谢

平台:TI AM3354     tq335x开发板
OS:ubuntu 12.04 arm
内核:3.2.0

  • 感觉4G MODULE驱动可能有问题,相同的驱动放在PC上跑正常吗?

  • 这个是内核的usb_serial 驱动啊,我还没添加4G MODULE的驱动,只是添加了 usb设备的pid和vid

  • 当拔下USB后,一直会产生触发  ti81xx_interrupt  中断函数

    musb-hdrc musb-hdrc.1: ti81xx_interrupt
    musb-hdrc musb-hdrc.1: usbintr (0) epintr(18040000)
    musb-hdrc musb-hdrc.1: ** IRQ1 host usb0000 tx0000 rx1804
    musb-hdrc musb-hdrc.1: ** IRQ host usb0000 tx0000 rx1804
    musb-hdrc musb-hdrc.1: <== hw 2 rxcsr 1204, urb actual 0 (+dma 0)
    musb-hdrc musb-hdrc.1: end 2 RX proto error
    musb-hdrc musb-hdrc.1: complete df38b840 option_instat_callback+0x0/0x1a4 (-71), dev3 ep7in, 0/10
    drivers/usb/serial/option.c: option_instat_callback
    drivers/usb/serial/option.c: option_instat_callback: urb df38b840 port df394c00 has data df2e0bc0
    option: option_instat_callback: error-1 -71
    musb-hdrc musb-hdrc.1: ... next ep2 RX urb df38b840
    musb-hdrc musb-hdrc.1: qh df2c7cc0 urb df38b840 dev3 ep7in-intr, hw_ep 2, df389b00/10
    musb-hdrc musb-hdrc.1: <-- hw2 urb df38b840 spd3 dev3 ep7in h_addr02 h_port00 bytes 10
    musb-hdrc musb-hdrc.1: RXCSR2 := 0020
    musb-hdrc musb-hdrc.1: <== hw 11 rxcsr 1004, urb actual 0 (+dma 0)
    musb-hdrc musb-hdrc.1: end 11 RX proto error
    musb-hdrc musb-hdrc.1: complete df2dddc0 option_instat_callback+0x0/0x1a4 (-71), dev3 ep3in, 0/10
    drivers/usb/serial/option.c: option_instat_callback
    drivers/usb/serial/option.c: option_instat_callback: urb df2dddc0 port df2cc400 has data df2e0d40
    option: option_instat_callback: error-1 -71
    musb-hdrc musb-hdrc.1: ... next ep11 RX urb df2dddc0
    musb-hdrc musb-hdrc.1: qh df2d4c00 urb df2dddc0 dev3 ep3in-intr, hw_ep 11, df3a5f40/10
    musb-hdrc musb-hdrc.1: <-- hw11 urb df2dddc0 spd3 dev3 ep3in h_addr02 h_port00 bytes 10
    musb-hdrc musb-hdrc.1: RXCSR11 := 0020
    musb-hdrc musb-hdrc.1: <== hw 12 rxcsr 1204, urb actual 0 (+dma 0)
    musb-hdrc musb-hdrc.1: end 12 RX proto error
    musb-hdrc musb-hdrc.1: complete df2dd3c0 option_instat_callback+0x0/0x1a4 (-71), dev3 ep5in, 0/10
    drivers/usb/serial/option.c: option_instat_callback
    drivers/usb/serial/option.c: option_instat_callback: urb df2dd3c0 port df2cc000 has data df2e0b00
    option: option_instat_callback: error-1 -71
    musb-hdrc musb-hdrc.1: ... next ep12 RX urb df2dd3c0
    musb-hdrc musb-hdrc.1: qh df2d4bc0 urb df2dd3c0 dev3 ep5in-intr, hw_ep 12, df3a5540/10
    musb-hdrc musb-hdrc.1: <-- hw12 urb df2dd3c0 spd3 dev3 ep5in h_addr02 h_port00 bytes 10
    musb-hdrc musb-hdrc.1: RXCSR12 := 0020
    musb-hdrc musb-hdrc.1: ti81xx_interrupt
    musb-hdrc musb-hdrc.1: usbintr (0) epintr(1c040000)
    musb-hdrc musb-hdrc.1: ** IRQ1 host usb0000 tx0000 rx1c04
    musb-hdrc musb-hdrc.1: ** IRQ host usb0000 tx0000 rx1c04
    musb-hdrc musb-hdrc.1: <== hw 2 rxcsr 0004, urb actual 0 (+dma 0)
    musb-hdrc musb-hdrc.1: end 2 RX proto error
    musb-hdrc musb-hdrc.1: complete df38b840 option_instat_callback+0x0/0x1a4 (-71), dev3 ep7in, 0/10
    drivers/usb/serial/option.c: option_instat_callback
    drivers/usb/serial/option.c: option_instat_callback: urb df38b840 port df394c00 has data df2e0bc0
    option: option_instat_callback: error-1 -71
    musb-hdrc musb-hdrc.1: ... next ep2 RX urb df38b840
    musb-hdrc musb-hdrc.1: qh df2c7cc0 urb df38b840 dev3 ep7in-intr, hw_ep 2, df389b00/10
    musb-hdrc musb-hdrc.1: <-- hw2 urb df38b840 spd3 dev3 ep7in h_addr02 h_port00 bytes 10
    musb-hdrc musb-hdrc.1: RXCSR2 := 0020
    musb-hdrc musb-hdrc.1: <== hw 10 rxcsr 1003, urb actual 0 (+dma 0)
    musb-hdrc musb-hdrc.1: RX10 count 1, buffer df772c40 len 0/1
    musb-hdrc musb-hdrc.1: read last packet
    musb-hdrc musb-hdrc.1: <== hw 11 rxcsr 0004, urb actual 0 (+dma 0)
    musb-hdrc musb-hdrc.1: end 11 RX proto error
    musb-hdrc musb-hdrc.1: complete df2dddc0 option_instat_callback+0x0/0x1a4 (-71), dev3 ep3in, 0/10
    drivers/usb/serial/option.c: option_instat_callback
    drivers/usb/serial/option.c: option_instat_callback: urb df2dddc0 port df2cc400 has data df2e0d40
    option: option_instat_callback: error-1 -71
    musb-hdrc musb-hdrc.1: ... next ep11 RX urb df2dddc0

  • 麻烦问一下这个问题怎么解决了?谁有好的解决办法吗
  • 请问你使用的是那个版本的SDK?