I am trying/benchmarking some tasks on the beagle board to evaluate the use of the board in different projects. I am running the latest 2.6.29 kernel from git with a custom Angstrom image.
Up to now, the results are disappointing. As the OMAP lacks fast interfaces ( eg. IDE/SATA ), I would need to use the SD/MMC and USB interfaces. I only have the RevB Beagle right now, so I am using the OTG port for USB testing. My projects involve capturing images from an USB camera, displaying a live image and/or writing the images to some permanent storage.
First try to measure the USB speed was to connect a USB hard-disk and do:
dd if=/dev/zero of=/media/sda1/zero bs=128000 count=4000
This gives at least 20MB/sec on even slow PCs but on the Beagle I only get about 6-8MB/sec. Read is a bit better but still slow at about 15MB/sec.
Then I tried to use an USB camera ( using unicap / UCView http://unicap-imaging.org ). The cameras are UVC compliant ones using the uvcvideo driver. The only camera I was able to get to run was a Logitech QuickCam Pro at a resolution of 320x240 @ ~5FPS. Any higher resolution did not provide an image - probably the driver was not even able to start the device. Other cameras I tried did not work at all - and the program hang when I tried to lower the frame rate ( USB errors? ).
Finally I benchmarked the SDIO interface to see if I could use that for mass storage. Again I used:
dd if=/dev/zero of-/media/mmcblk0p2/zero bs=128000 count=4000
which gave about 8 MB/sec but used 100% CPU time. The same card could be written to @ 15 MB/sec on a desktop machine. As the write uses 100% cpu time, it would not beusable as a mass storage in my projects
I would be very happy if anybody could answer one or more of these questions:
Is the low USB performance due to immature and inefficient drivers or is it an issue of the MUSB core?
Can I expect more performance from the USB host port - probably the full USB performance?
Is the high CPU utilization of the SDIO operation due to inefficient drivers or due to a hardware limitation?