Table of Contents
ksc2927 - KSC 2927 device driver
Device driver for Kinetic
Systems 2927 PC AT buss / CAMAC interface. This driver uses the IOTRANS
and IODATA structures.
This driver is compiled in two versions. The version
for the Linux 2.0.x kernel is called ksc2927mod_20.o. The version for the Linux
2.2.x kernel is called ksc2927mod_22.o.
- CAMnrm
CAMAC normal I/O mode.
- CAMscan
CAMAC scanned I/O mode.
- CAMrpt
CAMAC repeat until Q is true mode. IOTRANS.Count is used for the number of
times to repeat transaction. IOTRANS.Rcnt is used for the number of times
transaction is actually repeated. The transactions is repeated until Q becomes
true or Count is reached. The maximum value of Count is checked by the driver
and is presently set at 10000.
The I/O list for this mode requires one IOTRANS and one IODATA. Operations
involving data transfer use the value of IODATA.Current. The same IODATA
is used each time.
- CAMstop
CAMAC repeat until Q is false mode.
- CAMdma_Qscan
DMA style CAMscan operation.
- CAMdma_Qstop
DMA style CAMstop operation.
- CAMdma_Qrpt
This mode is not implemented.
- CAMdma_Qign
This mode is not implemented.
These are the supported ioctl()
function codes. Each ioctl() call is made using one of the listed codes.
A pointer to a variable of type CAMAC_IOC is passed to the driver.
The crate(8)
program provides an interface to many of these function codes.
- CAMioRST
Reset the 2927.
- CAMioDOz
do crate initialize
- CAMioDOc
do crate clear
- CAMioINHset
set inhibit
- CAMioINHclr
clear inhibit
- CAMioREADcsr
read CSR reg
- CAMioREADpat
read lam pattern reg
- CAMioREADmask
read lam mask reg
- CAMioDIAGminor
read minor table
- CAMioDIAGcrate
get crate 0 LAM table
CAMioDIAGcrate + <crate> gets information for crates 0 to 7
In
addition to the functions described above these functions are provided
to facilitate LAM service.
- CAMioLAMset
subscribe to a LAM.
- CAMioLAMclr
clear a LAM.
The module is installed by
insmod(8)
. The
major device number may be set when the module is installed by "major=<major_dev_number>".
The major device number defaults to 70 if not specified.
The interrupt number
may be set by "irq=<interrupt_vector_number>". The interrupt number defaults
to 15 if not specified.
The base address may be set by "io=<base_address>".
The base address defaults to 0x380 if not specified.
The driver does NOT
do an autoprobe.
For example:
/sbin/insmod ksc2927mod_20.o major=80 io=0x240 irq=10
Nine device nodes need to be added to /dev for this device. Minor numbers
0-7 are used for LAM service. Minor number 255 is used for normal I/O service.
For example:
mknod /dev/camaclam0 c 70 0
mknod /dev/camaclam1 c 70 1
mknod /dev/camaclam2 c 70 2
mknod /dev/camaclam3 c 70 3
mknod /dev/camaclam4 c 70 4
mknod /dev/camaclam5 c 70 5
mknod /dev/camaclam6 c 70 6
mknod /dev/camaclam7 c 70 7
mknod /dev/camac c 70 255
After the nodes are made write permissions should be changed as follows:
chmod 666 /dev/camaclam0
chmod 666 /dev/camaclam1
chmod 666 /dev/camaclam2
chmod 666 /dev/camaclam3
chmod 666 /dev/camaclam4
chmod 666 /dev/camaclam5
chmod 666 /dev/camaclam6
chmod 666 /dev/camaclam7
chmod 666 /dev/camac
At this time (8/2/99) the newest version of the driver has not been
tested because NEC doesn’t have a ksc2927 card.
$Id:
ksc2927.4,v 1.1 1999/08/02 14:20:50 kitchen Exp $
Table of Contents