6/10/02 ______________________________________________________________________ The DDS48240.EXE file will self-extract and build a DOS bootable diskette image. The image contains a batch file that automatically executes a firmware update on the tape drive EEPROM. A SCSI inquiry test is run at the conclusion and will verify that the 8.240 firmware has been correctly applied. _______________________________________________________________________ Updates for this release: 1 Drive is not handling Setmarks correctly when RSMK bit is set to 0.The fix is to update the logical block address correctly after a setmark is not reported, and to allow reading for more data for the same command after a setmark is encountered (when RSMK = 0). Observed during RS6000 SP40 testing. No field impact. 2 Illegal length with Incorrect residue when reading in fixed mode with large block size.For block size > the burst size, upon the receipt of the SC_DETECT_SIZE_FLUSH_DONE, we calculate the number of blocks transferred based on actual_total_block_size. Therefore we do not want to update the previous burst used to read off the data from the mismatched record. We only want to count the number of good blocks. Found in RS6000 SP40 SCtape testing. No field impact. 3 Wrong tape position after a Locate command to a different partition. Very intermittent. When sending a search command to the Tape task, the structure must specify the current tape position in terms of record count, filemark count and setmark count. However, if there isa change in partition, this data structure must be modified to indicate that we are logically at the beginning of the new partition by resetting those counts to 0's. No field impact. Two partitions not used in server software. 4 Drive returned unexpected GOOD status when setmark was encountered during a space BLOCK command with RSMK bit set to 1. The problem was caused by an incorrect RSMK_BT_Bit setting while spacing in the ring buffer. No field impact. Setmarks not used in software. 5 Space 0 block after Space EOD should return GOOD_STATUS instead of Blank Check. Modified code to return Good Status for Space commands that have 0 transfer length. No field impact, discovered during RS6000 SCtape test for SP40. 6 When expired cleaning is encountered Tape Alert flag 22 was not set. Modified code to set ‘expired’ cleaning tape flag. Very low field impact. May enhance customer experience. 7 Space EOD or forward block should not be allowed after encountering Physical End Of Tape or an error. Added a filter so that after encountering either an error or PEOT, the firmware would not pass either a Space EOD or Space Block command to the back end. Check Condition with the appropriate sense data should be created immediately. No field impact. Software does not write data to physical end of tape. 8 The drive reported Medium Error when Read at block address 1 after writing to Physical EOT. If previously we were at physical EOT and we are now at BOT we should clear both LEOT and PEOT bits. Found during RS6000 SP40 testing. No field impact. 9 After a Send Diagnostic Enhance command the tape position will be for the next SCSI command. Upon completion of the command, SCSI task needs to reset tape position to BOT and sets the EOD_info to return a Blank Check to any subsequent Read commands that are issued to the same partition. No field impact. Send Diagnostic command not used by software. 10 When f/w reports SCSI-3 compliance, the f/w will not respond to Identify msgs. with LUN > 7. Modified code to enable Lun up to 64 when in SCSI-3 mode. Very minor field impact. Only one instance reported. 11 Various Illegal Length handling errors found during sever RS6000 SCtape testing. When flushing unwanted data due to ILI condition, we must stop on record boundaries. No field impact. SCtape testing in variable block mode. 12 Sequence of Write, Log Sense Tape Alert, Write, Log Sense Tape Alert on a write protected tape resulted in write protect flag to be turned off for 2nd Tape Alert request. Modified code so that the write protect flag in Tape Alert would still be set whenever a host attempts to write to a write protected tape. Very low field impact. Reliability Improvements/Tape handling Number Description 1 Read 1 block then space back 1 block and read 1 block again, drive reports blank check Details Discovered during RS6000 SCtape testing. Fixes are: to update blocks_remaining on every SC_TRANSFER_DONE. use max_block_burst to update the LBA. update max_block_burst based on blocks_remaining. No field impact, test was using changing block sizes in Variable block mode. 2 Intermittent drive hang when performing Space/Locate/Read operation. Details The problem was due to DC task enabling the buffer locking mechanism to prevent the Tape task from overwriting the Kukai group buffers during Read mode. When the DC task no longer needed the buffers then it will unlock the buffers. This logic was in the Read path but it was missing in the Space/Locate path. The fix is when first entering the Read command, DC task must check to see if it needs to unlock the buffers and acts accordingly. No field impact, testing was in variable mode and locating to random data areas, not locating to filemarks. 3 Emergency eject does not work after a cassette unload error condition. Details Enhanced code to enable Emergency Eject if a normal cassette unload fails and leaves a cartridge between the seated position and full eject position. Very low field impact. 4 Tape damaged while ejecting tape from a drive Details Root cause was determined to be that the tape sensing switch signal may glitch during the time that the drive is performing the eject process. This may cause the MCP code to think that cassette is already out. MCP recovers by unloading and ejecting the tape without winding the tapes with the reel motors. The tape is not retracted al the way into the cassette shell and gets caught when ejected. The firmware was modified to ignore tape switch while the tape is unloading, thereby eliminating the possibility of the tape not being fully retracted into the cassette shell. Performance/Debug Improvements 1 Improved the level of debug information available via SCSI using STdiag program. Debug trace data through SCSI bus now has same level of information as obtaining Datmon trace. 2 Implemented a feature to save trace information to an 8KB segment in the Flash PROM. When a Sense Key of 03 or 04 is reported save an 8KB segment of trace information to a buffer. After the tape has been ejected, then copy the buffered trace information to the Flash PROM. It is hoped that this feature will aid in failure analysis. 3 New feature: Added code to track cylinder time for all 4 supported media types,DDS/1, DDS/2, DDS/3, DDS/4 Miscellaneous Improvements 1 SCSI Data compare error caused when an odd record size is written and then read back using an odd number of records and then and even number. The last byte on the last record must be the first byte of a 32 byte boundary in order to fail. Easy test case is to write 50 one byte records. Read 31 records and then read 2 records. Was returning data from internal FIFO. Modified code to handle this special test case. Found during RS6000 SCtape test of SP40. No field impact. 2 The drive returned an incorrect block address after a Reset or an immediate Rewind. The fix is to report unknown position when a position-type command is being processed in these cases. No field impact. 3 Very intermittent Logical Unit Not Ready sense data returned during write file mark flush. This problem was caused when the ECC C3 done interrupt unexpectedly becomes disabled. Added code to detect this condition and re-enable if necessary. Found during RS6000 Steppa test for SP40. No field impact. 4 Read Buffer Command returns wrong number of bytes. Added case statement to ensure that the number of bytes returned for this vendor unique command is correct. This change was necessary to accommodate a debug change. SC240 Autoloader Changes Number Description 1 When autoloader queried while scanning magazine Lun 0 reports Not Ready, In Process of Becoming Ready. Very intermittently the loader never changes to respond Not Ready, No Media Present. Details Modified code so that bus reset would not clear empty drive condition. Very low field impact. No customer is known to have encountered this condition. 2 Autoloader door may open after power on self-test completes if a magazine is present. Change #1: Added logic that will wait until the loader ready status is received before sending any loader motion control commands. Change #2: Suppress all loader commands between !P> and !E> during power on/boot up. 3 Autoloader may return sense data 04/44/E2 if unable to move tapes from magazine to drive. Added more code for stray tape recovery and change return status for certain timeouts to 03/52/00, cartridge failure. If unable to place tape from magazine to drive the loader will fail and return 03/52/00. Pressing eject button will eject magazine. Reinsert magazine to retrieve tape. Mild field impact. Certain customers have encountered this condition . Firmware -------- Firmware is a term used for the software program that controls the tape drive. All IBM tape drives store firmware in a ROM (read only memory) internal to the drive. Newer tape drives (since about 1993) use a type of ROM called a flash EEPROM (electrically erasable ROM). Most tape drives, with flash EEPROMs, are capable of receiving updated firmware through the SCSI bus. Firmware Files -------------- New firmware is provided in a file. Firmware filenames have the format .HEX or .BIN. For example, V4BT-400.HEX, V5AC-0.HEX, V6580500.BIN, V658A-0.BIN. Firmware is not generally interchangeable between tape drive models. Tapedrv verifies that new firmware matches the tape drive model. ====================================================================== LICENSE AGREEMENT AND WARRANTY DISCLAIMER This is a legal agreement between you the purchaser and International Business Machines, Inc. By accessing FUP, (the "Software"), you agree to be bound by the terms of this agreement. If you do not agree, do not access the software. IBM provides the accompanying object code of the Software and nonexclusively licenses its use to you on the following terms and conditions. IBM grants you a limited access to use one copy of the Software. You may not copy, distribute the Software for resale. You may not reverse engineer, modify, rent, or lease the Software. In addition, you may not disclose the information or data incorporated in the Software to others, in any format. You accept the Software "as is" without any warranty whatsoever. IBM does not warrant that the Software will meet your requirements; that the Software is fit for any particular purpose or that the use of the Software will be error free. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER ORAL OR WRITTEN, EXPRESSED OR IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL IBM BE LIABLE TO YOU, YOUR CUSTOMERS OR OTHER USERS IN ANY WAY BASED ON USE OF THE SOFTWARE, INCLUDING WITHOUT LIMITATION FOR ANY LOSS OF PROFITS, LOSS OF DATA OR USE OF THE SOFTWARE OR INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, OR EXEMPLARY DAMAGES ARISING OUT OF OR IN CONNECTION WITH THE USE OR INABILITY TO USE THE SOFTWARE. ======================================================================