
PCI-X to Serial ATA Controller
Data Sheet
Silicon Image, Inc.
2006 Silicon Image, Inc.
SiI-DS-0160-C
37
5.3.10 External Command PRB Structure
An external command PRB is indicated by setting control_external_command (control field, bit 2). External commands
execute in a manner similar to standard commands except that the initial command FIS is fetched from host memory instead
of the PRB FIS area. By default, an external command uses the “transparent” protocol. That is, the command will be
terminated immediately following the successful transmission of the external command FIS. If this is not the desired protocol,
the host driver can set control_protocol_override (control field, bit 0) and place the desired protocol in the Protocol Override
field (offset 0x00, bits [31:16]).
The external command FIS length may be any size (up to the 8K SATA limit) and will be automatically padded to a Dword
boundary. The SiI3124 will frame the FIS, adding SOF, EOF, and CRC. The host memory FIS image must contain the FIS
header (FIS Type, PMP, etc.). The PRB PMP field (offset 0x08, bits [11:8]) must be populated to direct the FIS to the desired
port multiplier port, or must be zero if no port multiplier is attached. For port multiplier applications, it is important that the PMP
field in the host-resident FIS and the PRB match for proper operation.
The location of the external command FIS is defined in additional SGEs with the XCF bit (SGE offset 0x0c, bit 28) set to one.
Any type of command may be sent using an external command, including commands that have associated data transfers.
Data transfer host memory locations are defined in SGEs with the XCF bit (SGE offset 0x0c, bit 28) set to zero. SGEs used to
define the external command FIS and SGEs used to define data transfer may be freely mixed in any order. The presence or
absence of the XCF bit informs the SiI3124 whether an SGE should be used for the current transfer operation.
31
0
Protocol Override
Control
0x00
Received Transfer Count
0x04
Reserved
PMP
Reserved
0x08
0x0C
0x10
0x14
0x18
Reserved – Must Be Zero
0x1C
SGE0 Data Address Low
0x20
SGE0 Data Address High
0x24
SGE0 Data Count
0x28
SGE0 TRM
SGE0 LNK
SGE0 DRD
SGE0 XCF
Reserved[27:0]
0x2C
SGE1 Data Address Low
0x30
SGE1 Data Address High
0x34
SGE1 Data Count
0x38
SGE1 TRM
SGE1 LNK
SGE1 DRD
SGE1 XCF
Reserved[27:0]
0x3C
Table 5-9 Port Request Block For External Commands