Writing Device Drivers

Driver Installation

Hardware Configuration File

SCSI HBA drivers have configuration requirements similar to those for standard device drivers. See Chapter 2, Hardware Overview, for more information.

Installing the Driver

Before an HBA driver can be used, it must first be properly installed on the system. The add_drv(1M) utility must be used to correctly install the HBA driver.

For example, to install the isp sample driver, first copy the driver to the /kernel/drv directory:

	$ su
 	Password:
 	# cp isp /kernel/drv
 	# cp isp.conf /kernel/drv 

Next, run add_drv(1M) to install the driver. For SCSI HBA drivers, specify class as scsi to permit SCSI target drivers to use the HBA driver to communicate with a target device.

# add_drv -m" * 0666 root root" -i'"pci1077,1020"' -c scsi isp 

Once the HBA driver is installed, a reconfiguration boot is necessary in order to create and attach driver instances for target devices attached on the SCSI bus controlled by the HBA device.

See "Installing and Removing Drivers" for more information on driver installation.

x86 Target Driver Configuration Properties

Some SunSoft x86 SCSI target drivers (such as the cmdk disk target driver) use the following configuration properties:

When using the cmdk sample driver to write an HBA driver for an x86 platform, one or more of these properties (as appropriate to the HBA driver and hardware) may need to be defined in the driver.conf(4) file.


Note -

These property definitions should appear only in an HBA driver's driver.conf(4) file. The HBA driver itself should not inspect or attempt to interpret these properties in any way. These properties are advisory only and serve as an adjunct to the cmdk driver. They should not be relied upon in any way. The property definitions may or may not be used in future releases.


The disk property may be used to define the type of disk supported by cmdk. For a SCSI HBA, the only possible value for the disk property is:

The queue property defines how the disk driver sorts the queue of incoming requests during strategy(9E). There are two possible values:

The flow_control property defines how commands are transported to the HBA driver. There are three possible values:

Here is an example of a driver.conf(4) file for use with an x86 HBA PCI device designed for use with the cmdk sample driver:

	#
 	# config file for ISP 1020 SCSI HBA driver
 	#
         	flow_control="dsngl" queue="qsort" disk="scdk"
 		scsi-initiator-id=7;