HomeAboutusExpertiseCareersContactus











 

Case Studies> > Linux SCSI Driver

The Challenge
The challenge was to develop a device driver for an ULTRA SCSI card. The card has a storage processor and can be programmed through scripts. The device driver needs to interface with the card through registers as well as scripts. The card supported the following features:· 

  • Performance: Up to 40Mbps Ultra SCSI, Up to 10Mbps Fast SCSI

  • 8 bit, 16 bit Single Ended

  • 4KB built in SCRIPTS RAM to load the scripts.

  • Handles SCSI phase mismatches in scripts without interrupting the CPU· PCI interface

The Solution

Linux follows a three-layer architecture for SCSI. The upper most layer of the SCSI subsystem has the job of taking requests that come from outside of the SCSI subsystem, and turning them into actual SCSI requests. The requests are in turn passed down to the middle layer. Once the command processing is complete, the upper layer receives the status from the middle layer, and in turn the upper layer will notify the external layer of the status. The upper layer has drivers for taking care of the target devices such as disks, tapes, and CDROMs. The middle layer acts as the configuration layer (e.g. scanning the SCSI bus, setting up the path between upper and lower layers) and the glue between the upper layer and the Host bus adapter layer. It supports command queuing too. The low-level drivers/HBA layer is responsible for interfacing with the Host bus adapter. So, we developed an HBA driver, which does the following:

  1. Interfaces with the Storage processor on the card to load and execute the scripts in response to commands.

  2. Provides the entry point to the Linux SCSI subsystem so that the middle layer can communicate with it.

The device driver was developed in 4 months time.

The Technology

The complexity of the project was in understanding the way the storage processor is programmed using SCRIPTS and interfacing with the SCRIPTS from the driver. 

The Result

This project enabled GRACELABS to build on its technical resources in the areas of Storage and SCSI device drivers/protocol, which could be utilized in other future projects

   
Powered by CKM4 copyright © Grace System Technology Labs 2004 - 05 All rights reserved