[U-Boot] "usb reset" issue with some pen drives which work well in Linux/Windows

Hello, I was trying to add usb support to u-boot for my Arm cortex-A9 processor based board. I am using "U-Boot 2009.08".
I have tested the usb support (reset, fatls, fatload to boot linux etc) with the following devices and its working fine. 1. Western Digital "My Book" - Self powered USB HD 2. Western Digital "My Passport" - Bus powered USB HD 3. Transcend 4GB Pen drive - 2 makes
However one issue still remains. It is not working with some usb pen drives (which works with Linux and windows). I have done the testing on 1. Dane-Elec 2 GB Pen drive 2. nxp 256 MB pen drive
It seems these are some non-standard usb devices. With these devices uboot-usb is able to detect it, however during the mass storage scan, reset is getting failed (getting stall) and the following message we are getting: "scanning bus for storage devices... 0 Storage Device(s) found"
Check the file - common/usb_storage.c. Function- usb_stor_BBB_reset : USB_STOR_PRINTF("RESET:stall\n");
I googled it however have not come across any fix so far.
Then I took the latest u-boot i.e. u-boot-2010.09 and back ported the usb stack. With that the "usb reset" is a success and it is able to detect it as a mass storage device. Commands like "usb storage", "usb tree" etc showing proper information about the pen driver. However File System commands like "fatls" is not working.
For USB support I have added the folling config stuffs to my file in include/configs #define CONFIG_CMD_USB #define CONFIG_USB_STORAGE #define CONFIG_USB_EHCI #define CONFIG_USB_EHCI_PNX84XX --> My usb config #define CONFIG_EHCI_HCD_INIT_AFTER_RESET #define CONFIG_SUPPORT_VFAT
Is this a know issue or I am doing something wrong. Please help me in resolving this issue.
Regards Debashish Rath Trident Microsystems

Dear Debashish Rath,
In message 24A35C16137FE049838D189639DD567F083D4BBC@eu-exh-02.EU.TRID.COM you wrote:
I was trying to add usb support to u-boot for my Arm cortex-A9 processor ba= sed board. I am using "U-Boot 2009.08".
Before trying anything else, please update to current code and re-run your tests.
Best regards,
Wolfgang Denk

Dear Mr. Wolfgang, I found the issue. In usb_stor_get_info function of common/usb_storage.c I add the following: (dev->descriptor.idVendor == 0x0204 && dev->descriptor.idProduct == 0x6025)
to skip the ss->transport_reset(ss);. This I took out from the linux kernel code.
Now its working for me.
Regards Debashish
-----Original Message----- From: Wolfgang Denk [mailto:wd@denx.de] Sent: Wednesday, November 24, 2010 9:56 PM To: Debashish Rath Cc: u-boot@lists.denx.de Subject: Re: [U-Boot] "usb reset" issue with some pen drives which work well in Linux/Windows
Dear Debashish Rath,
In message 24A35C16137FE049838D189639DD567F083D4BBC@eu-exh-02.EU.TRID.COM you wrote:
I was trying to add usb support to u-boot for my Arm cortex-A9 processor ba= sed board. I am using "U-Boot 2009.08".
Before trying anything else, please update to current code and re-run your tests.
Best regards,
Wolfgang Denk
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de "If you'll excuse me a minute, I'm going to have a cup of coffee." - broadcast from Apollo 11's LEM, "Eagle", to Johnson Space Center, Houston July 20, 1969, 7:27 P.M.

Dear Debashish Rath,
In message 24A35C16137FE049838D189639DD567F0846F87C@eu-exh-02.EU.TRID.COM you wrote:
I found the issue. In usb_stor_get_info function of common/usb_storage.c I add the following: (dev->descriptor.idVendor =3D=3D 0x0204 && dev->descriptor.idProduct =3D=3D 0x6025)
to skip the ss->transport_reset(ss);. This I took out from the linux kernel= code.
Now its working for me.
Congratulations. Can you now please submit this change as a proper patch so others can benefit from it, too?
Please see here for help: http://www.denx.de/wiki/U-Boot/Patches
Best regards,
Wolfgang Denk

Dear Mr. Wolfgang, Please find the patch for the same. This is ok or I have to prepare a different mail and send the patch as an attachment. Regards Debashish Rath
--------------------------PATCH START--------------
diff -Naur u-boot-2010.09/common/usb_storage.c u-boot-2010.09_usb_ms_reset/common/usb_storage.c --- u-boot-2010.09/common/usb_storage.c 2010-09-29 02:50:55.000000000 +0530 +++ u-boot-2010.09_usb_ms_reset/common/usb_storage.c 2010-11-29 17:16:01.825110000 +0530 @@ -1335,6 +1335,13 @@ */ (dev->descriptor.idVendor == 0x0781 && dev->descriptor.idProduct == 0x5406) + || + /* + * Standard Disk Drives + * USB Flash Memory + */ + (dev->descriptor.idVendor == 0x0204 && + dev->descriptor.idProduct == 0x6025) ) USB_STOR_PRINTF("usb_stor_get_info: skipping RESET..\n"); else
------------------------PATCH END-----------------------------
-----Original Message----- From: Wolfgang Denk [mailto:wd@denx.de] Sent: Monday, November 29, 2010 5:02 PM To: Debashish Rath Cc: u-boot@lists.denx.de Subject: Re: [U-Boot] "usb reset" issue with some pen drives which work well in Linux/Windows
Dear Debashish Rath,
In message 24A35C16137FE049838D189639DD567F0846F87C@eu-exh-02.EU.TRID.COM you wrote:
I found the issue. In usb_stor_get_info function of common/usb_storage.c I add the following: (dev->descriptor.idVendor =3D=3D 0x0204 && dev->descriptor.idProduct =3D=3D 0x6025)
to skip the ss->transport_reset(ss);. This I took out from the linux kernel= code.
Now its working for me.
Congratulations. Can you now please submit this change as a proper patch so others can benefit from it, too?
Please see here for help: http://www.denx.de/wiki/U-Boot/Patches
Best regards,
Wolfgang Denk
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de Microsoft Multitasking: several applications can crash at the same time.

Hi,
2010/11/29 Debashish Rath Debashish.Rath@tridentmicro.com:
Dear Mr. Wolfgang, Please find the patch for the same. This is ok or I have to prepare a different mail and send the patch as an attachment.
No, please not post it as attachment.
Regards Debashish Rath
--------------------------PATCH START--------------
Missing proper patch description. Missing Signed-off-by.
Please fix.
As Wolfgang already suggested, please see http://www.denx.de/wiki/U-Boot/Patches for how to post patches.
Kind regards,
Remy
participants (3)
-
Debashish Rath
-
Remy Bohmer
-
Wolfgang Denk