Motherboard Forums


Reply
Thread Tools Display Modes

Looking for USB stack with permissive licence (mass storage)

 
 
Noob
Guest
Posts: n/a
 
      04-03-2012, 04:02 PM
Hello everyone,

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?

Regards.
 
Reply With Quote
 
 
 
 
Tim Wescott
Guest
Posts: n/a
 
      04-03-2012, 04:30 PM
On Tue, 03 Apr 2012 18:02:09 +0200, Noob wrote:

> Hello everyone,
>
> 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?
>
> Regards.


You might try these guys:

http://en.wikipedia.org/wiki/File:Pi...g-buco.arp.jpg

Not open source, but when I integrated uC/OS-II into a product they were
very cost-effective and supplied nicely compilable source code.

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
 
Reply With Quote
 
 
 
 
David Brown
Guest
Posts: n/a
 
      04-04-2012, 07:30 AM
On 03/04/2012 18:02, Noob wrote:
> Hello everyone,
>
> 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?
>
> Regards.


If you don't need maximal speed, 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.

 
Reply With Quote
 
Noob
Guest
Posts: n/a
 
      04-04-2012, 08:20 AM
Tim Wescott 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?

>
> You might try these guys:
>
> http://en.wikipedia.org/wiki/File:Pi...g-buco.arp.jpg


[Picture of a home-built aircraft]

I don't understand.

> Not open source, but when I integrated uC/OS-II into a product they were
> very cost-effective and supplied nicely compilable source code.


Do you have a link? How long have they been selling their USB stack?

Regards.
 
Reply With Quote
 
Noob
Guest
Posts: n/a
 
      04-04-2012, 08:46 AM
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.
 
Reply With Quote
 
Tim Wescott
Guest
Posts: n/a
 
      04-04-2012, 02:40 PM
On Wed, 04 Apr 2012 10:20:23 +0200, Noob wrote:

> Tim Wescott 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?

>>
>> You might try these guys:
>>
>> http://en.wikipedia.org/wiki/File:Pi...g-buco.arp.jpg

>
> [Picture of a home-built aircraft]
>
> I don't understand.
>
>> Not open source, but when I integrated uC/OS-II into a product they
>> were very cost-effective and supplied nicely compilable source code.

>
> Do you have a link? How long have they been selling their USB stack?
>
> Regards.


Whoops! That was supposed to be a link to the Micrium website -- they're
the folks that do Micro-C/OS-II (and -III).

http://micrium.com/page/products/rtos/usb

As I said, I had good experiences with them 10 years ago; it's a nice
little OS, but we didn't use any of their add-on stuff.

Should you decide to build a plane in your spare time, the Piet is
certainly popular (if slow), and you can still get rebuildable Model A
engines fairly cheap if you want to be nostalgic -- but that has nothing
to do with what you asked.

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
 
Reply With Quote
 
Rob Gaddi
Guest
Posts: n/a
 
      04-04-2012, 03:40 PM
On Wed, 04 Apr 2012 10:46:04 +0200
Noob <root@127.0.0.1> wrote:

> 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.
> >>


[snip]

>
> 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.


Have you tried pinging your local Renesas FAE? They might have app
notey sorts of things with already working code.

--
Rob Gaddi, Highland Technology -- www.highlandtechnology.com
Email address domain is currently out of order. See above to fix.
 
Reply With Quote
 
Tim Wescott
Guest
Posts: n/a
 
      04-04-2012, 06:06 PM
On Wed, 04 Apr 2012 10:46:04 +0200, Noob wrote:

> 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.


Have you checked with your chipset vendor to see if they've got support?
I see more and more chips coming out with on-board IP to run their
Ethernet or USB ports stashed away in ROM someplace.

Of course, you're then depending on code that's written by a group of
people who are viewed as an "expense" by company bean-counters. But you
might luck out.

--
My liberal friends think I'm a conservative kook.
My conservative friends think I'm a liberal kook.
Why am I not happy that they have found common ground?

Tim Wescott, Communications, Control, Circuits & Software
http://www.wescottdesign.com
 
Reply With Quote
 
Mark Borgerson
Guest
Posts: n/a
 
      04-05-2012, 12:02 AM
In article <jlh1o9$h7l$(E-Mail Removed)>, root@127.0.0.1 says...
>
> 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.


That seems to be a pretty ambitious target. Where is all that data
going to go (or come from)? Do you want that rate in continuous
transfer, or only in bursts? Given the overhead and the possibility
of other USB traffic, that seems a lot to ask.
>
> > 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).


Are you doing high-speed transfers now? Do you get anything like
30MB/second?
>
> 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.)


The variations in USB peripherals may be larger than that for Ethernet
controllers. In addition, Ethernet and TCP/IP are ancient when
compared to USB 2.0.
>
> I'll try looking harder. I encourage everyone to jump in the fray
> if you know something that might prove useful.
>
> Regards.


Mark Borgerson


 
Reply With Quote
 
Noob
Guest
Posts: n/a
 
      04-05-2012, 12:45 PM
Mark Borgerson wrote:

> Noob wrote:
>
>> 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.

>
> That seems to be a pretty ambitious target.


I can live with 20-25 MB/s ;-)

> Where is all that data going to go (or come from)?


A recent 3.5" HDD in a USB2 enclosure (nowadays, 3.5" HDDs
sport 64 MB of cache, and can sustain 50 MB/s over SATA)

> Do you want that rate in continuous transfer, or only in bursts?


The worst-case scenario (in terms of required performance)
recording (writing) 4 HD programs (say 4x20 Mb/s) while
playing one back (20 Mbit/s).

I.e. 100 Mbit/s (12.5 MB/s) of continuous bandwidth.
Being able to sustain bursts at 30 MB/s would minimize
time spent waiting for the bus.

> Given the overhead and the possibility
> of other USB traffic, that seems a lot to ask.


What other USB traffic?

>> 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).

>
> Are you doing high-speed transfers now? Do you get anything like
> 30MB/second?


With the current stack, I've measured 18-20 MB/s sustained.
But there are a lot of unnecessary copies because whoever
ported the library was clueless about cached/uncached memory
zones and DMA.

>> 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.)

>
> The variations in USB peripherals may be larger than that for Ethernet
> controllers. In addition, Ethernet and TCP/IP are ancient when
> compared to USB 2.0.


:-(
 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
stack pointer at the start of the task's stack array 2005 Embedded 8 11-08-2006 09:49 AM
16/32/48/64 bit bsd licence core under development jacko Embedded 0 09-09-2006 06:00 PM
Question Re: XP Licence me Dell 5 11-30-2004 01:24 AM
Windows licence with Dell H. S. Dell 5 05-07-2004 06:31 AM
registering xp licence on new Dell Helga Larson Dell 4 02-15-2004 02:27 AM


All times are GMT. The time now is 05:32 AM.


Welcome!
Welcome to Motherboard Point
 

Advertisment