Command descriptor block

A SCSI command descriptor block (CDB) is a sequence of 6, 10, 12 or 16 bytes sent by a host to a SCSI target with the bus in command phase. The CDB tells the drive what action should be performed. The final byte is known as the Control byte.

 

 

7

6

5

 

4

3

 

2

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

Group Code

 

 

 

 

 

Operation Code

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

Reserved (0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

(MSB)

 

 

 

Multi-Byte Parameter

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n1

 

 

 

 

 

 

 

 

 

(LSB)

 

 

 

 

 

 

 

 

 

 

 

 

 

n

Vendor Unique (0)

 

Reserved (0)

 

 

NACA(0)

Flag (0)

Link (0)

 

 

 

 

 

 

 

 

 

 

 

 

There are a number of fields in a CDB which are common to all commands. These are shown in the following table.

Group Code and The operation code uniquely identifies the command. The top three bits of the Operation Code operation code are known as the group code and these define the length of the

command descriptor block:

 

Group 0

Six-byte commands

 

Group 1

Ten-byte commands

 

Group 2

Ten-byte commands

 

Group 3

Six-byte commands

 

Group 4

Sixteen-byte commands

 

Group 5

Twelve-byte commands

 

Group 6

not supported

 

Group 7

not supported

 

 

Reserved

A reserved field should always be set to zero. The drive checks reserved fields, and if

 

one is non-zero then it will reject the command with CHECK CONDITION.

 

 

Multi-Byte

A multi-byte parameter field in a command is “big-endian”, that is, bit 7 of the first

Parameter

byte of this field is the most significant.

 

 

Control

The control field is mainly concerned with the use of linked commands. These are not

 

supported by the LTO SCSI Command Set, so a CHECK CONDITION will be generated

 

if this field is set to anything other than zero.

 

 

Vendor-Unique

This field is ignored by the firmware

NACA

0

The Normal ACA flag is 0, indicating that it is not supported.

 

 

 

Flag

0

 

 

 

 

Link

0

Linked commands are not supported.

Commands—introduction

Command descriptor block 35