USB flash not working anymore

Peter Radcliffe pir at pir.net
Thu Dec 30 18:31:14 PST 2004


Julian Elischer <julian at elischer.org> probably said:
> do you have access to anything with an EHCI or OHCI controller for 
> comparison with that device?

My (now usually windows only) amd64 desktop box has ohci, but it doesn't
have any ethernet devices that 4 has support for (5 does, apparently)
so I can't easily give direct logs.


Booting i386 FreeBSD from an old partition taken to 4-STABLE from
earlier this month shows that the SanDisk CF redaer works fine with
mtools to read from (when I try to write to it I get lots of umass0:
BBB reset failed, STALLED) and the Iomega micro mini thumbdrive also
works fine with mtools for read/write.

The crucial gizmo does not work at all, I get a umass0 message, a
disconnection and then detatch message and then another "umass0:
Crucial Gizmo, rev 2.00/0.01, addr" message and nothing else, no da0;

  can't re-use a leaf (minimum_cmd_size)!
  umass0: at uhub1 port 4 (addr 2) disconnected
  (da0:umass-sim0:0:0:0): lost device
  (da0:umass-sim0:0:0:0): removing device entry
  umass0: detached
  umass0: Crucial Gizmo, rev 2.00/0.01, addr 2
  umass0: at uhub1 port 4 (addr 2) disconnected
  umass0: detached
  umass0: Crucial Gizmo, rev 2.00/0.01, addr 2

Shortly after removing the Gizmo the machine page faulted in kernel
mode and crashed.

After enabling crashdumps I tried this again and the gizmo as the
first device worked;

  umass0: Crucial Gizmo, rev 2.00/0.01, addr 2
  umass0: at uhub1 port 4 (addr 2) disconnected
  da0 at umass-sim0 bus 0 target 0 lun 0
  da0: <Crucial Gizmo 1.00> Fixed Direct Access SCSI-CCS device 
  da0: 650KB/s transfers
  da0: 123MB (251904 512 byte sectors: 64H 32S/T 123C)
  (da0:umass-sim0:0:0:0): lost device
  (da0:umass-sim0:0:0:0): removing device entry
  umass0: detached
  umass0: Crucial Gizmo, rev 2.00/0.01, addr 2
  da0 at umass-sim0 bus 0 target 0 lun 0
  da0: <Crucial Gizmo 1.00> Fixed Direct Access SCSI-CCS device 
  da0: 650KB/s transfers
  da0: 123MB (251904 512 byte sectors: 64H 32S/T 123C)
  can't re-use a leaf (minimum_cmd_size)!

then I got a panic: ohci_abort_xfer: not in process context and a very
big crashdump;

  IdlePTD at physical address 0x003ef000
  initial pcb at physical address 0x00346b20
  panicstr: ohci_abort_xfer: not in process context
  panic messages:
  ---
  panic: ohci_abort_xfer: not in process context
  syncing disks...
  done
  Uptime: 4m35s
  (kgdb) bt
  #0  0xc018b9aa in dumpsys ()
  #1  0xc018b77b in boot ()
  #2  0xc018bba0 in poweroff_wait ()
  #3  0xc0246760 in ohci_abort_xfer ()
  #4  0xc024641f in ohci_timeout_task ()
  #5  0xc024a101 in usb_task_thread ()

Further down the rabbit hole, I build a kernel.debug and try to
copy things over to a flash drive to get them to another machine;

  umass0: SanDisk Corporation ImageMate CompactFlash USB, rev 1.10/0.09, addr 2
  umass0: Get Max Lun not supported (STALLED)
  da0 at umass-sim0 bus 0 target 0 lun 0
  da0: <SanDisk ImageMate II 1.30> Removable Direct Access SCSI-2 device 
  da0: 650KB/s transfers
  da0: 489MB (1001953 512 byte sectors: 64H 32S/T 489C)
  umass0: BBB reset failed, STALLED
  umass0: Invalid CSW: tag 96 should be 97
  umass0: BBB reset failed, STALLED
  umass0: Invalid CSW: tag 97 should be 98
[lots of these pairs]
  umass0: Invalid CSW: tag 150 should be 151
  umass0: BBB reset failed, STALLED
  (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x4, scsi
    status == 0x0
  umass0: Invalid CSW: tag 151 should be 152
  umass0: BBB reset failed, STALLED
  umass0: BBB reset failed, STALLED
  umass0: BBB reset failed, STALLED
  umass0: Invalid CSW: tag 234 should be 235
  umass0: BBB reset failed, STALLED
[lots more of these pairs]
  umass0: Invalid CSW: tag 235 should be 236
  umass0: BBB reset failed, STALLED
  umass0: BBB reset failed, STALLED
  (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x4, scsi
    status == 0x0
  umass0: Invalid CSW: tag 248 should be 250
  umass0: BBB reset failed, STALLED
  umass0: BBB reset failed, STALLED
  umass0: BBB reset failed, STALLED

This didn't crash the machine, at least.

Trying to reprovoke the crash it seems to only fail with a panic from
one pair of usb ports, the rest work better. I get another page fault
in kernel mode and it dumps;

  IdlePTD at physical address 0x003ec000
  initial pcb at physical address 0x00346b20
  panicstr: page fault
  panic messages:
  ---
  Fatal trap 12: page fault while in kernel mode
  fault virtual address   = 0x4c
  fault code              = supervisor read, page not present
  instruction pointer     = 0x8:0xc024b23e
  stack pointer           = 0x10:0xe1d91f30
  frame pointer           = 0x10:0xe1d91f44
  code segment            = base 0x0, limit 0xfffff, type 0x1b
                          = DPL 0, pres 1, def32 1, gran 1
  processor eflags        = interrupt enabled, resume, IOPL = 0
  current process         = 4 (usbtask)
  interrupt mask          = bio
  trap number             = 12
  panic: page fault
  syncing disks... 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
  giving up on 1 buffers
  Uptime: 7m9s

  (kgdb) bt
  #0  0xc018b9aa in dumpsys ()
  #1  0xc018b77b in boot ()
  #2  0xc018bba0 in poweroff_wait ()
  #3  0xc02a5f7a in trap_fatal ()
  #4  0xc02a5c4d in trap_pfault ()
  #5  0xc02a5837 in trap ()
  #6  0xc024b23e in usb_transfer_complete ()
  #7  0xc0246817 in ohci_abort_xfer ()
  #8  0xc024641f in ohci_timeout_task ()
  #9  0xc024a101 in usb_task_thread ()

That help any ?

P.

-- 
pir



More information about the freebsd-usb mailing list