beautypg.com

2 scsi pass thru device paths – Intel Extensible Firmware Interface User Manual

Page 538

background image

Extensible Firmware Interface Specification

13-18

12/01/02

Version 1.10

13.2 SCSI Pass Thru Device Paths

An

EFI_SCSI_PASS_THRU_PROTOCOL

must be installed on a handle for its services to be

available to EFI Drivers and EFI Applications. In addition to the

EFI_SCSI_PASS_THRU_PROTOCOL

, an

EFI_DEVICE_PATH_PROTOCOL

must also be

installed on the same handle. See Chapter 8 for a detailed description of the

EFI_DEVICE_PATH_PROTOCOL

.

A device path describes the location of a hardware component in a system from the processor’s
point of view. This includes the list of busses that lie between the processor and the SCSI
controller. The EFI Specification takes advantage of the ACPI Specification to name system
components. For the following set of examples, a PCI SCSI controller is assumed. The examples
will show a SCSI controller on the root PCI bus, and a SCSI controller behind a PCI-PCI bridge. In
addition, an example of a multichannel SCSI controller will be shown.

Table 13-1 shows an example device path for a single channel PCI SCSI controller that is located at
PCI device number 0x07 and PCI function 0x00, and is directly attached to a PCI root bridge. This
device path consists of an ACPI Device Path Node, a PCI Device Path Node, and a Device Path
End Structure. The _HID and _UID must match the ACPI table description of the PCI Root
Bridge. The shorthand notation for this device path is:

ACPI(PNP0A03,0)/PCI(7|0)

.

Table 13-1. Single Channel PCI SCSI Controller

Byte
Offset

Byte
Length


Data


Description

0x00 0x01 0x02

Generic Device Path Header

– Type ACPI Device Path

0x01

0x01

0x01

Sub type – ACPI Device Path

0x02

0x02

0x0C

Length – 0x0C bytes

0x04 0x04 0x41D0,

0x0A03

_HID PNP0A03 – 0x41D0 represents a compressed string ‘PNP’ and is in
the low order bytes

0x08 0x04 0x0000

_UID

0x0C 0x01 0x01

Generic Device Path Header

– Type Hardware Device Path

0x0D

0x01

0x01

Sub type – PCI

0x0E

0x02 0x06 Length

0x06

bytes

0x10

0x01 0x00 PCI

Function

0x11

0x01 0x07 PCI

Device

0x12 0x01 0xFF

Generic Device Path Header

– Type End of Hardware Device Path

0x13

0x01

0xFF

Sub type – End of Entire Device Path

0x14

0x02 0x04 Length

0x04

bytes