|
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:
-
Interfaces with the Storage processor on the card to load and execute the scripts in response to commands.
-
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. |