Embedded Linux and PCI (over AT91?)



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 http://maxim.org.za/at91_26.html
).

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 data*** to
make it look like a fitting solution for a small module.

So this leads me to basically two questions:

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


Quantcast