356 Fibre Channel Interface Manual, Rev. D
The following are examples of segments:
a. An electrical segment wherein the logical unit tests its own electronics. The tests in this segment are vendor
specific, but some examples of tests that might be included are: a read/write circuitry test and/or a test of
the read/write head elements;
b. A seek/servo segment wherein a device tests its capability to find and servo on data tracks; and
c. A read/verify scan segment wherein a device performs read scanning of some or all of the medium surface.
The tests performed in the segments may be the same for the short and extended device self-tests. The time
required by a logical unit to complete its extended device self-test is reported in the Extended Self-test Com-
pletion Time field in the Control Mode page (see Section 12.13.8).
13.2.3 Device self-test modes
There are two modes for short and extended self-tests: a foreground mode and a background mode. These
modes are described in the following sections.
13.2.3.1 Foreground mode
When a device server receives a Send Diagnostics command specifying a self-test to be performed in the fore-
ground mode, the device server returns status for that command after the self-test has been completed. Not all
Seagate drives support this mode.
While performing a device self-test in foreground mode, the device server responds to all commands except
Inquiry, Report LUNs, and Request Sense with a Check Condition status, a sense key of Not Ready and an
additional sense code of Logical Unit Not Ready, Self-test In Progress.
If a device server is performing a device self-test in the foreground mode and a test segment error occurs dur-
ing the test, the device server updates the Device Self-test results log page (see Section 12.10.4) and reports
Check Condition status with a sense key of Hardware Error and an additional sense code of Logical Unit Failed
Self-test. The application client may obtain additional information about the failure by reading the Device Self-
test Results log page. If the device server is unable to update the Self-test Results log page, it returns a Check
Condition status with a sense key of Hardware Error and an additional sense code of Logical Unit Unable To
Update Self-test Log.
An application client should reserve the logical unit before initiating a device self-test in the foreground mode.
An application client may terminate a device self-test that is being performed in the foreground mode using an
Abort Task, Abort Task Set, or Clear Task Set task management function. If a task manager receives an Abort
Task, Abort Task Set, or Clear Task Set task management function while performing a device self-test in the
foreground mode, it aborts the device self-test and updates the Device Self-test Results log page (see Section
12.10.4).
13.2.3.2 Background mode
When a device server receives a Send Diagnostics command specifying a device self-test to be performed in
the background mode, the device server returns status for that command as soon as the command descriptor
block has been validated.
After returning status for the Send Diagnostics command specifying a self-test to be performed in the back-
ground mode, the device server shall initialize the Device Self-test Results log page (see Section 12.10.4) as
follows. The self-test code from the Send Diagnostics command shall be placed in the Self-test Code
field in
the log page. The Self-test Results field shall be set to Fh. After the Self-test results log page is initialized, the
device server shall begin the first self-test segment.