
Hi,
We have problems reading/writing from/to a USB NAND flash having a capacity of 512 MB. What we dicovered was: up to a capacity of 128 MB, the operations looked 'koche', thereafter, the system hanged. Our hardware setup are as follows: (1) a MPC8544E CPU; (2) a ISP 1564 PCI-USB 2.0 Host Controller; (3) a ST72681 Flash Driver Controller; and (4) a 512 MB Nand flash.
We also understand that support of the OHCI driver in U-boot is only limited to support of "Mass Storage Device" class device, and rapid reading and writing could post a potential problem. We deliberately slow down the read/write traffic in an attempt to give some breathing rooms to the the driver (and possibly to the controller). Unfortunately, our endeavors, thus far, have only limited success. We would appreciate any comments that could help us to dig our way out of this hole. Thank you.
Regards,
Kow9loon

kow9loon easter8@hotmail.com writes:
We have problems reading/writing from/to a USB NAND flash having a capacity of 512 MB. What we dicovered was: up to a capacity of 128 MB, the operations looked 'koche', thereafter, the system hanged. Our hardware setup are as
Where does it hang?
follows: (1) a MPC8544E CPU; (2) a ISP 1564 PCI-USB 2.0 Host Controller; (3) a ST72681 Flash Driver Controller; and (4) a 512 MB Nand flash.
We also understand that support of the OHCI driver in U-boot is only limited to support of "Mass Storage Device" class device, and rapid reading and writing could post a potential problem. We deliberately slow down the read/write traffic in an attempt to give some breathing rooms to the the
Some so called "crappy" USB sticks are known to have some timing problems and require additional delays, but so far no real fix has been found. Search the archives for Rodolfos "crappy Usbkeys" patch. Does this fix solve you problem?
Regards
Markus
-- DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk Office: Kirchenstr. 5, D-82194 Groebenzell, Germany

Hi Markus,
At this point, we have not yet identified the location of the driver where it gets hung. Just everything got frozen once the 128 MB mark was reached. By the way, where could I get hold of the patch from Rodolfos? I did a serach and followed the link provided by Rodolfos, but the link when NOWHERE. Did Rodolfos submitted his patches to be incorporated to the U-boot trunk? If he did, where could I get hold of his patches such that I could better understand it and try it out? Thank you in advance for your help.
Regards,
Kow9loon
Markus Klotzbücher-2 wrote:
kow9loon easter8@hotmail.com writes:
We have problems reading/writing from/to a USB NAND flash having a capacity of 512 MB. What we dicovered was: up to a capacity of 128 MB, the operations looked 'koche', thereafter, the system hanged. Our hardware setup are as
Where does it hang?
follows: (1) a MPC8544E CPU; (2) a ISP 1564 PCI-USB 2.0 Host Controller; (3) a ST72681 Flash Driver Controller; and (4) a 512 MB Nand flash.
We also understand that support of the OHCI driver in U-boot is only limited to support of "Mass Storage Device" class device, and rapid reading and writing could post a potential problem. We deliberately slow down the read/write traffic in an attempt to give some breathing rooms to the the
Some so called "crappy" USB sticks are known to have some timing problems and require additional delays, but so far no real fix has been found. Search the archives for Rodolfos "crappy Usbkeys" patch. Does this fix solve you problem?
Regards
Markus
-- DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users

On Thu, Apr 19, 2007 at 10:28:55AM -0700, kow9loon wrote:
At this point, we have not yet identified the location of the driver where it gets hung. Just everything got frozen once the 128 MB mark was reached.
My problem was different one. I _never_ got my board frozen due USB activity.
By the way, where could I get hold of the patch from Rodolfos? I did a serach and followed the link provided by Rodolfos, but the link when NOWHERE. Did Rodolfos submitted his patches to be incorporated to the U-boot trunk? If he did, where could I get hold of his patches such that I could better understand it and try it out? Thank you in advance for your help.
Here my patches:
commit a8c7af8c768d1ac657286b97952eb1e66b2dd2e0 Author: Rodolfo Giometti giometti@linux.it Date: Fri Mar 30 16:33:00 2007 +0200
USB: (Another) delay for crappy USB keys.
Some USB keys are slow in giving back an answer when the Root HUB enables power lines.
Signed-off-by: Rodolfo Giometti giometti@linux.it
diff --git a/drivers/usb_ohci.c b/drivers/usb_ohci.c index c5e4c38..f381c40 100644 --- a/drivers/usb_ohci.c +++ b/drivers/usb_ohci.c @@ -1178,7 +1178,9 @@ pkt_print(dev, pipe, buffer, transfer_len, cmd, "SUB(rh)", usb_pipein(pipe)); WR_RH_PORTSTAT (RH_PS_PRS); OK (0); case (RH_PORT_POWER): - WR_RH_PORTSTAT (RH_PS_PPS ); OK (0); + WR_RH_PORTSTAT (RH_PS_PPS ); + wait_ms(100); + OK (0); case (RH_PORT_ENABLE): /* BUG IN HUP CODE *********/ if (RD_RH_PORTSTAT & RH_PS_CCS) WR_RH_PORTSTAT (RH_PS_PES );
---
commit 22bd6ed0e4b31a0d1060436893d7d03c6eb203fc Author: Rodolfo Giometti giometti@linux.it Date: Tue Mar 6 11:32:04 2007 +0100
USB: Delay for crappy USB keys.
Signed-off-by: Rodolfo Giometti giometti@linux.it
diff --git a/common/usb.c b/common/usb.c index 0857494..087a65f 100644 --- a/common/usb.c +++ b/common/usb.c @@ -61,7 +61,7 @@ #ifdef USB_DEBUG #define USB_PRINTF(fmt,args...) printf (fmt ,##args) #else -#define USB_PRINTF(fmt,args...) +#define USB_PRINTF(fmt,args...) wait_ms(1) /* for crappy USB keys... */ #endif
#define USB_BUFSIZ 512
---
Ciao,
Rodolfo

In message 20070420134935.GB4619@enneenne.com you wrote:
Here my patches:
Thanks a lot.
Markus, I guess you will take care of that?
diff --git a/common/usb.c b/common/usb.c index 0857494..087a65f 100644 --- a/common/usb.c +++ b/common/usb.c @@ -61,7 +61,7 @@ #ifdef USB_DEBUG #define USB_PRINTF(fmt,args...) printf (fmt ,##args) #else -#define USB_PRINTF(fmt,args...) +#define USB_PRINTF(fmt,args...) wait_ms(1) /* for crappy USB keys... */ #endif
Arghhh. But this one is definitely not ripe for mainstream yet.
Please clean this up.
Best regards,
Wolfgang Denk

On Fri, Apr 20, 2007 at 03:56:01PM +0200, Wolfgang Denk wrote:
diff --git a/common/usb.c b/common/usb.c index 0857494..087a65f 100644 --- a/common/usb.c +++ b/common/usb.c @@ -61,7 +61,7 @@ #ifdef USB_DEBUG #define USB_PRINTF(fmt,args...) printf (fmt ,##args) #else -#define USB_PRINTF(fmt,args...) +#define USB_PRINTF(fmt,args...) wait_ms(1) /* for crappy USB keys... */ #endif
Arghhh. But this one is definitely not ripe for mainstream yet.
Eheheheh, you already told me about this dirty trick! :P
Please clean this up.
I see, but currently I'm very busy for that! Please keep this «work around» in some TODO list until I (or someone else) can find some time to definitely resolve it.
Ciao,
Rodolfo

Hi Rodolfo,
Rodolfo Giometti giometti@enneenne.com writes:
On Fri, Apr 20, 2007 at 03:56:01PM +0200, Wolfgang Denk wrote:
Please clean this up.
I see, but currently I'm very busy for that! Please keep this «work around» in some TODO list until I (or someone else) can find some time to definitely resolve it.
Yes, I understood these patches as work in progress. I can apply your first patch if you want, but does it make sense without the second?
Regards
Markus Klotzbuecher
-- DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk Office: Kirchenstr. 5, D-82194 Groebenzell, Germany

On Mon, Apr 23, 2007 at 08:48:38AM +0200, Markus Klotzbücher wrote:
Yes, I understood these patches as work in progress. I can apply your first patch if you want, but does it make sense without the second?
Yes, since they resolve two different problems. It could happen that a key is recognized by the USB host as USB device but not as mass storage and it could happen that a key is not recognized as USB device at all.
Ciao,
Rodolfo

Hi Rodolfo,
Rodolfo Giometti giometti@enneenne.com writes:
On Thu, Apr 19, 2007 at 10:28:55AM -0700, kow9loon wrote:
At this point, we have not yet identified the location of the driver where it gets hung. Just everything got frozen once the 128 MB mark was reached.
My problem was different one. I _never_ got my board frozen due USB activity.
Yes, I know. But I figured it could be worth trying nevertheless.
Regards
Markus Klotzbuecher
-- DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk Office: Kirchenstr. 5, D-82194 Groebenzell, Germany

On Mon, Apr 23, 2007 at 08:45:30AM +0200, Markus Klotzbücher wrote:
Yes, I know. But I figured it could be worth trying nevertheless.
I see and I agree with you.
Ciao,
Rodolfo

Rodolfo Giometti giometti@enneenne.com writes:
Here my patches:
commit a8c7af8c768d1ac657286b97952eb1e66b2dd2e0 Author: Rodolfo Giometti giometti@linux.it Date: Fri Mar 30 16:33:00 2007 +0200
USB: (Another) delay for crappy USB keys. Some USB keys are slow in giving back an answer when the Root HUB enables power lines. Signed-off-by: Rodolfo Giometti <giometti@linux.it>
Applied to custodian USB tree, thanks!
Regards
Markus Klotzbuecher
-- DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
participants (4)
-
kow9loon
-
Markus Klotzbücher
-
Rodolfo Giometti
-
Wolfgang Denk