Initialize Multiple Completions

Initialize Multiple Completions

This command enables the controller to return multiple completed commands to the host with a single completion via the Command Response Block, with a single (optional) interrupt.

When commands are completed using this mechanism, the returned IOPB is replaced with a substantially different Multiple Completion Returned Command structure. Please refer to the system interface section of this chapter for details.

Once the host has enabled multiple completions, the controller will still post back individually completed commands, for any of the following conditions:

Only a single command required posting back (the multiple completion mechanism will never be used to post back less than two commands)

The Disable Multiple Completion bit is set in a particular Transmit or Receive IOPB

The IOPB completed with error or exception. Such IOPBs will always be returned from the controller to the host as a single completion.

When posting a group of commands as a multiple completion, the controller will ignore all interrupt related information in the individual IOPBs, including the Interrupt Enable bit in the Command Options word, and the interrupt level and vector, and will use the related fields provided in the Initialize Multiple Completions instead. However, commands returned via the single completion mechanism will always use the interrupt information contained in the individual IOPB.

The Initialize Multiple Completion IOPB must be issued through the Master Command Entry.

Table 3-34. Common IOPB Structures

Common IOPB Structures

Offst

15

14

 

13

12

11

10

 

9

 

8

 

7

6

 

5

4

3

2

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x00

 

 

 

 

 

 

 

 

Command Code

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x01

 

 

 

 

 

 

 

Command Options

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x02

 

 

 

 

 

 

 

 

Return Status

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x03

 

Normal Completion Level

 

 

 

 

 

 

Normal Completion Vector

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x04

 

 

Error Completion Level

 

 

 

 

 

 

 

Error Completion Vector

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x05

 

 

 

 

 

 

 

 

 

Reserved

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x06

 

 

 

 

 

 

 

 

Control Flags

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x07

 

 

Group Interrupt Level

 

 

 

 

 

 

 

Group Interrupt Vector

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x08

 

 

 

 

 

 

 

Minimum Group Count

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x09

 

 

 

 

 

 

 

Maximum Group Count

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Command Code

This field must be set to 0x80 to execute the Initialize Multiple Completions command.

93