Patch-ID# 108408-02
Keywords: DLT, DLT7000, Flexipack, Quantum, Tape Drive, Firmware
Synopsis: Hardware, DLT7000 Tape Drive, Firmware Download Program
V101
Date: 09/01/2003 

Install Requirements: None
                   
Solaris Release: 

SunOS Release: 

Unbundled Product: StorEdge DLT7000 Flexipack

Unbundled Release: N/A

Xref: 

Topic: 

Relevant Architectures: sparc 

BugId's fixed with this patch: 

Changes incorporated in this version:

- Changed tload from tload_3.3 tload_4.1
- Uplevel tape drive firmware to V101

Patches accumulated and obsoleted by this patch: 108408-01

Patches which conflict with this patch: 

Patches required with this patch: 

Obsoleted by: 

Files included with this patch: 

D7S_V101.IMG
README.108408-02
tload_4.1

Problem Description:  A few dozen DLT7000 drives exist that 
contain SRAMs which may fail over time.  When the SRAM hard
fails, the drive posts a Bugcheck #9049 (FIFO fails CRC on
read) which means it has detected a bit dropout in the SRAM 
data buffer.

Patch Installation Instructions:
--------------------------------

None.

Special Install Instructions:
----------------------------------------------------
 
Release Notes for revision changes from V95 to V101
===================================================
V96

1. Problem Description: Some library customers have experienced problems with
V95 when attempting to extract a cartridge from the drive. When the door handle
is opened to eject the cartridge, the solenoid closes and holds the cartridge for 2
seconds before releasing it. This causes the cartridge to appear locked in the
drive.
Root Cause: In V87 the solenoid closes for 200ms after the drive handle is opened
to soften the cartridge ejection. For library customers it is recommended that
cartridge extraction be delayed 2.82 seconds after the handle opens. V95 was
modified to keep the solenoid closed for 2 seconds after the drive handle is
opened to ensure safe cartridge extraction.
Corrective Action: The code has been modified for all customers to behave as it
did in V87. The solenoid closes for 200ms when the handle is opened.

2. Problem Description: It is possible that if a problem occurs during a firmware
update (FUP), that an invalid image is left in the tape drives flash memory,
causing the power on self tests to fail, rendering the drive in-operable.
Root Cause: In the programming of the flash, the verification is only performed
on a byte by byte mode, after each byte is programmed. No overall checking was
performed to assure that the complete image is programmed properly.
Corrective Action: The flash programming functions are encapsulated into a
retry loop. If at any time a failure is detected during the flash programming
steps, the retry loop is re-entered. The CRC is calculated for the entire image
before programming, and a CRC is calculated on the flash memory after
programming and is compared. If there are differences, the update routine is
retried.

3. Problem Description: In certain circumstances, the drive would go bus free
during a read operation.
Root Cause: A timer that is designed to detect infinite loops in the code caused
the drive to go bus free. This can only happen with a high performance host
doing many consecutive read operations.
Corrective Action: Clear the timer when we begin the read operation.

4. Problem Description: Drive would communicate garbled data during INQUIRY
command when it initiated negotiation (ENAINITSYNCNEG set) with a narrow
host.
Root Cause: The firmware stores both the last message sent to the host and the
last message received from the host. The firmware incorrectly looked at the last
message received from the host when determining what message the host rejected.
Corrective Action: Fixed code to check last message sent to initiator (not last
message received from initiator) when determining how to handle a Message
Reject following a bus negotiation whether wide or synchronous.

5. Problem Description: The host computer is reselected after a SCSI Bus Device
Reset of a Read command
Root Cause: A line of code was inadvertently commented out.
Corrective Action: Add the line of code back in to the source.

6. Problem Description: A SCSI Space command followed by an Abort may cause
the drive to hang. It may not respond to commands after that or it may respond
with overlapped command status. The drive requires a power cycle to clear the
problem.
Root Cause: The firmware did not exit seek mode correctly after the abort.
Corrective Action: Insure the firmware exits seek properly.
Note: A specific test case has been corrected. Not all cases may have been fixed.

7. Product Enhancement: Added support for a software write protect command, Set
File Protect. This command can only be initiated through the library port. The
status of this write protect will be saved through all forms of drive resets (e.g.
SCSI bus reset, reset over the library port), although an unload will reset the
status of the write protect.


V97

1. Problem Description: After an aborted SCSI Long Erase command a SCSI Space
command is attempted. The tape drive responds correctly with a status of blank
check, but the cleaning light is illuminated.
Root Cause: The case of a SCSI Space command was not factored into the
cleaning light algorithm.
Corrective Action: If a Space command is issued from BOT with an erased tape,
do not turn on the cleaning light.

2. Product Enhancement: Improved reposition algorithm to increase the system's
ability to clear potential debris contamination between the head and media.

3. Problem Description: SCSI Send Diagnostic Level 1 Test fails under certain
cases.
Root Cause: The diagnostic code checks internal memory and erroneously reports
an error.
Corrective Action: Modify test to eliminate erroneous error report.

4. Problem Description: Using a tape that has been partially erased in: and issuing a
Space command followed by an Abort message and a Rewind command causes an
Unexpected Bus Free condition.
Root Cause: The aborted Space command was not completely cleaned up
internally, prior to the processing of the following Rewind command.
Corrective Action: Ignore the remnants of the aborted Space command.

5. Product Enhancement: A new bit was added to the Tape_Data_Packect_3
command described by the DLT Interactive Library Interface Specification. This
bit is used to detect when the drive had difficulty loading a cartridge and entered
the "Cartridge Rejected" mode.

6. Product Enhancement: Reserved bits of the Library Port General Status
Packet, byte 7, bits 2 and 4, have been zeroed.

7. Problem Description: The library Cartridge Present status was not always correct
during a cartridge reject situation.
Root Cause: Library Cartridge Present status was incorrectly updated in certain
situations.
Corrective Action: Update library status based upon every drive status command.


V100

1. Problem Description: A false drive error event log was being recorded when a Medium
Error on DLTtape III occurred.
Root Cause: An unnecessary command that is no longer supported was being sent to
the servo code.
Corrective Action: Removed the unnecessary command.

2. Product Enhancement: Enhanced the read algorithm, by switching to manual hardware
read mode if auto read mode is not successful, during read retries. This improvement
significantly reduces the Hard Read errors.

3. Problem Description: Write command after an aborted Space command returns Sense
information of Aborted command/Internal Target error/Unknown Error (OB/44/89).
Root Cause: The internal processing of the aborted Space command was not complete.
Corrective Action: On the Aborted command, set drive state to indicate that position is
lost. This causes MediumError/Position Error Detected by Read of Media (3/15/02)
Sense information to be returned on the Write command.

4. Problem Description: An Erase command after an aborted Space command returns
Sense information of aborted command/Internal Target error/Unknown Error
(OB/44/89).
Root Cause: The internal processing of the aborted Space command was not complete.
Corrective Action: On the Aborted command, set drive state to indicate that position is
lost. This causes MediumError/Error Detected by Read of Medium (03/15/02) Sense
information to be returned on the Erase command.

5. Problem Description: An Unload command after an aborted Space command returns
Sense information of Not Ready (02/04/02).
Root Cause: The internal processing of the Unload command after an aborted
command was not complete.
Corrective Action: Set internal flags appropriately so that the Unload command can be
performed.

6. Problem Description: A Deferred Error was being sent to the host when it should not
have been sent, if a cached Write command was followed by a Flush command (write
filemark 0). The Deferred Error is an Abort command /Internal Target
Failure/Unknown Error (0B/44/89).
Root Cause: Improper implementation of how a deferred error was promoted to the
current command was causing a non SCSI related error to be sent over the SCSI bus.
Corrective Action: Corrected the implementation of how a deferred error is promoted
to the current command so the subsequent command is no longer reported as Aborted
command/Internal Target Failure/Unknown Error.

7. Problem Description: Read command after an aborted Space command, reports Sense
information with ILI bit set.
Root Cause: The aborted Space command left the drive at an unknown location on the
tape and the Read was attempted from a bad position.
Corrective Action: On the Aborted command, set drive state to indicate that position is
lost. This causes Medium Error/Position Error Detected by Read of Medium
(03/15/02) Sense information to be returned on the Read command.

8. Problem Description: Hard Read error on DLT7000 T100-4 for a tape written in
DLT7000 format that is readable with no errors on previous code revisions.
Root Cause: Two modifications of the Read Retry algorithm were invoked on the same
error condition, thereby nullifying the retry correction.
Corrective Action: The algorithm has been modified so that both modifications to the
Retry algorithm will not happen simultaneously on a retry step.

9. Problem Description: Host system was unable to communicate with the drive if the
handle remained open for more than 5 minutes following power-up.
Root Cause: Drive initialization timeout after 5 minutes disabled the drive from that
point onward.
Corrective Action: Modified the drive initialization routine to remain in initialization
processing until successful completion of initialization.

10. Problem Description: When powering-up a drive with a detached leader, the drive will
continually reset in an attempt to finish initialization.
Root Cause: Servo errors cause drive reset commands to be issued during initialization
sequence.
Corrective Action: Code modification to detect this condition. When this condition is
detected, the drive will halt tape operation to prevent tape damage.

11. Problem Description: Recovered communication errors were improperly logged as
Drive Error event logs (A402) when the drive errors do not exist in internal servo
history data.
Root Cause: Drive communication error events are logged as a Drive Error Events,
leading to misidentification of error code/status field of event log.
Corrective Action: Drive communication error events are now logged as A410 event
logs, which are informational only.

12 Product Enhancement: EEROM Parameter REDUNDANCYMODE determines how
many marginal channels a drive could have and still be able to write. Drives can
operate with marginal channels by remapping data to other channels.
Previously, REDUNDANCYMODE defaulted to 1. This enabled the drive to write
with one marginal channel. Data from the marginal channel is continually remapped to
other channels. Continually remapping data to other channels can result in excessive
bad blocks on a tape and reduced tape capacity.
The REDUNDANCYMODE default has been changed to 0. In this mode, the drive
will attempt to rewrite areas of tape rather than continuously remapping the data from a
marginal channel. Rewriting the areas of tape will reduce the number of bad blocks on
a tape.
The REDUNDANCYMODE parameter could be changed back to 1, so that a drive
with a marginal channel can continue to operate, but it is not recommended.
The REDUNDANCYMODE values of 2 or 3 (meaning 2 or 3 marginal channels
allowed while writing) will no longer be allowed.

13. Problem Description: Hard Write errors (event log A401) were detected at ends of
tracks.
Root Cause: Some of these Hard Write errors were due to write servo logic in the tape
drive, others may have been caused by debris.
Corrective Action: Changes were made to the write servo algorithm to make it more
robust. Alignment of servo data to BOT/EOT holes was made more precise. The servo
declares OFF track earlier to guarantee write servo data can be written always under
worst case write retry scenarios. The drive now calibrates for read/write offset for every
tape load so write servo algorithm uses the most accurate information in checking
offsets. In addition, retries are performed when a write servo error occurs.

14. Problem Description: Two error conditions can result when a cartridge is inserted in a
drive and it does not seat properly:
1. It may not be possible to remove the cartridge from the drive.
2. After cartridge removal, the leader may not be tensioned properly which makes it
difficult to insert a new cartridge.
Root Cause: The cartridge sometimes could not be removed because the solenoid was
closed. If the cartridge was removed, it was sometimes ejected improperly and the
drive not configured properly to then accept a new cartridge.
Corrective Action: Code was modified to ensure that a cartridge can be removed and a
new cartridge inserted.
15. Problem Description: High write error rates at the ends of tape were observed when
writing in older formats, such as the DLT2000 format.
Root Cause: An inadequate amount of tension was being applied at the ends of tape.
Corrective Action: Tension will now increase by up to 0.5 ounces while writing at the
ends of tape in non-DLT7000 formats. The total tension allowed is limited depending
on the format selected.

16.Problem Description: The possibility of hard read errors occurring when reading newly
written tapes.
Root Cause: Relative read channel skew differences between read and write was being
used as the write margining scheme. This was not sufficient.
Corrective Action: The skew set is now the same as the read skew so no relative skew
is used. Set up the read filter for writing DLT7000 format with a boost/cutoff value
that detunes the filter to provide write margin.

17. Problem Description: Read retries are being exhausted resulting in Hard Read errors.
Root Cause: The read retry algorithm was limited to three cycles of 32 unique retries,
where each retry has fixed settings for parameters, such as tension, head position, etc.
Corrective Action: The read retry algorithm has been modified to include a new
parameter and consists of 96 unique retries. This provides a significant improvement in
the likelihood of a successful read.

18. Problem Description: High error rates seen during routine operation.
Root Cause: Heads do not self-clean well when run in azimuth mode. The heads are
positioned in vertical mode so they clean best when put in vertical mode.
Corrective Action: A few places were identified as useful and practical places to put
the head in vertical mode.
- When a tape is loaded, prior to calibration, the tape is moved back and forth in the
scratch area with the head in vertical mode. Also, if the calibration should fail the
same process is repeated in an attempt to effectively clean the heads.
- When about to pass over the write servo pattern the heads are put in the vertical tilt
position. This is done in read mode only. In write mode the write servo is being
written and read so it is impractical to tilt the head vertical.
- For long moves, greater than 400 tape addresses, move in the vertical tilt position.
- When moving backwards, i.e. not reading or writing, move in the vertical tilt
position.

19. Product Enhancement: Illuminate the Write Protect LED as a result of the Set File
Protect command being issued from a library. Turn off the Write Protect LED on an
unload or a power cycle.

20. Problem Description: During power-up, byte 7 of the General Status Packet of the tape
library may be improperly initialized.
Root Cause: Byte 7 of the General Status Packet of the tape library was being
overwritten with wrong information at a point when only the Handle Position bit
should be updated.
Corrective Action: When updating the Handle Position bit in the General Status Packet
of the library, ensure that other bits are not updated.

21. Problem Description: When there is a communication error on the RS422 port that is
used for the library communication, the drive would reset. This could cause a
command to take a long time to complete.
Root Cause: When a framing error or UART overrun error occurs, the drive will
bugcheck with the event code of B810.
Corrective Action: The drive will now cleanup the UART and continue instead of
bugchecking and resetting. This will cause the command to not be accepted by the
drive. It is the library's responsibility to assure that the command issued was accepted
by the drive. If the library has sent a command and does not see the drive acting on it,
the command should be reissued.

V101
1. Problem Description: If the drive has buffered mode on and a buffered write
command fails, the drive correctly reports a Deferred Error on the next tape motion
command. However, subsequent write type commands may continue to be
buffered with good status returned to the host, or a subsequent write command may
return another deferred error. It is preferred to send a Check Condition/Current
Error/Medium Error on subsequent write commands.
Note: Some simple hosts only look at Current Errors and will not know that
buffered commands have not been written to tape.
Root Cause: Lines of code were removed that promote a Deferred error to a
Current Error because it was causing an internal error to be sent over the SCSI Bus
(0B/44/89).
Corrective Action: Added the lines of code back in such that deferred errors
continue to be reported correctly and subsequent write type commands return a
Check Condition with sense data of Current Error.

2. Problem Description: Read command disconnects and never reselects. This can
occur when the drive is in a state in which a Read command would immediately
return a Check Condition. This can occur after a hard read error in which the drive
is left in a "position lost" state. Subsequent Read commands should return a Check
condition until the state is cleared.
Root Cause: The problem was introduced when correcting the checking and
reporting of a Check Condition after a SCSI Abort message. The routine to check
and report the Check condition was put in the wrong location. This allowed a SCSI
disconnect to be started before checking if a Check Condition should be reported
instead. This lead to the drive attempting to send status before the disconnect had
enough time to complete.
Corrective Action: Moved the check for whether the drive is in a state to accept a
Read Command to be before disconnecting from the SCSI bus. Therefore, a Check
condition Status will be sent without disconnecting.

3. Problem Description:  Bit errors may not be detected in the data stream.  The 
drive posts no SCSI events but does post an internal Bugcheck #9049 to Log Page 7
of the tape device. 
Root Cause: This problem was detected in the DLT8000 drive.  At that time, the 
algorithms used to fix the problem with the DLT8000 were also built into 
the DLT7000 firmware (V95) but not turned on.  
Corrective Action: The decision was made to turn on the error detection code with 
this release though no problem reports for similar failure modes exist for the 
DLT7000 at this time.  The Drive now posts a Hard Read error via the SCSI bus if
such a failure occurs.


===================================================
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Contents
--------    
A.0  Firmware File Names & Utility Descriptions
B.O  Precautionary Statements
C.O  Patch Installation and Utility Usage Intructions
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A.0  Firmware File Names & Utility Descriptions
-----------------------------------------------
 A.1 D7S_V101.IMG       --> The firmware binary image D7S_V101.IMG (663,552 bytes) 
 A.2 tload              --> The firmware download utility (58,436 bytes)
 A.3 README.113359-01   --> This file (? bytes)
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
B.0  Precautionary Statements
-----------------------------
 
**WARNING:****WARNING:****WARNING:****WARNING:****WARNING:****WARNING:**
 
B.1 The system MUST BE IDLE during the firmware download process!  No 
    other programs should be running while this utility is being used.  
    Failure to do so may cause the devices being upgraded to fail or 
    the system to crash.
 
    Any other computers sharing the same I/O bus as the host system
    must be either disconnected or offline.
 
B.2 If any upgrade failures occur, do not continue upgrading devices.
    For example, loss of power during download will result in damaged
    peripherals and require replacement.
 
    If any failures occur, please collect the following log file:
    "/var/adm/messages", and an explorer dump.  Please forward these 
    files to your service provider for analysis. 
 
B.3 This package will only function on Quantum DLT7000 SCSI Tape Drives
    which were shipped/used in Sun StorEdge DLT7000 Flexipack.
 
B.4 Please READ instructions below completely BEFORE starting download 
    procedure.  Follow the procedures carefully.  You may program 
    multiple drives at the same time, however, you may not exit the
    utility until all drives have completed the download process. 
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
C.O  Patch Installation and Utility Usage Intructions
-----------------------------------------------------
 
C.1 General guidelines for upgrading: 
 
        EJECT MEDIA FROM DEVICE TO BE UPGRADED.  Download utility will
        eject media from the device if it is found to be loaded.  Do
        NOT attempt to force media back into the drive.  Media present
        in a device having firmware downloaded to the device may result
        in data loss from media or damage to device.
 
        STOP ALL APPLICATIONS. The system must be idle during the
        firmware upgrade process.
 
        DISCONNECT or take OFFLINE any other computers sharing the same
        I/O bus as the host.
 
        UPGRADE the tape device.  Follow the given instructions in
        the procedure section below.
 
        In case of any disruption or unforeseen events happening on the 
        relevant bus during the firmware download process, it may be 
        that the upgraded device becomes non-functional.  In this event,
        it will be necessary to replace the device. This would happen 
        as a result of an incomplete or corrupted firmware file being 
        downloaded.  Loss of power during the upgrade process would also
        damage the device.
 
**NOTE**    If you cannot upgrade devices due to software application
            interference, try booting off of the Solaris release CD.
 
**NOTE**    After the firmware download is completed, it may be necessary
            to power cycle the device to ensure fully resetting the device.
            In turn, this may also require a successive reboot of the host
            system to ensure all functionality is restored.
 
 
C.2 Procedure for Tape Firmware Download: 
 
The procedure to be used for upgrading the device's firmware is explained
below.  Upgrade time will be approximately 3-5 minutes for each device.  You 
must have root/super-user privileges in order to perform this operation.
 
a). Unpack the patch (through tar) into any directory, e.g. /var/spool/patch
    (Note, if the patch ends in a ".Z" suffix, you will need to first
    uncompress it.)  Example:
	# uncompress <filename.tar.Z>
        # tar xvf <filename.tar>
 
b). In the patch directory, as root, type the "tload" command:
        # ./tload D7S_V101.IMG 
 
c). Select the tape device to be upgraded (see example below).
 
**NOTE**    This upgrade can result in error messages in the console 
            window and/or the terminal "tload" window.  It is normal
            for a SCSI bus reset message to appear in the console
            window for each device that is upgraded.
 
d). Ensure that the device to be upgraded is the correct one and answer
    the question: 
        Do you want to download firmware to this tape device [N]?
    with a 'y' for yes or anything else for no.  Default answer is no.
 
e). After each device has been upgraded, the displayed tape device
    list will be refreshed.  Device(s) upgraded should reflect having
    the new code level, "????", in the "Rev" field (see example below).
 
f). If there is an additional device to be upgraded (same device type
    and desire to upgrade to the latest firmware), select that device
    as previously done in C.2.c). & C.2.d). above.  Continue in this 
    fashion until all desired devices have been upgraded.
 
g). Quit the "tload" program by typing '0' (see example below).
 
**************************************************************************
 
C.3  EXAMPLE
 
#
#########################################
#
# Launch Tape Firmware Download Utility:
#
#########################################
#
Cut and paste screen output here for examples.  Recommend using typical
device vintages that a real Sun customer would be using...

 
#
#########################################
#
# The example above only upgrades one
# device.  You do not have to exit with
# a "0" and initiate the 'tload' utility
# again.  You may continue instead and
# directly upgrade the next tape device, 
# following the same steps as before
# for each device until all devices
# have been upgraded
#
#########################################
#
 
 
#
#########################################
#
# After devices are upgraded, the Rev
# will be 2565.
#
#########################################
#
 
#
#########################################
#
# To Quit, enter '0'.  System prompt
# will return.
#
#########################################
#
 
************************************************************************** 
**************************************************************************
C.4  tload (ABOUT THE UTILITY):
 
 
   tload - Firmware Download utility for tape drives.
 
SYNOPSIS
 
   tload [ filename ] [ -v ] 
        filename        firmware/microcode filename
 
DESCRIPTION
 
   tload is an firmware download utility for Sun supported tape 
   devices.
 
   If the firmware_file is specified, then it will display the list 
   of tape devices present on the host system and asks the user to 
   select the tape device which is to be upgraded.
 
   If the firmware_file is not specified, then it will display the 
   list of tape devices present on the host system along with their 
   FIRMWARE revision levels.
   
   tload will exit upon completion; please do not attempt to halt or 
   stop prior to utility's menu exit option being presented.
 
   The command can be run only as a super-user.
 
DISCLAIMER
 
   This utility is ONLY supported for downloading, to Sun supported
   tape devices, the Sun supported firmware binary (firmware_file)
   which has officially been released via the official Sun Patch 
   Process.  This utility is only supported with the release of
   firmware (binary) bundled with said patch.
 
   Do not attempt to use any other version of 'tload' that may have
   been acquired previously else device damage may occur.  Use only 
   the version provided with this patch, version 4.1 (tload).
 
   Use of tload to load non-Sun supported tape devices is at
   the user's own risk, and is not supported.
 
   Use of tload to load Sun supported tape devices with firmware
   NOT bundled with the utility in an officially released Sun Patch 
   is at the user's own risk, and is not supported.
 
PROBLEMS
 
   Any problems regarding this utility by the user following proper 
   procedures should be reported to the user's service provider along
   with the following items:
        1) /var/adm/messages file
        2) explorer dump

README -- Last modified date:  Tuesday, April 8, 2003


