Beagle Board as PCI guest card.

I just found the Beagle Board and is impressed by its capabilities.

Would it be possible to create a PCI multifunction card bases on its
design? It could function as a graphics card, sound card and USB card.
It could also do a lot of other cool stuff.

Most importantly it could function as a graphic card. At boot it would
have to emulate an industry standard VESA card, and when the host
system loads its drivers for the card, it would switch to be far more
capable.

I refurbish old computers and this would allow me to add HD graphics
and decoding, OpenGL, linux-compatible sound and s-video, USB 2.0 port
and other awesomeness in a package that is quite inexpensive.

The ability to act as a USB device is nice, but BIOS would not be able
to output its graphics using an USB device. Also most machines i
refurbish has USB 1.X which are quite slow, if they have USB at all.
The PCI bus would provide a lot more bandwidth.

A Beagle Bord PCI card would extend a old computer capabilities a lot,
as it can do much more then graphics. It may even be useful to make
its processor the systems primary processor, rather then using it as a
coprocessor.

I can envision it being done, however, the throughput would not hold up to all the things you have on your list. The best interface available is the MMC 8 bit interface which would limit you to 480Mbps max, the same speed as a HS USB port. Of course that is only theoretcal as overhead issues would limit that further. You could design an FPGA to MMC interface that would implement the PCI interface. There is a second MMC port availble on the -xM which would give you two ports to work with which would double the throughput in theory. All of these would need the FPGA board created in order to do this.

You could just use the USB interface on the card, but that would also limit you to 480Mbps which would be tough to handle all the items on your list.

Gerald

I can envision it being done, however, the throughput would not hold up to
all the things you have on your list. The best interface available is the
MMC 8 bit interface which would limit you to 480Mbps max, the same speed as
a HS USB port. Of course that is only theoretcal as overhead issues would
limit that further. You could design an FPGA to MMC interface that would
implement the PCI interface. There is a second MMC port availble on the -xM
which would give you two ports to work with which would double the
throughput in theory. All of these would need the FPGA board created in
order to do this.

The speed of a HS USB port would probably have enough bandwidth.
However most computers i work with have USB 1.X if they have USB at
all. Also USB is known for high latency if you stress it to a high
speed, which may become a problem.

You could just use the USB interface on the card, but that would also limit
you to 480Mbps which would be tough to handle all the items on your list.

It is not possible to create a VESA compatible graphic card using USB,
unless we do a non-standard USB card that gives the device full access
to the PCI port. This would mean that BIOS cannot output its info on
the device. However it would work after Linux has loaded the drivers,
but we would not have a clue about whats going on before that.
480Mbps is more then enough to stream HD movies. Remember that we have
decoding capacity on the beagle board. There may be a limit on direct
graphics and OpenGL, but i think we can find ways around that. Many
games that is not written with such low bandwidth in mind will have a
problem.
However this will be far better then the old graphics that we are
currently limited to, that does not even handle the full resolution of
modern monitors.

Also one way to speed it up is to actually run some apps on the card.
Mostly the beagle board will be more powerful then he main system. If
we see it as the main system and the host PC as peripherals, then we
can make it even more powerful. We just let the PC boot with the card
as VESA graphic card and also emulate a HDD feeding a small boot
program that hand over control to the card. We can have a disk image
on the SD card that we feed to the host system as a HDD, or we could
even feed it a NBD as a hdd image.

The cool thing about that is that it would give the board all
peripherals it need in order to be a complete computer. Users just
take a old PC, put in a beagle board and have a full blown Beagle
Box...

Today we upgrade old PC:s with adding RAM so we have at least 512MB,
replace the usually failing HDD with a DoM device and install lubuntu.
The costs of SDRAM and a DoM device is far greater then the cost of a
beagle board, and gives far less advantages... so a solution like the
one above is something that most refurbishers will use, at least those
of us that use Linux.

There used to be at least three companies that made hardware for
upgrading old computers, like socket converters and even PCI boards
with similar functionality like what i described, but now we are lucky
if we can find any compatible devices. Old RAM (PC133) is quite
expensive and if its something non-standard, then we just pass that
machine over. And if the processor is broken - don't even bother... A
PCI board cant fix all of these problems. But it can fix the
performance problems on a otherwise functional machine.

Then MMC is your best available option. All of the design information and design files are freely available on the board, so you should have no issue creating your add-on board board with an FPGA.

Gerald

Check this project out. FPGA expansion card for beagleboard

http://elinux.org/BeagleBoard_Tracker

Faldegast, you write that you refurbish old computers having business with inexpensive stuff. So, is Beagleboard inexpensive also in comparison with usual PC stuff? I believe not! Rather cool graphics card with pure HD output costs 30usd, sound card even less! :slight_smile:

So, what is your point? Still can’t count money?

2010/11/2 bear24rw <bear24rw@gmail.com>