Hello,
I'm currently making the initial design decisions (and hence the most important ones) about a project, which will involve a processor running Linux. The project's initial definition is to take data from an MPEG video chipset and store the stream in a long file on a Disk-on- Key.
So the concept is simple: Write a driver for whatever video hardware we're going to choose (still not defined), and make use of the Linux environment to handle all the USB and filesystem magic. Left on the todo-list is to write a simple application to copy the data. Neat and simple. Or so I thought.
The first headache was to choose the processor. I was told that ARM9 is the preferred architecture (for historic reasons, so this issue is open) and I'm pretty much in favor of Atmel AT91RM9200, mainly because it appears to have some community mileage (see
And now to the point: I'd like the processor to talk with some of its peripherals over a PCI bus. For example, the on-chip USB 2.0 is only full-speed, which may be too slow for a video stream, so I'd like the option to connect a high-speed USB chipset over the PCI bus (I suppose such are available).
Another thing is that my company is pretty responsive to customer's bizarre demands, so we need the flexibility to quickly acquire some Linux-supported PCI chipset, which implements some unexpected interface (firewire? IDE? SCSI?). Then make some small changes to the board (basically hook the device on the on-board bus), and have the product up quickly and painlessly.
In a survey I made, I found out that this is not something people do: Very few processors I found have 16-bit PCMCIA, which is the closest I got to PCI. I think I saw some PCI connectivity on Intel's IOP (XScale), but there were too many Gigas mentioned in the datasheet to make it look like a fitting solution for a small module.
So this leads me to basically two questions:
- Is trying to connect a PCI bus to a AT91 inherently stupid? If so, why? (I mean, if it was such a good idea, I would expect it implemented on development boards)
- What is the simplest way to get any simple processor to have a PCI bus, in such a way that Linux will recognize it naturally? (Assuming the answer to question #1 is "no")
And, by the way, the first thing I suggested was a simple i386-based single board computer. Judging by the allergic response I got, I found no reason to investigate this direction further.
Thanks in advance (and a happy new hangover) Bill