8 EISA/ISA Bus Device Driver Configuration
The third-party device driver model allows dynamic or static
configuration of a device driver from a single binary module. The
driver's
configure
routine handles all configuration operations either at startup (for
static configuration) or at run time (for dynamic configuration). See
Writing Device Drivers: Tutorial
for a description of the
configure
routine.
To support configuration, device drivers must provide a
sysconfigtab
file fragment, which contains a description of the devices that the
driver can control. The
information in the file fragment is added to the system's
/etc/sysconfigtab
file when the driver is installed. This entry is used by both the startup
procedure and the
sysconfig
utility to locate the driver module and set device attributes.
The information provided in the
sysconfigtab
file fragment depends on the bus on which the device can operate.
Entries for EISA and ISA buses have a similar form:
{
EISA_Option
|
ISA_Option
}
= \
Board_Id -
board_id
, \
Function_Name -
function
, \
Driver_Name -
driver_name
, \
Intr_B4_Probe -
boolean
, \
Intr_Aft_Attach -
boolean
, \
Type -
device_type
, \
Adpt_Config -
cfg_interface
, \
Comment -
string
The following list describes the information you provide for each
attribute in the
sysconfigtab
entry:
-
board_id
-
Specifies the EISA bus option expansion board's product ID.
The EISA bus support code compares the value stored in this member
with an EISA ID register to identify an option module and connect it to
its associated device driver.
The product ID consists of a 3-character manufacturer code, a
3-character product identifier, and a 1-character revision
number. For example, the string
ADP0002
identifies this as a second revision of an Adaptec ADP1742A SCSI
option board.
ISA bus device drivers do not use this member. Typically, ISA
device drivers set this member to
NULL.
-
function
-
Specifies the character string that identifies one configuration for the
board. This text must match the value specified in the
TYPE
statement of the EISA configuration file. This is useful
for multifunction boards, which have more than one possible
configuration. For these boards, you create one
EISA_Option
entry for each possible configuration; one
is chosen when the user runs the ECU.
The default is
NULL.
-
driver_name
-
Specifies up to 8 characters of text that identify
the name of the controlling device driver.
For example, the string
aha
identifies this as the controlling device driver for the device
connected to an ADP1742A SCSI option board.
-
boolean
-
When used with the
Intr_B4_Probe
option, specifies whether the device needs interrupts enabled before the bus
configuration code calls the driver's
probe
interface. When used with the
Intr_Aft_Attach
option, specifies whether the device needs interrupts enabled after
the driver's
probe
and
cattach
or
dattach
interfaces complete execution.
You can set one or the other of these options, but not both.
A value of zero (0), the default,
indicates that the device does not need interrupts enabled at the
specified configuration point; a
value of 1 indicates that the device does need interrupts enabled.
-
device_type
-
Specifies
the type of device.
You can set
device_type
to
C
(the device is a controller)
or
A
(the device is a bus or an adapter).
The default value is
C.
-
cfg_interface
-
Specifies the name of the bus (or adapter) configuration interface to call.
You set
cfg_interface
to the string that identifies the bus configuration interface if
device_type
is
A
(the device is a bus or an adapter).
Otherwise, do not set
cfg_interface
to any value.
-
string
-
Specifies a C comment to appear at the end of the
/etc/sysconfigtab
entry.
Your comment can be a maximum of 24 characters, including the C comment
delimiters.
The following example shows the entry for the
/dev/envram
driver:
EISA_Option = Board_Id - DEC2500, Function - NULL, \
Driver_Name - envram, Intr_B4_Probe - 0, \
Intr_Aft_Attach - 0, Type - C