[U-Boot] am335x: musb: mass storage device issue

Yegor Yefremov yegorslists at googlemail.com
Tue Feb 14 10:46:38 UTC 2017


On Tue, Feb 14, 2017 at 7:57 AM, Stefan Roese <sr at denx.de> wrote:
> Hi Yegor,
>
>
> On 13.02.2017 16:02, Yegor Yefremov wrote:
>>
>> On Mon, Feb 13, 2017 at 3:17 PM, Belisko Marek <marek.belisko at gmail.com>
>> wrote:
>>>
>>> Hi Yegor,
>>>
>>> On Mon, Feb 13, 2017 at 12:57 PM, Yegor Yefremov
>>> <yegorslists at googlemail.com> wrote:
>>>>
>>>>
>>>> My am335x based board doesn't detect USB sticks:
>>>>
>>>> U-Boot 2017.03-rc1 (Feb 13 2017 - 12:46:54 +0100)
>>>>
>>>> CPU  : AM335X-GP rev 2.1
>>>> I2C:   ready
>>>> DRAM:  256 MiB
>>>> NAND:  256 MiB
>>>> MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
>>>> Using default environment
>>>>
>>>> Net:   <ethaddr> not set. Validating first E-fuse MAC
>>>> cpsw
>>>> Hit any key to stop autoboot:  0
>>>> => usb reset
>>>> resetting USB...
>>>> USB0:   scanning bus 0 for devices... 2 USB Device(s) found
>>>>        scanning usb for storage devices... 0 Storage Device(s) found
>>>>
>>>>
>>>> => usb tree
>>>> USB device tree:
>>>>   1  Hub (480 Mb/s, 100mA)
>>>>   |   USB2.0 Hub
>>>>   |
>>>>   +-2  Vendor specific (480 Mb/s, 500mA)
>>>>        Quectel, Incorporated UMTS/HSPA Module
>>>>
>>>> U-Boot finds a hub and a 3g modem attached to it, but the USB drive,
>>>> that is also attached to this hub won't be detected.
>>>
>>>
>>>  maybe stupid reply but did you test on other board or with other usb
>>> device? I can check on BBB in the evening
>>> and post findings.
>>
>>
>> And please provide your u-boot version.
>>
>>>> So far I haven't tried to bisect the issue (have to find a working
>>>> commit including my board), but the same setup is working for 2014.07
>>>> u-boot. Am I the only one or are other am335x based also affected?
>>
>>
>> Bisect result:
>>
>> 2ef117fe4fce4e1af282ac2bbb0be36c41d15e2b is the first bad commit
>> commit 2ef117fe4fce4e1af282ac2bbb0be36c41d15e2b
>> Author: Stefan Roese <sr at denx.de>
>> Date:   Tue Mar 15 13:59:13 2016 +0100
>>
>>     usb: Remove 200 ms delay in usb_hub_port_connect_change()
>>
>>     This patch removes 2 mdelay(200) calls from
>> usb_hub_port_connect_change().
>>     These delays don't seem to be necessary. At least not in my tests.
>> Here
>>     the number for a custom x86 Bay Trail board (not in mainline yet) with
>>     a quite large and complex USB hub infrastructure.
>>
>>     Without this patch:
>>     starting USB...
>>     USB0:   USB EHCI 1.00
>>     scanning bus 0 for devices... 9 USB Device(s) found
>>
>>     time: 28.415 seconds
>>
>>     With this patch:
>>     starting USB...
>>     USB0:   USB EHCI 1.00
>>     scanning bus 0 for devices... 9 USB Device(s) found
>>
>>     time: 24.003 seconds
>>
>>     So ~4.5 seconds of USB scanning time reduction.
>>
>>     Signed-off-by: Stefan Roese <sr at denx.de>
>>     Cc: Simon Glass <sjg at chromium.org>
>>     Acked-by: Hans de Goede <hdegoede at redhat.com>
>>     Tested-by: Stephen Warren <swarren at nvidia.com>
>>     Cc: Marek Vasut <marex at denx.de>
>
>
> Might be that an initial delay is missing for your specific host
> controller. IIRC, we had a similar issue with the SoCPFGA also
> not detecting all USB sticks with my USB scanning patches applied.
> Please take a look at this patch:
>
> 2bf352f0 [usb: dwc2: Add delay to fix the USB detection problem
> on SoCFPGA]
>
> Perhaps you can do some tests with some initial delays as well?

I have tried to increase delays in drivers/usb/musb-new/musb_uboot.c
and add delay in drivers/usb/musb-new/musb_dsps.c->dsps_musb_init(),
but no luck.

@Felipe, @Mugunthan any idea?

Yegor


More information about the U-Boot mailing list