Intel Extensible Firmware Interface User Manual
Page 524

Extensible Firmware Interface Specification
13-4
12/01/02
Version 1.10
Description
The
EFI_SCSI_PASS_THRU_PROTOCOL
provides information about a SCSI channel and
the ability to send SCI Request Packets to any SCSI device attached to that SCSI channel. The
information includes the Target ID of the host controller on the SCSI channel, the attributes of
the SCSI channel, the printable name for the SCSI controller, and the printable name of the
SCSI channel.
The
Attributes
field of the
EFI_SCSI_PASS_THRU_PROTOCOL
interface tells if the
interface is for physical SCSI devices or logical SCSI devices. Drivers for non-RAID SCSI
controllers will set both the
EFI_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL
, and the
EFI_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL
bits. Drivers for RAID controllers that
allow access to the physical devices and logical devices will produce two
EFI_SCSI_PASS_THRU_PROTOCOL
interfaces. One with the just the
EFI_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL
bit set and another with just the
EFI_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL
bit set. One interface can be used to access
the physical devices attached to the RAID controller, and the other can be used to access the logical
devices attached to the RAID controller for its current configuration. Drivers for RAID controllers
that do not allow access to the physical devices will produce one
EFI_SCSI_PASS_THROUGH_PROTOCOL
interface with just the
EFI_SCSI_PASS_THRU_LOGICAL
bit set. The interface for logical devices can also be used by
a file system driver to mount the RAID volumes. An
EFI_SCSI_PASS_THRU_PROTOCOL
with
neither
EFI_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL
nor
EFI_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL
set is an illegal configuration.
The Attributes field also contains the
EFI_SCSI_PASS_THRU_ATTRIBUTES_NONBLOCKIO
bit. All
EFI_SCSI_PASS_THRU_PROTOCOL
interfaces must support blocking I/O. If this bit is
set, then the interface support both blocking I/O and nonblocking I/O.
Each
EFI_SCSI_PASS_THRU_PROTOCOL
instance must have an associated device path.
Typically this will have an ACPI device path node and a PCI device path node, although variations
will exist. For a SCSI controller that supports only one channel per PCI bus/device/function, it is
recommended, but not required, that an additional Controller device path node (for controller 0) be
appended to the device path. For a SCSI controller that supports multiple channels per PCI
bus/device/function, it is required that a Controller device path node be appended for each channel.
Additional information about the SCSI channel can be obtained from protocols attached to the
same handle as the
EFI_SCSI_PASS_THRU_PROTOCOL
, or one of its parent handles. This
would include the device I/O abstraction used to access the internal registers and functions of the
SCSI controller.