Ticket #166 (closed defect: fixed)

Opened 12 years ago

Last modified 12 years ago

u-boot cdc_acm hot un-plug/replug hang

Reported by: laforge@… Owned by: sean_chiang@…
Priority: high Milestone:
Component: u-boot Version: current svn head
Severity: minor Keywords:
Cc: buglog@… Blocked By:
Blocking: Estimated Completion (week):
HasPatchForReview: PatchReviewResult:


If you use u-boot cdc_acm on the Neo1973, then unplug the USB cable while some
stuff is printed to stdout, and then re-plug the USB cable, it is not working
very reliably.

Sometimes, stdin of u-boot is not working again. Initial debugging shows that

  • the USB control endpoint enumerates cleanly
  • the USB interrupt processing for incoming data (OUT endpoint) works
  • somewhere in usbtty_poll, a data abort was caused and results in endless looping

Change History

comment:1 Changed 12 years ago by sean_chiang@…

  • Owner changed from laforge@… to sean_chiang@…

comment:2 Changed 12 years ago by sean_chiang@…

Below is my expriment:

case 1: stop minicom -> un-plug usb -> re-plug usb -> restart minicom : it's
working correctly.

case 2: when printing, un-plug usb -> stop minicom -> re-plug usb -> restart
minicom : it's working correctly too.

I had tested these two cases more than 20 times. And I didn't see anything
reliably. Did I miss anything?

comment:3 Changed 12 years ago by elrond+bugzilla.openmoko.org@…

BTW: Might this bug be related to #170 ?

comment:4 Changed 12 years ago by laforge@…

  • Status changed from new to assigned

has anyone ever seen this again? There were plenty of fixes in this area,
notably #170. So if nobody thinks this bug is still valid, we can close it.

comment:5 Changed 12 years ago by alphaone@…

  • Status changed from assigned to closed
  • Resolution set to fixed

I just tested this repeatedly with issuing "help", then unplugging the device
and reconnecting through
screen /dev/ttyACM0

It worked every time so far (out of ~15 times) and the output that didn't make
it out in time was printed on a reconnect.
Closing this now.

Note: See TracTickets for help on using tickets.