5.3.3. - Installing Drivers
In the early history of spec,
much of the hardware communication was done through drivers.
A driver is a
piece of software that becomes part of the operating
system and allows spec to communicate with the particular
hardware the driver supports or performs some other function not
available with the standard operating system.
Most current configurations of spec
do not require any CSS-provided drivers.
Note that for many
PC configurations where spec once required use of a driver,
spec now supports driverless configurations.
The hardware is controlled directly from user level using
inb()/outb() type of calls.
Frequent polling of status registers replaces the use of
interrupts.
The performance of spec using polled mode seems to be as effective
as the interrupt-driven drivers.
Those configurations that do require spec drivers
are described below.
The files for
spec drivers are in the
drivers
subdirectory of the standard distribution.
If the file
drive.tar.Z
exists in the directory, run the
TYPEME
script to extract the driver files.
A
README
file in that directory contains up-to-date information
about the currently available drivers and instructions on installing
them.
Some hardware devices on some platforms, such as
the National Instruments
GPIB controllers on most platforms,
require a vendor-supplied driver.
spec drivers are available for the
items in the following list.
-
The
DSP 6001/6002 CAMAC crate controller with the DSP PC004 IBM PC interface
on System V release 3.2 and 4.x, SCO XENIX 386 3.2.3 and SCO UNIX platforms.
Note, this controller can also be used in a driverless configuration,
where all I/O to
the CAMAC is through user-level
inb()/outb() calls.
Contact CSS to discuss performance considerations.
-
The Kinetic Systems 3922 CAMAC controller and 2926 PC board on
on System V release 3.2 and 4.x platforms.
Note, this controller can also be used in a driverless configuration,
where all I/O to
the CAMAC is through user-level
inb()/outb() calls.
Contact CSS to discuss performance considerations.
-
The Kinetic Systems 3912 CAMAC controller on BSD and ULTRIX platforms.
-
The Kinetic Systems 3929 SCSI CAMAC crate controller on SunOS 4.1
and Solaris 2.x platforms.
Note, this controller can be used on HP-UX platforms with special
code built into spec - no driver is necessary.
-
The Oregon Micro Systems PCX, PC38 or PC39 PC board motor controller
on System V release 3.2 and 4.x platforms.
It is also possible to use this board in a driverless, polled mode.
Contact CSS to discuss performance considerations.
-
The Oxford/Tennelec/Nucleus PCA II multichannel analyzer card
on System V release 3.2, 4.x and
linux
platforms.
It is also possible to use this board in a driverless, polled mode.
However, dead-time correction will not be available in that case.
The newer model PCA-3 board doesn't require a driver in any case.
-
On PC platforms using System V Release 3 UNIX,
a special
"nap"
driver must be installed to implement sub-second sleeps.
This driver is not needed on System V Release 4 platforms.
-
On SCO XENIX, SCO UNIX and AIX PS/2 platforms, a special
driver must be installed to enable access to I/O ports.
If any of
the hardware devices you use require I/O port access, install this
driver.
-
On
linux
platforms, spec is installed as a set-user-id root
program, in order that the
iopl()
system call can be executed.
Note, though, that the root privilege
is only enabled for the duration of that
call.
For the hardware controllers that require an interrupt
on ISA-bus platforms,
you have to carefully select from the limited
interrupts available.
With 8-bit boards, such as the DSP PC004 and the OMS motor controllers,
there are only four interrupts available: 3, 4, 5 and 7.
The conventional PC device assignments are
COM2, COM1, LP2 and LP1 respectively.
(Interrupts 0, 1, 2 and 6 are used by the clock, keyboard, slave
interrupt controller and floppy controller.)
When you install a new board that requires an interrupt vector, you
may have to
disable one of the above devices.
They are generally eliminated in the order
LP2, COM2, COM1, LP1.
If you run out of 8-bit interrupts, it is possible
to wire the interrupt signal from an 8-bit board to an
unused interrupt line in a 16-bit slot.
Contact CSS for advice.
|