20.1.2 Multi-Channel SCSI Adapters

A SCSI host controller driver is more complex if the SCSI adapter provides multiple SCSI channels. The following figure shows a possible SCSI driver implementation on a two-channel SCSI adapter.

Figure 23-Sample SCSI driver implementation on a multichannel adapter

In this case, the SCSI adapter produces two physical SCSI channels by performing the following:

  • Create a child handle for each physical SCSI channel.
  • Install Device Path Protocol to each child handle.
  • Install Extended SCSI Pass Thru Protocol onto each child handle
  • Set the logical attribute for the SCSI channel in the mode structure on each child handle.
  • Set the physical attribute for the SCSI channel in the mode structure on each child handle.

The platform firmware provides the SCSI Bus Driver and SCSI Disk Driver that complete the two driver stacks on each of the Extended SCSI Pass Thru Protocols shown above by performing the following actions:

  • Scan for SCSI targets on each SCSI channel and create child handles.
  • Install Device Path Protocol to each child handle.
  • Install SCSI I/O Protocol to each child handle.
  • Install I/O abstraction such as the Block I/O Protocol to each child handle.