This commit is contained in:
gferg 2000-08-17 16:05:41 +00:00
parent fd51fe3042
commit 0a8f393416
2 changed files with 610 additions and 570 deletions

View File

@ -2014,7 +2014,7 @@ domain services in conjunction with Qmail. </Para>
VME-HOWTO</ULink>,
<CiteTitle>VME HOWTO</CiteTitle>
</Para><Para>
<CiteTitle>Updated: July 1998</CiteTitle>.
<CiteTitle>Updated: August 2000</CiteTitle>.
Shows the embedded system community how to run Linux on their VMEbus
Pentium and other PCI local bus based VMEbus processor designs. </Para>
</ListItem>

View File

@ -3,9 +3,9 @@
<article>
<!-- Title information -->
<title>VME Howto
<title>Linux VME Howto
<author>John Huggins and Michael Wyrick, <tt/vmelinux@va.net/
<date>v0.8a, 30 July 1998
<date>$Revision$, $Date$
<abstract>
This document came about to show the embedded system community how to run Linux on their VMEbus Pentium and other PCI local bus based VMEbus processor designs.
</abstract>
@ -92,24 +92,27 @@ As we get experience about each brand of VME CPU, we will list the different con
<p>
Linux Kernel Driver
<itemize>
<item> November, 1997, v0.2 - Initial version on Xycom Board
<item> December, 1997, v0.3 - Useable version used for actual work with project.
<item> February, 1998, v0.6 - DMA mode added to VME access modes.
<item> November 1997, v0.2 - Initial version on Xycom Board
<item> December 1997, v0.3 - Useable version used for actual work with project.
<item> February 1998, v0.6 - DMA mode added to VME access modes.
<item> June, 1998, v0.8 - Fixed a few things to allow the new VMEUtils to work.
<item> June 24, 1998, v0.8a - Current version made available on the website.
<item> June 24, 1998, v0.8a - Last version for the 2.0.x kernels
<item> April 2000, v0.95 - First version for the 2.2.x kernels
</itemize>
<p>
VMEUtils Program
<itemize>
<item> February, 1998, v0.6 - Created a command line interpreter to access the VMEbus
<item> June, 1998, v0.8 - Fixed several issues to allow VMEShell Utilities to function
<item> June 24, 1998, v0.8a - Current version made available on the website.
<item> June 24, 1998, v0.8a - Previous working release.
<item> April 2000, v0.95 - Pretty much the same as before. Better install instructions.
</itemize>
<p>
VMEShell Utilities
<itemize>
<item> June, 1998, v0.8 - Created command line utilities that allow access to the VMEbus from the Linux shell prompt. These shell programs interface with the VMEUtils program.
<item> June 24, 1998, v0.8a - Changed the name of all the shell programs so they all begin with "vme." Current version made available on the website.
<item> April 2000, v 0.95 - Improved installation scripts.
</itemize>
<sect1> Copyright/Distribution
@ -136,17 +139,20 @@ Download the distribution from the <htmlurl url="http://www.vmelinux.org/" name=
<sect1> Install the source to the software
<p>
Place the file in a directory reserved for VME usage; We suggest /universe. Untar the zipped/tarred file by typing...
Place the file in your source directory; We suggest /usr/src. Untar the zipped/tarred file by typing...
<verb>
tar -xzf VMELinux_08a.tar.gz
tar -xzf VMELinux_0.95.tar.gz
</verb>
<p>
You should see three directories and one link to ca91c042
Then:
<verb>
cd vmelinux
</verb>
You should see three directories:
<verb>
ca91c042
vmeshell
vmeutils
driver
</verb>
<p>
In ca91c042 you should find:
@ -190,6 +196,7 @@ vmeshell/vmewb
vmeshell/vmewf
vmeshell/vmewl
vmeshell/vmeww
vmeshell/makelinks
</verb>
<p>
In the vmeutils directory you should find:
@ -216,12 +223,9 @@ Now you must create the several /dev driver files. Type:
make devices
</verb>
<p>
DON'T FORGET TO MAKE THE /dev/vme* DEVICES!!!
<p>
Once made, you should see the file "ca91c042.o" in the directory. This is a loadable module. See below for loading information. Plus, you should find several "vme..." files in the /dev directory.
<p>Once the devices are made in the /dev directory you must change their permissions. Type:
<verb>
cd /dev
chmod 666 vme*
</verb>
Here is how the files should look:
<verb>
hostname:/dev# ls -l vme*
@ -244,10 +248,15 @@ make
<p>
This will compile the "vmeutils" program. This program directly speaks to the kernel driver. It is a reference work for those of you who wish to write your own programs to directly speak with the driver.
<p>
Copy the program "vmeutils" to your user binary directory. On our system this is "/usr/local/bin." Alternatively, you can create a link in the user bin directory to the "vmeutils" program.
Copy the program "vmeutils" to your user binary directory or let the makelinks script do this for your in the next step. On our system this is "/usr/local/bin." Alternatively, you can create a link in the user bin directory to the "vmeutils" program.
<p>
Change to the "vmeshell" directory. There are no files to be compiled here. These are shell programs that use the "vmeutils" program to access the VMEbus. All the files beginning with "vme" should with have a link made or be copied to the "/usr/local/bin" directory.
<p>
just type:
<verb>
./makelinks
</verb>
<p>
You are now ready to try the driver.
<sect1>Load the VMELinux Kernel Module
@ -256,9 +265,14 @@ Make sure you are root and insert "load" the VMELinux Kernel Module for the Univ
<verb>
insmod ca91c042
</verb>
<p> Or just type "ins" to let the shell script do this for you. Once complete, type...
<p> Or just type "./ins" to let the shell script do this for you. Once complete, type...
<verb>
stat
./stat
</verb>
<p>
or
<verb>
more /proc/ca91c042
</verb>
You should see a list of registers displayed on your screen. Something like this...
<verb>
@ -530,6 +544,18 @@ While the VMELinux driver should work with any PCI based design, the following b
<item> This board is compatible with the standard VMELinux kernel driver package from <htmlurl url="http://www.vmelinux.org/" name="VMELinux Project">
<item> A prepared kernel will be available soon. It will be based on the newest version of the Linux kernel and will include appropriate drivers for the onboard SCSI and Tulip Ethernet peripherals. Check the website for details.
</itemize>
<sect1> SBS/Or Computer VP7
<p>
<itemize>
<item> This board is compatible with the standard VMELinux kernel driver package from <htmlurl url="http://www.vmelinux.org/" name="VMELinux Project">
<item> A prepared kernel will be available soon. It will be based on the newest version of the Linux kernel and will include appropriate drivers for PCNET Ethernet peripheral. Check the website for details.
<item> The VP7 has a nice feature which performs the BOOTP protocol without need of a bootrom or similar modification. However, you must ask SBS for an updated BIOS with this modification.
</itemize>
<sect1> DY4 179, A Power PC board
<p>
<itemize>
<item> An independant engineer finds this board is compatible with the standard VMELinux kernel driver package from <htmlurl url="http://www.vmelinux.org/" name="VMELinux Project">
</itemize>
<sect1> Planned Board Support
<p>
If you do not see VMELinux support for your board let us know. Maybe the manufacture will lend us a board for development.
@ -537,7 +563,6 @@ If you do not see VMELinux support for your board let us know. Maybe the manufac
<p>
VMELinux offers the user a low cost way to implement a VMEbus system quickly, reliably and with all the advantages of a unix environment. We are using VMELinux in our projects so you can be sure future developments will come quick. On the drawing board for this year are:
<itemize>
<item> Implementation of Interrupts and Handling thereof,
<item> Porting to other brands of Intel VMEbus boards,
<item> Porting of VMELinux to other processors that use the Universe chip,
<item> A study of running the VMELinux kernel driver module as a RT-Linux task.
@ -557,13 +582,28 @@ FAQ
<sect1> The Shell utilities return a bunch of stars (*) when I access a board I know is there. What gives?
<p>
Check to be sure the /dev/vme... files have their permissions set to 666. If not, the shell utilities will return a * in place of data to indicate an error condition similar to a VME bus error.
<sect1> The Shell utilities still return a bunch of stars (*) when I access a board I know is there. Now what?
<p>
It is possible the ca91c042 Linux kernel module has been compromised. Get root access and type "lsmod" to review the loaded modules. Do you see the ca91c042? If yes, try removing it and reinstalling it with "rmmod ca91c042" and then "insmod /path/to/the/ca91c042.o" to get things up again. If it is not there check to see if you are loading the module when you boot the machine, etc.
<sect1> The Shell utilities still return a bunch of stars (*) when I access a board I know is there. HELP?
<p>
Time to get a VMetro board into the VME cage and see if any accesses are occuring. Also look at the /proc/ca91c042 file to see if the read and write counters are incrementing.
<sect1> How does VMELinux handle interrupts?
<p>
Right now it doesn't. However, we are planning to get that part going soon. Please be patient.
The driver does handle interrupts, but if you compile your interrupt handler program as a Linux loadable module, that program can handle the interrupts directly. Examples of this will be available soon. It is important to note that user level program can be made to handle interrupts, but it is a much better idea to have your interrupt handlers as part of the Linux kernel via loadable modules. Yes, you can totally hose the kernel if you do something wrong, but that is the trade off between safety and performance.
<sect1> I have RedHat 5.1 and can't get VMELinux programs to compile.
<p>
RedHat 5.1 includes a new compiler. If you manually edit the Makefile in each directory to call up the new egcs compiler, things should compile. We fully intend to support RedHat 5.1 installations, but for now I suggest using 5.0 or Slackware.
<sect1> I have RedHat 6.x so I assume the above issue is fixed. Right?
<p>
Maybe. RedHat threw us, and many other kernel module driver writers, a curveball with the move to the egcs compiler. Thankfully, the two compiler camps, GCC and egcs, have united their efforts. All this incompatibility should just go away. For the moment, however, VMELinux will only be tested with GCC 2.95.x so that is what we suggest you use for a compiler. If you type "gcc --version" at your prompt and get an "egcs..." back then we cannot say it will work for you.
<!-- Ending -->
</article>