The VMELinux Project
The VMELinux Project's goal is to make Linux a sensible
alternative for embedded VMEbus applications.
CVS Repository | Downloads
| Versions | Bug
Reports | Linux VME HOWTO
|How to help this project.
Be a user
Use a stable version of VMELinux
in your next VME application
Ask questions, find help and report your results with the
Also report bugs to the Bug Reporting
so the developers can refine the release versions - currently 1.2.x
|Be a Tester (very important)
Try an experimental version of VMELinux
and report bugs to the Bug Reporting
so the developers can continue refining the development version - currently
Be a Programmer (C and C++)
Become a developer of VMELinux with these steps:
First - Verify you have the tools to communicate with a CVS server.
Second - Verify you have the Universe chip in your VMEbus target processor.
Third - Create an account in the Bug
Fourth - Send me an email so I
can create a CVS account for your
and upgrade your Bug Track account from reporter to developer.
This project's primary offering is the Kernel Level
Linux Device Driver that interfaces between the Unix Shell environment and the
VMEbus. The driver is compatible with the Tundra Universe PCI-VME bridge integrated
circuit. Thus, our driver only supports VMEbus boards with a PCI local bus.
Testing was accomplished with boards from Xycom, Dynatem and SBS-Or.
The VMELinux Device Driver is maintained by a team of
engineers and from folks in the embedded computer industry. We wish to make
VMELinux useful to many people and projects. Thus, all the programs you can
find on this site are governed under the GNU
Free Software Foundation license.
What the tools are:
- VMELinux Device Driver
- This is a Linux kernel device driver. It interfaces user programs to the
system controller and the Tundra Universe chip. It is a traditional driver
in that it uses files within the "/dev" directory for communication.
This driver uses the standard set of calls and is thus familier to any programmer
who decides to directly communicate with the /dev devices.
- A small program which details one way to communicate with the driver. It
helps to abstract the details of driver communication so the programmer concentrates
more on access to the VMEbus and less on how Linux drivers work.
- VMEUtils Program
- This is a program which runs in a standard user shell. It communicates directly
with the Device Driver. It offers the user a command prompt environment whereby
access to the VMEbus is made. Is offers the programmer a look at how to speak
to the Device Driver.
- VMEShell Utilities
- These are handy routines to call from the Linux prompt. They send instructions
to the VMEUtils program on where and how to access the VMEbus. What returns
is a display of actual VME data. Also, you can read and write to files. Another
nice feature of these routines is they store access information in the local
directory. Thus, you can log off, return and begin accessing the VMEbus without
remembering what address to use. Organized this way, you can have different
subdirectories for each of your VMEbus boards and eliminate repeat addressing
- Interrupt Driver Example
- We almost have an example of this ready. Stay tuned.
What they need:
- Linux 2.2.x or 2.4.x kernel.
We suggest the 2.2.14 kernel. The 2.0.x kernels are no longer supported due
to big changes in the way things are done in 2.2.x and now 2.4.x.
- GCC 2.95.x. Actually
2.8.x should work, but 2.95.x does work. Reports about gcc 3 are encouraging.
- A PCI based Processor with the Tundra Universe or Universe II PCI-VME bridge
chip. Our experience is with Intel processors, but one of our users has tested
VMELinux on a Power PC based board with success.
All of these are available within a single tar.gz package.
Download the available files in the download directory.
Plenty of help is available in the VME
Howto. This is still the old Howto. We are updating it regularly. Much of
the instructions found in the VME Howto still apply to the latest version.
Tested Board List
Tested Linux Distributions
- SuSE 6.0, 6.1, 6.2, 6.3, 6.4
Contributors to this Project
Significant time and effort are at work to make Linux
work well in the VMEbus world. Our thanks go to the following:
- XyCom Corporation. We thank them for
their loan of equipment while we make progress on VMELinux.
- Dynatem Corporation. Another company
who kindly loaned equipment so we may port VMELinux to it.
- Concurrent Technologies deserves a big
thank you for their efforts to patch the 0.8 version of VMELinux to work with
the EGCS compiler for use with RedHat's notorious 5.1 and 5.2 distributions.
With the recombining
of the EGCS and GCC compiler efforts and the move to 2.2.x kernels, we no
longer have to worry about RedHat's past problems.
- John Huggins and Michael
Wyrick. John manages the project, maintains the HOWTO and helps define
what is needed by VMEbus system integrators. Mike is the principal software
engineer and makes the program happen with his established Linux kernel programming
skills. John and Mike use what they make.
There are others out there working on VMEbus/Linux solutions
for various boards and different VME interfaces. The VMELinux Project
does not have anything to do with the development of these resources. However,
it would be incomplete not to mention them. They are:
- Linux for 680x0 based
- This is where to go if you want Linux to run on your Motorola 68k boards.
for another Universe PCI-VME driver for Linux
- This driver has been around for quite a while and is healthy. It is an alternative
to our VMELinux driver above. They use different features of the Tundra Universe
device to access the VMEbus.
- VMEbus drivers
and other busses too.
- This list of drivers are alternatives to VMELinux. The Universe driver you
see here has been around a long time and offers a different approach to using
Linux with the Universe chip. This and other items can be found at the The
Linux Lab's excellent web site.
- VMIC Linux Driver
- The good folks at VMIC bring us their
version of a Linux Universe Driver based on the work of Dr. J. Hannappel.
This effort is not based on our VMELinux driver. Here is more information.
- More VMEbus information
- For more information about VMEbus products, efforts and information please
If you know other projects that should be listed here
let us know.
For more information about VMELinux(tm) contact:
John at email@example.com
Back to Top
May 24, 2003 16:40
Pentium is a trademark of Intel Corporation. Alpha is a trademark of Digital
Equipment Corporation. VMELinux is a trademark of Chesapeake Research.