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.

USB PM issues on DM3730 - Softreset

Other Parts Discussed in Thread: DM3730, SYSCONFIG

Basic description

USB power management is unstable while usb pm supported device is connected to usbhost interface. Reading a value of High-Speed USB Host status register after softreset causes memory access violation (the controller does not respond, is in unknown state).

 2. Environment

  • Mistral EVM board rev. G with DM3730 processor module rev. D
  • linux kernel (android) from git://gitorious.org/rowboat/kernel with kernel modules: sierra 1:7:40 and sierra net 3:0

branch: rowboat/rowboat-kernel-2.6.37

commit d52c5bdca59592c374484ccdc5674f777fc535e3

  • Sierra Wireless GSM modem AirPrime SL8082

 3. Detailed description:

 Generally there are three issues:

  • system crash

USB GSM device is connected to usb host port. USB PM is enabled for the device driver enters

suspend/resume sequences. The system crashes randomly while suspend or resume of the device.

The kernel oops message:

Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa064014

...

PC is at omap stop ehc+0x100=0x460

In omap stop ehc function SYSCONFIG SOFTRESET bit is set UHH SYSCONFIG register. Before

this the UHH SYSCONFIG and UHH SYSSTATUS registers are fully accessible. After SYSCON-

FIG SOFTRESET setting, read attempt from UHH SYSCONFIG leads the system to crash.

 

  • losing control over the usb device

omap stop ehc is called because there was timeout error in usb internal control msg (kernel/driver-s/usb/core/message.c) and usb driver decided to restart the controller.

 

  • USB device does not achieve proper power state because its power level is decreased but it is not

possible minimum (this is not fully tested).

 

4. Additional information

  • The SL8082 usb drivers are not placed in kernel tree in these versions but they were tested on PC under linux 3.0 kernel with good result.
  • When debug in USB Host drivers is enabled and redirected to serial console it is very hard to reproduce the problem.
  • USB host controller reset was also provoked without timeout in usb internal control msg, so it is possible that softreset can always cause such errors.
  • Attached _le: kernel crash.txt with full oops message. 6507.kernel_crash.txt