Next Previous Contents

4. How to talk to the Tundra Universe PCI-VME bridge using the devices drivers.

4.1 The device drivers used with VMELinux

4.2 VMEMaster Device Drivers

/dev/vme_m* are drivers used to access the VMEbus as a bus master.

The Universe chip offers the programmer eight VMEMaster windows to the VMEbus. These windows are called Images. The details of the registers within these windows is beyond the scope of this Howto. Please refer to the Universe documentation for details. Tundra Universe

Version 1.1 of our tools only supported the first four images. This is because we originally designed this to work with the original Universe device. When the Universe II became available, Tundra did not update their documentation. Thanks to reports from other Universe users we are now aware of the new images, have found and downloaded the latest Universe manual from Tundra and have added these images to the 1.3.0 release.

4.3 VMESlave Device Drivers

The Universe chip offers the programmer four (eight for the UniverseII) VMESlave windows to the VMEbus. These windows are called Images. The details of the registers within these windows is beyond the scope of this Howto. Please refer to the Universe documentation for details. Tundra Universe

We originally intended to support the Universe's slave mode. We never had a need for this thus our efforts concentrated solely on using the Universe as a VME master only. So for 1.3.0 and the near future, we will not support the eight slave images.

I'll repeat this for clarity. Slave VME modes are not yet supported by our VMELinux Universe Kernel driver.

4.4 Direct Control of the Universe Registers

/dev/vme_ctl allows read and write access to the Universe registers.

For experienced users, this device allows direct access to the Universe chip's internal registers. Explanation of these registers and what they do is beyond the scope of this howto. Please consult the Universe documentation available from Tundra Universe

4.5 read()

n = read(vme_handle,buf,len);

Where:

4.6 write()

write(vme_handle,buf,len);

Where:

4.7 lseek()

lseek(vme_handle,vme_pnt,Seek_Type);

Where:

4.8 ioctl()

ioctl(vme_handle, command, argument);

Where:

And:

4.9 open() and close()

Here is where you open and close the four VMELinux Master or Slave devices plus the Control device. Slave images are not yet supported.


Next Previous Contents