David Brown wrote:
> Noob wrote:
>
>> I work for a small set-top box manufacturer. Our boxes have
>> a 450-MHz SH-4 CPU and typically 128/256 MB of RAM, running
>> a proprietary RTOS.
>>
>> At the moment, we are using a proprietary third-party USB stack,
>> which is mostly a binary release. The source code I do have is
>> of fairly low quality... :-(
>>
>> I'm looking for an open source USB stack which would be easily
>> ported to an SH-4 platform with an RTOS.
>>
>> I've just finished integrating lwip, and it was a great experience.
>> The documentation is a little lacking, but they've managed to make
>> porting very clean, with a clear separation of arch files, and core
>> files.
>>
>> Would such a beast exist for USB?
>> I only need the mass storage class.
>>
>> I did stumble upon LUFA, but it seems very AVR-specific.
>> (Although it seems to have been ported to ARM recently.)
>>
>> http://www.fourwalledcubicle.com/LUFA.php
>>
>> Are there other options out there?
>
> If you don't need maximal speed,
USB 2.0 "Hi-Speed" mode is 480 Mbit/s. My goal is 30 MB/s (240 Mbit/s)
of "useful" bandwidth (i.e. considering actual data transferred only).
IIUC, the overhead in the USB protocol is fairly significant.
> then maybe you can use something like these:
>
> <http://www.ftdichip.com/Products/ICs/VNC2.htm>
>
> There is firmware available for these chips for USB mass storage device
> interfacing, amongst others.
>
> It would mean another chip on the board - but no royalties and probably
> easier development.
Hmmm... The chipset we use provides its own USB controller, and the
board layout has already been validated. I don't think it is an option,
at this point, to add a new chip. Which is why I'm only looking for a
software (USB2) stack. I only need support for the mass storage class
and bulk transfers (don't know if the other transfer modes are required
for normal operation).
I find it strange that there are very good TCP/IP open source libraries,
but that I can't find a portable, open source USB stack for embedded
systems with "powerful" CPUs (powerful compared to micro-controllers,
i.e. roughly equivalent to the first Pentium III variant Katmai.)
I'll try looking harder. I encourage everyone to jump in the fray
if you know something that might prove useful.
Regards.