[U-Boot] "usb storage" command issues

Stefan Roese sr at denx.de
Tue Sep 26 17:03:56 UTC 2017


Hi,

I'm currently testing USB on my x86 platform. And noticed, that
the "usb storage" command does not work as expected:

=> usb reset  
resetting USB...
USB0:   Register 7000820 NbrPorts 7
Starting the controller
USB XHCI 1.00
scanning bus 0 for devices... 5 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
=> usb tree
USB device tree:
  1  Hub (5 Gb/s, 0mA)
  |  U-Boot XHCI Host Controller 
  |
  +-2  Mass Storage (480 Mb/s, 224mA)
  |    SanDisk Ultra 4C530001010620110505
  |  
  +-3  Hub (480 Mb/s, 0mA)
    |
    +-4  Hub (480 Mb/s, 100mA)
      |
      +-5  Hub (12 Mb/s, 100mA)
         
=> usb storage
Card did not respond to voltage select!
mmc_init: -95, time 28
No storage devices, perhaps not 'usb start'ed..?


While debugging I found, that usb_stor_info() calls blk_first_device(IF_TYPE_USB, &dev)
which calls uclass_first_device(UCLASS_BLK, devp). With my current DM tree:

=> dm tree
 Class       Probed   Name
----------------------------------------
 root        [ + ]    root_driver
...
 mmc         [ + ]    |   |-- pci_mmc
 blk         [   ]    |   |   `-- pci_mmc.blk
 mmc         [ + ]    |   |-- pci_mmc
 blk         [   ]    |   |   `-- pci_mmc.blk


the first BLK device is a MMC device. With uclass_first_device() its
probe function is called here, which fails in this case. Resulting in
an abort for the loop over all BLK devices.

How should this be handled for the "usb storage" command. Probing
all BLK devices while running this command seems a bit too much.

Any suggestions on how to fix this?

Thanks,
Stefan


More information about the U-Boot mailing list