USB host chipset

Posted by: jcm

USB host chipset - 02/04/2008 02:51

Hi,

Has anyone successfully pursued adding a USB host chipset to the empeg? I have some ideas as to how this might be achievable (current idea is to use a Coolrunner CPLD attached to the secondary IDE channel and some unpleasant kernel driver hacks) but I'd love to know if someone has already been looking at this.

Jon.
Posted by: Shonky

Re: USB host chipset - 03/04/2008 23:01

My question would be - why? What do you need USB host for specifically?

There might be an easy way to get the end result you are looking for.
Posted by: tfabris

Re: USB host chipset - 04/04/2008 13:00

Quote:
My question would be - why?


It might be fun to do all the things you can't do right now.

To answer the question: No, I don't think anyone's tried modding a USB host onto the empeg.
Posted by: robricc

Re: USB host chipset - 04/04/2008 13:11

Other than the things mentioned in the FAQ, using a USB to SATA adapter inside the empeg is probably going to be easier/smaller than converting the existing IDE interface to SATA. We also wouldn't be stuck with a maximum of 2 CF cards in a solid-state empeg.

I don't imagine USB 2.0 speeds would be possible, but it may be beneficial to add a 10/100 USB ethernet port. I don't think 100 Mbit is achievable, but anything over 10 Mbit would be welcomed.
Posted by: tman

Re: USB host chipset - 04/04/2008 13:38

Originally Posted By: robricc
Other than the things mentioned in the FAQ, using a USB to SATA adapter inside the empeg is probably going to be easier/smaller than converting the existing IDE interface to SATA.

Not really. Buy a SATA -> IDE adapter and install it. That'll be a lot easier than hacking in USB host and adding a USB -> SATA adapter as well.

The overhead of running ethernet over USB with the empeg will be high. The empeg hardware doesn't do DMA.
Posted by: robricc

Re: USB host chipset - 04/04/2008 15:08

The USB to SATA adapters found inside these types of things are much smaller, cheaper, and more readily available. They also have the advantage of being bus-powered and a USB cable is a lot easier to bend into position than a 40-pin IDE ribbon. Of course, adding USB host to an empeg may outweigh the price advantage...

I remember the turbonet ethernet cards for Series 1 Tivos achieving 22Mbps without DMA. Even if only something like 15Mbps is possible, that's a whole lot better than 10Mbps.
Posted by: tman

Re: USB host chipset - 04/04/2008 15:25

Originally Posted By: robricc
The USB to SATA adapters found inside these types of things are much smaller, cheaper, and more readily available. They also have the advantage of being bus-powered and a USB cable is a lot easier to bend into position than a 40-pin IDE ribbon. Of course, adding USB host to an empeg may outweigh the price advantage...[/url]
The original poster intended to add USB host by connecting it to the IDE bus. Unless somebody removes the existing USB chip and finds a way of fitting a USB host in its place, that is the only viable method of doing it internally.

The PATA -> SATA adapter I linked fits onto the back of the drive. If necessary you could remove the soldered on SATA connectors and put a lead on instead. Same with the PATA pin header.

[url=robricc]I remember the turbonet ethernet cards for Series 1 Tivos achieving 22Mbps without DMA. Even if only something like 15Mbps is possible, that's a whole lot better than 10Mbps.

A small improvement may be possible but is it worth the time and effort to get it? I still think the overhead of having to handle a HD, USB2 and 100Mbps Ethernet over USB would be high.
Posted by: mlord

Re: USB host chipset - 04/04/2008 15:36

Having USB host capability in the empeg would be fun, but there's no way it could achieve significantly better performance than the existing interfaces -- we're local-bus limited there.

SATA over USB could be made to work, but would be dreadfully slow with the extra layers of hardware/software stacks.

And then there's the problem of our 2.2.xx kernel, which lacks USB drivers galore.

Still, I'd like my empeg to have a host port or two. smile

For faster networking -- at the time of the empeg design, there were no suitable (non-PCI) 100mb/s ethernet chips available, which is how we ended up with 10mb/s only.

But now, there *are* 100mb/s chips that don't need a PCI bus. One of these could be grafted into an empeg without too much rework required. Throughput wouldn't be 100mb/s, though, as the local-bus interface would limit things to much less than that.

Figure that our hard disks use the fastest existing interface, at full bus speed, and they max out somewhere around 2.1MB/sec. If we could get 100mb/s ethernet working at a similar interface rate, that might give us 16-17mb/sec network throughput. As robricc said, even that "mere" 60-70% improvement could still be worthwhile.

EDIT: Note also, that the IDE, USB, and ethernet all share compete for the same local bus. So if one is, say, uploading tunes over ethernet, that bus bandwidth will be split between networking and IDE.

Cheers
Posted by: peter

Re: USB host chipset - 04/04/2008 15:43

Originally Posted By: robricc
Even if only something like 15Mbps is possible, that's a whole lot better than 10Mbps.

IMO, if a sync is going to take so long that 15Mbits/s is better than 10Mbits/s (and remember that the player software can only sustain about 6-7Mbits/s, it can't even saturate 10M Ethernet), then it's long enough that it's worthwhile opening the player, and using one of those USB-to-SATA adaptors on a real USB2 PC, where with a modern drive you can probably nearly saturate USB2 at 480Mbits/s (60Mbytes/s).

USB host on the Empeg would be a neat hack for various reasons, but faster synchronisation isn't one of them.

Peter
Posted by: mlord

Re: USB host chipset - 04/04/2008 15:50

Originally Posted By: peter
.. using one of those USB-to-SATA adaptors on a real USB2 PC, where with a modern drive you can probably nearly saturate USB2 at 480Mbits/s (60Mbytes/s).


In practice, I have never seen better than about 31Mbytes/sec with any drive connected via USB.

Cheers
Posted by: altman

Re: USB host chipset - 14/11/2008 03:49

...the usb host chipsets that are amenable to attachment to an SA1100 are also pants, to be frank. The Rio Central, which uses an NXP ISP1161 (the ohci mods for this are in the kernel diffs), was veeeery slow.

USB only really makes sense if the host controller has DMA.

Hugo
Posted by: jcm

Re: USB host chipset - 14/11/2008 08:05

My rough plan was to implement a USB interface using PIO over the IDE channel pins...probably too slow, but I'll poke at the possibilities now that I've got another empeg coming smile
Posted by: mlord

Re: USB host chipset - 14/11/2008 13:15

I think that one of the better approaches might be to just graft in a modern SBC (say, something like a gumstix, but with host USB onboard), and link it to the existing logic on the local bus (the same data/control lines that are used for USB, ethernet, and IDE in the current board). Then use it as a modern I/O controller for the existing design.

The mass storage could be left to the existing logic, or taken over by the new SBC, which would solve the speed issues. It could reexport the storage to the empeg board over an emulated storage adapter (simple, custom driver), or even over NFS/FTPfs via ethernet.

Mmm.. smile
Posted by: altman

Re: USB host chipset - 07/12/2008 04:25

Not many SBCs with an 8080-style slave interface, though... why not just be done with it an emulate the whole StrongARM shebang on a faster CPU wink

Hugo