MCF5445x USB host performance

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MCF5445x USB host performance

4,827 Views
chris82369
Contributor I

I am interested to know if anybody out there has tested the MCF5445x USB host performance.  That is what is the fastest USB bulk transfer rate the CPU can attain.

An example of a test might be a mass storage device file transfer, or a FTP transfer over a USB-to-Ethernet adapter.

I am interested in the performance with the coldfire as _host_ using the onboard host controller (not a a USB peripheral device).


Labels (1)
0 Kudos
Reply
6 Replies

2,359 Views
simath
Contributor I
I have only tested the USB host performance using the Linux BSP Mass Storage driver (you can reference my post on ATA speed).  This does NOT answer your question as to the BEST bulk perfomance possible (it is unclear how optimal the current Linux drivers are).  There are a couple of variables: 1) The USB flash drive perfomance, and 2) The performance of the "TO" device (the copy has to go somewhere).  Using Linux hdparm should somewhat migitage #2 (I think it reads/writes chunks to RAM only, but I'm not sure).  #1 can be checked using a PC (to verify flash drive max. performance).
 
I tested with a Corsair 256MByte flash drive (probably NOT the fastest now available), using hdparm.  I also tested using a large file copy (20Mbytes) to a RAM drive.  Both seemed to give fairly consistent results.
 
I see about 6MBytes/sec. transfer rates, which is not great, but there is a LOT of overhead dealing with a Mass Storage device.  Given much higher performance on a Linux PC, I don't think the flash drive itself is the limiting factor (i.e. it IS the EVB).  Perhaps the BSP developers can provide better input as to what might be possible.
 
Certainly the ATA drivers are not optimized (don't use DMA).  If the USB drivers don't utilize DMA either, this performance should be able to increase A LOT.
 
Final note:  This is also NOT using the onboard PHY option (which is limited to FS USB), but using the external UTMI USB HS PHY as an OTG host/device.
0 Kudos
Reply

2,359 Views
PravinL
Contributor I

Please tell me is it possible to write Data to USB Stick using MC9S08JM08 may be at low speed i.e. can we build USB host using this controller?. If possible what can be the maximum speed possible?

0 Kudos
Reply

2,359 Views
chris82369
Contributor I
Simath, thanks for the information!

I want to clarify one point, you specified you see about 6MB/sec... is that 6Mbits/second or 6MBytes/second (48Mbits/second) ?

What was the direction of the transfer -- read from the USB flash drive, or write to the USB flash drive or both?

Do you remember what types of transfer rates you saw with your Linux PC test.   Interesting to know for a reference point.

Also, do you know if your EVB was using the 266Mhz part ?

Thanks again.   I am stil interested to hear USB host experiences from any others out there.





0 Kudos
Reply

2,359 Views
simath
Contributor I
That's 6MBytes per second.  Testing for USB transfer speeds using a flash drive is really only useful for READs (flash write performance is too slow).  My Linux PC (very fast machine >6000 BogoMIPS if I remember correctly - CoreDuo2 6750, DDR3) perfomed reads from the same flash drive at about 36MBytes/sec. (i.e. close to the max. USB HS bulk rate - probably limited by the flash drive not the PC).  As far as I know, all the EVBs use the 266MHz parts (the 240MHz parts don't have PCI, ATA).  The 266MHz parts are available (I received some samples).
 
The bigger performance issue seems to memory to peripheral access speed.  EVB Linux memory-to-memory copies are fairly slow (about 15MBytes/sec.).  I'm assuming the BSP uses DMA, but haven't checked.  The crossbar architecture sounds like a nice idea (compared to an AHB or OPB bus bridge), but there have been some posts questioning its efficiency.  My Linux PC shows memory transfers at >1500MBytes/sec. (i.e. 100x).  So, even if the USB and ATA drivers improve, memory to peripheral xfer rate is likely to be a bottleneck with the CF architecture.  If I didn't need low cost and the nice group of peripherals, I'd go with a PPC405 part or a StrongArm part if I needed better USB performance.
 
0 Kudos
Reply

2,359 Views
chris82369
Contributor I
Simath, Thanks for the information.  This is very helpful.

You mention that you would go with StrongARM if you needed better USB performance.  I assume you mean Xscale.  The existing processors like the PXA320 do not support high-speed USB, so would be limited to 12Mbit/sec.  Do you know of a processor (Xscale or otherwise) that has USB 2.x high-speed host that could out-perform the MCF5445x ?



0 Kudos
Reply

2,359 Views
simath
Contributor I
Don't get me wrong - I think the new V4e parts are a great step forward for the CF line.  I'm hoping that the v5 parts will be even better.  See my post on the AMCC 405 vs. CF.  If you work for a large company and can get Broadcom to pay attention to you, their ARM11 parts look nice.
 
There is a BIG advantage to Freescale for small companies (like mine), in that I can actually GET parts (samples and devl. boards).  Samsung makes some nice ARM9 parts - great if you're Apple!
 
If you are interested in better USB performance, it's possible that the 5445x can provide it with better "tuned" drivers.  One BIG advantage to Freescale is they have their own software guys writing BSPs.  AMCC outsources it to Denx and a Chinese ODM.  Send a request through your distribution channel's FAE (Avnet, etc.) and tell them you'd like to see better USB performance.  Freescale does seem to listen to developer feedback fairly well...
0 Kudos
Reply