Additional Device Models

Doug, dtn 237-2145 Flames to NL: 07-Jan-1994 1100 hagerman at starch.enet.dec.com
Fri Jan 7 07:59:56 PST 1994




Date:           January 5, 1994                 X3T10/94-___ Rev 0
To:             X3T10 Committee (SCSI)
From:           Doug Hagerman (Digital)
Subject:        Additional Device Models

1.0 Introduction

The SCSI subsystem Controller Commands (SCC) document includes a
comprehensive device model for RAID devices. During discussion of
how RAID devices are typically constructed it has become evident that
additional device types are needed to manage the other supporting devices
that are present in SCSI subsystems. This document proposes new
device types for Power Supplies, Fans, Operator Consoles, and Caches.

This proposal is a step towards a large number of SCSI device types.
Note that the device type field has 5 bits (32 types), of which 13 are
already in use. These four new ones make a total of 17. In the context
of the new addressing scheme which gives a large LUN address space,
and the need for access to the many parts of a complex SCSI subsystem,
this growth is useful. Also, the use of these new device types allows
the fans, power supplies, etc. of a subsystem to work with the
failover mechanism defined in the SDA document.

These new simple devices have several similarities with each other,
including:
- can be turned on and off
- can report errors
- have control features (voltage level, speed)
- can be configured differently for different applications
- can be included in redundancy groups
- can fail, causing pre-determined configuration changes to take effect
- can have mirror copies or pre-allocated spares
- can run diagnostics
- can report identity
- follow normal SCSI rules regarding the handling of generic commands
(INQUIRY, REQUEST SENSE, SEND DIAGNOSTIC, TEST UNIT READY)

2.0 Power Supply Devices

2.1 Power Supply Device Model

Power supply devices provide electrical power to other parts of
a system. A power supply may be a separate addressable device on a 
SCSI bus, or it may be a logical unit under the control of a SCSI
subsystem controller. An initiator issues START STOP UNIT commands to
a power supply to turn it on and off. Other commands issued by the
initiator may be used to find the status of the power supply.

2.1.1 Redundancy Groups

A power supply may be included in a redundancy group under the control
of a DACL. This allows a power supply to become an integral part of
the redundancy group, with all the availability features of the other
devices in the group. The power supply may be mirrored by a second
power supply, one or more power supplies may be associated with the
group to provide automatic redundancy, and a failure of a power supply
may trigger an automatic reconfiguratoin of the group.

2.1.2 Configuration

An initiator may control the configuration of multiple power supplies
in a SCSI subsystem controller. The details of the power supply
bus layout and interconnection is vendor specific. The amount of
control available to the initiator is similar to that available for
the configuration of disks in an SDA.

2.1.3 Ready State

A power supply is ready for use when it can provide electrical power
to other devices. The ready status of a power supply may be determined
by using the INQUIRY and TEST UNIT READY commands.

2.1.4 Status

The REQUEST SENSE command may be used to determine the status of a power
supply. The possible status values include:

- over-current condition
- low output voltage condition
- low line voltage condition
- high line voltage condition
- open voltage sense line condition
- current limiter activated

2.1.5 Reservations

A power supply may be reserved for the exclusive use of an initiator.
This attribute is controlled by the RESERVE and RELEASE commands.
When a power supply has been reserved by an initiator, only that
initiator may send commands other than INQUIRY, REQUEST SENSE, to the
power supply. Other commands are rejected with certain status values.

2.1.6 Protection Resets

A power supply may implement certain electrical self-protection devices
such as over-current activated circuit breakers. The activation of
such devices is reported to the initiator by a sense key and ASC/ASCQ
value. An initiator may enable, disable, or reset such protection 
devices by using the SET PROTECTION command.

2.1.7 Diagnostics

A power supply may implement automatic self-tests to be executed upon
the application of power to the subsystem. These tests or additional
vendor-specific tests may be executed in response to a SEND DIAGNOSTIC
command.

2.2 Power Supply Commands

2.2.1 INQUIRY, REQUEST SENSE, SEND DIAGNOSTIC, TEST UNIT READY (Mandatory)

These commands work as described in the current SCSI standard.

2.2.2 RESERVE, RELEASE (Optional)

These commands work as described in the current SCSI standard.

2.2.3 START STOP UNIT (Mandatory)

The START STOP UNIT command controls whether a power supply is
to supply power to other units or to discontinue supplying power.

An immediate bit of one indicates that status shall be returned
as soon as the command descriptor block has been validated. An immediate
bit of zero indicates that status shall be returned after the operation
is completed.

A start bit of one requests the logical unit to begin supplying power.
A start bit of zero requests the logical unit to discontinue supplying
power.

2.2.4 SET PROTECTION (Mandatory)

The SET PROTECTION command controls the electrical self-protection
devices associated with the unit.

An enable bit of one requests the logical unit to enable its self-protection
devices. An enable bit of zero requests the logical unit to disable
its self-protection devices. If the devices are disabled, the power
supply may not be able to supply power, and a subsequent REQUEST SENSE
command may show a sense key. After a self-protection device has been
activated, a sequence of SET PROTECTION commands in which the
self-protection device is first disabled, then enabled, will cause the
self-protection device to reset.

2.3 Power Supply Parameters

tbd

2.4 Power Supply Definitions

tbd

3.0 Fan Devices

3.1 Fan Device Model

Fan devices are very similar to power supply devices since the primary
command that they can respond to is the START STOP UNIT command. For
the time being no distinction will be made other than those implied
by the differences in the various tables at the end of this document.

3.2 Fan Commands

3.3 Fan Parameters

3.4 Fan Definitions

4.0 Console Devices

4.1 Console Device Model

Console devices provide a standard method for communication between
a SCSI subsystem Controller and a human operator. An initiator issues
WRITE ASCII commands to display text on a human-readable display
device, and issues READ ASCII commands to input text from a keyboard.
An initiator issues WRITE BITS commands to set and clear binary control
points (e.g. lights), and issues READ BITS commands to input data
|from binary control points. The MASK BITS command may be used to
determine which bits are available for use in WRITE BITS commands.

4.1.1 Redundancy

Consoles are intended for use in complex SCSI subsystem Controller
applications for the purpose of providing human interaction. Redundancy
is not normally a consideration in such applications. This standard
does not preclude redundant consoles.

4.1.2 Status

The REQUEST SENSE command may be used to determine the status of
a console. The possible status values include:
            
- ASCII line too long for display
- ASCII input buffer overflow
- invalid display bit specified

4.1.3 Reservations

A console may be reserved for the exclusive use of an initiator.
This attribute is controlled by the RESERVE and RELEASE commands.
When a console has been reserved by an initiator, only that
initiator may send commands other than INQUIRY, REQUEST SENSE, to the
power supply. Other commands are rejected with certain status values.

4.1.4 Diagnostics

A console may implement automatic self-tests to be executed upon
the application of power to the subsystem. These tests or additional
vendor-specific tests may be executed in response to a SEND DIAGNOSTIC
command.

4.2 Console Commands

4.2.1 INQUIRY, REQUEST SENSE, SEND DIAGNOSTIC, TEST UNIT READY (Mandatory)

These commands work as described in the current SCSI standard.

4.2.2 RESERVE, RELEASE (Optional)

These commands work as described in the current SCSI standard.

4.2.3 READ ASCII (Mandatory)

The READ ASCII command allows an initiator to read an ASCII string
|from a console keyboard. The console stores such strings in one or more
text buffers depending on a vendor specific method. The
READ ASCII command causes a text descriptor to be returned to the
initiator.

The buffer identifier indicates which text buffer is to be read.

The text length indicates the maximum length in bytes of text
that may be returned.

The READ ASCII text descriptor contains the text read from the buffer.
The text descriptor consists of a descriptor length value byte followed
by the bytes of text. The descriptor length value includes the length
byte itself.

4.2.4 WRITE ASCII (Mandatory)

The WRITE ASCII command allows an initator to write an ASCII string
to a console display. The console displays the string on one or more
text displays depending on a vendor specific method. The
WRITE ASCII command causes a text descriptor to be sent to the console.

The display identifier indicates which text display is to be written to.

The WRITE ASCII text descriptor contains the text to be written to
the display. The text descriptor consists of a descriptor length byte
followed by the bytes of text. The descriptor length value includes the
length byte itself.

4.2.5 READ BITS (Mandatory)

The READ BITS command allows an initiator to read the value
of bits (typically controlled by console switches or pushbuttons)
that have been manipulated by the human operator. The READ BITS command
causes a bit descriptor to be returned to the initiator.

The READ BITS bit descriptor contains the bits read from the console.
The bit descriptor consists of a descriptor length value (in bytes)
followed by the bytes containing the bits. The descriptor length value
includes the length byte itself. Each bit may have a value
of one or zero. A bit with a value of one indicates that the associated
console device is set. A bit with a value of zero, if it was previously
determined to be a valid bit by the MASK BITS command, indicates that
the associated console device is clear.

4.2.6 WRITE BITS (Mandatory)

The WRITE BITS command allows an initiator to write the value
of bits (typically indicator lights) that indicate certain values
to the human operator. The WRITE BITS command
causes a bit descriptor to be set to the console from the initiator.

The WRITE BITS bit descriptor contains the bits to be written to the console.
The bit descriptor consists of a descriptor length value (in bytes)
followed by the bytes containing the bits. The descriptor length value
includes the length byte itself. Each bit may have a value
of one or zero. A bit with a value of one, if it was previously determined 
to be a valid bit by the MASK BITS command, indicates that the associated
console device is to be set. A bit with a value of zero, 
if it was previously determined to be a valid bit by the MASK BITS command, 
indicates that the associated console device is to be cleared.

Attempting to set a bit that is not valid causes an illegal request
sense key with an invalid display bit specified qualifier.

4.2.7 MASK BITS (Mandatory)

The MASK BITS command allows an initiator to determine which bits
and text buffers are available in the console. The initiator sends
a MASK BITS command to the console to request a bit mask descriptor.

The mask type value indicates which kind of mask descriptor is desired.
A mask type value of one requests a bit descriptor which has
a bit set in each position corresponding to a valid write bit.
A mask type value of two requests a bit descriptor which has
a bit set in each position corresponding to a valid read bit.
A mask type value of three requests a text descriptor with a letter
for each buffer identifier that is available for ASCII text output, followed
by the length in bytes supported by that buffer.
A mask type value of four requests a text descriptor with a letter
for each buffer identifier that is available for ASCII text input,
followed by the length in bytes supported by that buffer.
(This is pretty ugly. Maybe a mode page would be better.)

The console returns the bit descriptor or text descriptor to indicate the 
bits and text buffers that are available for use.

4.3 Console Parameters

4.4 Console Definitions

5.0 Cache Devices

5.1 Cache Device Model

(This is a placeholder. There have been several requests for the
addition of cache devices to the SCC document, but no other details
have been figured out.)

6.0 Command and Status Summary Tables

6.1 Supported Commands

The following table shows the commands supported by each
new device type.

M = mandatory
0 = optional
? = tbd
- = not supported

command                 fan     p.s.    console cache
-------                 -----------------------------
INQUIRY                 M       M       M       M
REQUEST SENSE           M       M       M       M
SEND DIAGNOSTIC         M       M       M       M
TEST UNIT READY         M       M       M       M
MODE SELECT             -       -       -       ?
MODE SENSE              -       -       -       ?
RESERVE                 O       O       O       M
RELEASE                 O       O       O       M
START STOP UNIT         M       M       -       ?
SET PROTECTION          M       M       -       -
READ ASCII              -       -       M       -
WRITE ASCII             -       -       M       -
READ BITS               -       -       M       -
WRITE BITS              -       -       M       -
MASK BITS               -       -       M       -

6.2 Supported Status Values

The following table shows the status values supported by each
new device type.

M = mandatory
0 = optional
? = tbd
- = not supported

status value            fan     p.s.    console cache
------------            -----------------------------
GOOD                    M       M       M       M
CHECK CONDITION         M       M       M       M
CONDITION MET           -       -       -       ?
BUSY                    M       M       M       M
INTERMEDIATE            -       -       -       ?
INTERMEDIATE - C.M.     -       -       -       ?
RESERVATION CONFLICT    O       O       O       M
COMMAND TERMINATED      M       M       M       M
QUEUE FULL              M       M       M       M

6.3 Supported Sense Key Values

The following table shows the sense keys supported by each
new device type.

M = mandatory
0 = optional
? = tbd
- = not supported

sense key value         fan     p.s.    console cache
---------------         -----------------------------
NO SENSE                M       M       M       M
RECOVERED ERROR         M       M       M       M
NOT READY               M       M       M       M
MEDIUM ERROR            -       -       -       M
HARDWARE ERROR          M       M       M       M
ILLEGAL REQUEST         M       M       M       M
UNIT ATTENTION          M       M       M       M
DATA PROTECT            -       -       -       M
BLANK CHECK             -       -       -       -
VENDOR SPECIFIC         O       O       O       O
COPY ABORTED            -       -       -       -
ABORTED COMMAND         O       O       O       O
EQUAL                   -       -       -       O
VOLUME OVERFLOW         -       -       M       O
MISCOMPARE              -       -       -       O

6.4 Supported ASC/ASCQ Values

The following table shows the ASC/ASCQ values supported by each
new device type. Note that this is not a comprehensive list, since
some of the ASC/ASCQ codes are mandatory for all device types. This
table only shows unique codes.

F = fan
P = power supply  
C = console        
H = cache  

ASC ASCQ  FPCH  DESCRIPTION
--- ----  ----  --------------------------------
xxh  xxh  FPCH  self test failure
          F     fan motor stalled
          F     airflow not detected
          FP    air temperature out of range
           P    over-current
           P    low output voltage 
           P    low line voltage
           P    high line voltage
           P    open voltage sense line
           P    current limiter activated
            C   ASCII line too long for display
            C   ASCII input buffer overflow
            C   invalid display bit specified









More information about the T10 mailing list