CODEUPDT User's Guide

Document Revision 10.0

March 5, 1997Table of Contents

Introduction

4

Requirements

4

The CODEUPDT Package

4

Installation

5

Hardware and ASPI Manager Installation

5

Working With IBM Storage Systems Division Hard Drives

6

Using CODEUPDT

6

Starting CODEUPDT

6

Using The Interface

6

Main Screen

8

Main Menu Options

9

Updating Microcode code

9

Start/Stop Unit

11

Inquiry

11

Test Unit Ready

11

Read Capacity

12

Mode Sense/Select

12

Dumping a Drive's Error Logs

13

Copying From One Drive To Another

14

Format Unit

14

Performing Customer Simulated Operations

15

Diagnostics

17

Reassign Blocks

17

Read Defect Data

17

Read Buffer

18

Single SCSI Command Menu Options

19

Generic

19

Log Sense

19

Pre-Fetch

20

Read Long

20

Release

21

Request Sense

21

Reserve

21

Rezero Unit

22

Seek

22

Synchronize Cache

22

Verify

22

Write

23

Write and Verify

23

Write Buffer

24

Write Long

25

Limitations

26

Introduction

The SCSI architecture allows a variety of devices to coexist on a SCSI bus, linked to the host computer with an adapter. The Adaptec SCSI card provides a standard hardware interface which supports major types of SCSI peripherals.

The Advanced SCSI Programming Interface (ASPI) provides a protocol for SCSI device drivers and programs to submit I/O requests to host computer systems. The ASPI manages host adapter resources and provides the hardware independent ASPI for SCSI application and device drivers. Installation of different adapters to the system differs between operating systems.

CODEUPDT is a hardware/software interface that allows the user in the field to update both RAM and ROM microcode, dump the drives error logs, and perform limited testing on the IBM SCSI disk drives. The following drives are supported:

SCSI drives other than the ones listed above can also be used, but error logs cannot be dumped and microcode may not be able to be updated.

Requirements

The CODEUPDT Package

The CODEUPDT package has all the necessary files on it for updating the microcode and dumping error logs on the drive. A brief description of these files is given below.

CODEUPDT.EXE

The executable form of the CODEUPDT program

CODEUPDT.OPT

Contains user specified parameters

CODEUPDT.HLP

Contains CODEUPDT help text

CODEUPDT.DOC

This documentation

ERRORLOG.TXT

A sample of a logdump file created by CODEUPDT with descriptive text added

CODEUPDT.HST

Change history for CODEUPDT

59X5007.BIN

The special code that is needed by the CODEUPDT program to update the ROM code on a Corsair II E level drive

86F8881.BIN

The special code that is needed by the CODEUPDT program to update the ROM code on an Allicat S10 level drive

45G9542.BIN

The special code that is needed by the CODEUPDT program to update the ROM code on a Spitfire level drive

SP4CR.BIN

The special code that is needed by the CODEUPDT program to dump the error logs on a Corsair I/IIB level drive

SP4CE.BIN

The special code that is needed by the CODEUPDT program to dump the error logs on a Corsair IIE level drive

SP4AL.BIN

The special code that is needed by the CODEUPDT program to dump the error logs on an Allicat S10 level drive

SP4SF.BIN

The special code that is needed by the CODEUPDT program to dump the error logs on a Spitfire level drive

The ROM and RAM microcode loads for specific drives are provided separately either via e-mail, diskette, or BBS.

Installation

If this CODEUPDT package is replacing an earlier version, it is important to use the CODEUPDT.HLP file that came with this package. If no help file is present, CODEUPDT will work properly without any help text. If an older version of CODEUPDT.HLP is present, execution of CODEUPDT could slow down considerably.

CODEUPDT creates an options file to keep track current entries set by the user. Deletion of any existing CODEUPDT.OPT file is recommended before using any new version of CODEUPDT for the first time.

Hardware and ASPI Manager Installation

Refer to the documentation provided with the SCSI controller you are using for installation instructions.

If the SCSI controller being used is not an IBM Microchannel SCSI Adapter or an IBM Microchannel RAID Controller, an ASPI (Advanced SCSI Programming Interface) Manager must be installed before using CODEUPDT. Most SCSI card manufacturers, including Adaptec and Bus Logic, support an ASPI Manager. Refer to the documentation that came with your card to confirm that the ASPI manager is installed correctly.

CODEUPDT can be executed in an OS/2 environment from a DOS window. VASPI (Virtual ASPI) must be installed in the OS/2 environment. The VASPI installation package can be obtained from the Adaptec web site (http:\\www.adaptec.com). In an OS/2 environment, available targets are limited by the number of drives present during system setup.

Working With IBM Storage Systems Division Hard Drives

IBM drives should only be handled in an ESD safe environment and connected to the Adaptec card in the following manner

  1. Turn the power supply off
  2. Plug the SCSI cable from the Adaptec card into the 50-pin or 68-pin SCSI connector on the hard drive
  3. Plug the power cable into the 4-pin power connector on the hard drive
  4. Turn the power supply on
Using CODEUPDT Starting CODEUPDT Insert the diskette containing the CODEUPDT program into the floppy drive and make that drive the current drive. Execute CODEUPDT.EXE. The following command line options are valid:
Table 1: Command line parameters

Parameter

Description

/spock

use support for IBM microchannel SCSI adapters

/cheetah

use support for IBM microchannel RAID SCSI adapters

/alone [filename]

use stand-alone support with [filename] as the input file

/wide

enable wide bus (16 targets) support

/aspi [x]

use an ASPI driver at ASPI ID [x]

The format of the input filename for the stand alone mode can be obtained from and IBM technical support representative. Using The Interface Code Update provides the user with a consistent, easy-to-use interface. The user first provides Code Update information about the operation to perform and then requests that Code Update perform that operation through the use of the function keys. In this way, Code Update avoids unexpectedly performing an action without the user's permission. The user describes the parameters of an operation through the use of three types of display elements Menus are boxes which display two or more items from which the user can choose. The highlighted item indicates the currently selected item. The cursor keys change the selected item. Numeric and text entry fields allow the user to enter numbers and text, respectively. In these fields, the user can use the cursor keys to change the cursor position or the insert key to toggle the insert mode. Pressing the backspace and delete keys remove characters. Holding the control and the pressing the backspace key deletes the entire entry. Hexadecimal values can be entered into a numeric entry field by preceding the number with "0x." Note: In fields where a filename is entered, path specifications and wildcards (* or ?) are supported as in a DOS environment. Pressing enter causes Code Update to search for files matching the entered pattern and display them in a menu box. If more than one file is displayed, using the cursor keys and then pressing enter selects the highlighted filename. Toggle items are single words or phrases which are usually YES/NO or 1/0 questions. These items can be changed by pressing the space bar on them. At any given time there is only one screen item accepting input. This active item is highlighted to distinguish it from the inactive items. Pressing the tab and shift-tab keys changes the active item. It is also possible to move between fields using the cursor keys, but not as convenient as the tab keys. For example, moving between entry fields can only be done using the up and down cursor keys since the left and right cursor keys only reposition the cursor in the field. The valid operations are listed across the bottom of the screen. the F2 key usually causes an operation to be performed and the F3 key usually exits the current screen.

Table 2: Various keys and their actions
Key Action

Tab

Move cursor forwards through different fields

Shift + Tab

Move cursor backwards through different fields

Function Keys

Choose particular action or menu option. The action keys are specified at the bottom of each screen

Cursor Keys

Move highlighted bar through options. Move between fields

Enter

Accept the highlighted option

Ctrl+Backspace

Erase a field

0x

Enter a hex value in a field which accepts a number

Main Screen

The main screen displays the types of drives Code Update has sensed are attached to the SCSI bus. An entry of "NO CONNECTION" indicates the program did not detect a drive connected to the bus at the corresponding target address. An entry of "UNKNOWN" means a drive was detected, but the type of drive could not be determined. The "HOST" entry indicates which SCSI ID the initiator is using. The correct drive models are required for the "Code Update" and "Log Dump" operations. Code Update seldom rescans the SCSI bus. After removing or attaching drives to the SCSI bus, it is important to tell Code Update to rescan the SCSI bus. This can be done from the main screen by pressing the F4 key.

The main screen contains a menu of operations Code Update can perform. These operations can be selected by entering the appropriate menu number and pressing the enter key. Pressing tab to highlight the menu, pressing the cursor keys to select an operation, and then pressing the enter key has the same effect. Table 2 shows the main menu options.

Table 3: Main Menu Options

Option Description

1) Code Update

Update Microcode on the disk drive

2) Start/Stop Unit

Start/Stop the motor on the disk drive

3) Inquiry

SCSI Inquiry command

4) Test Unit Ready

SCSI Test Unit Ready command

5) Read Capacity

SCSI Read Capacity command

6) Mode Sense/Select

SCSI Mode Sense/Select command

7) Log Dump

Dumps the error logs off the current target

8) Copy File

Copies the contents of one drive to another

9) Format Unit

SCSI Format Unit command

10) Drive Exerciser

Perform Customer Simulated Operations (CSO)

11) Diagnostic

Perform send and receive diagnostics

12) Reassign Blocks

Perform a SCSI Reassign Blocks command

13) Read Defect Data

Read the P-LIST and/or the G-LIST into a logfile

14) Read Buffer

Perform a SCSI read buffer command

15) Read

Perform a SCSI read 10 command

16) Single SCSI Command

Brings up Single SCSI Command menu

Pressing F3 exits Code Update. Pressing F4 tells Code Update to rescan the SCSI bus. Pressing F10 causes the system to go to a DOS shell from which DOS commands can be entered. Typing "exit" from the DOS shell will return control of the system back to Code Update.

Single SCSI Command Screen

Various low level SCSI commands can be issued to drives by selecting the "Single SCSI Command" option from the main menu. The Single SCSI Command screen is much like the main screen. Pressing F3 exits the menu and returns the user to the main screen. The Single SCSI operations can be selected by entering the appropriate menu number and pressing the enter key. Pressing tab to highlight the menu, pressing the cursor keys to select an operation, and then pressing the enter key has the same effect. Table 3 shows the Single SCSI Command options.

Table 4: Single SCSI Command Menu

Option Description

1) Log Sense

Perform a SCSI Log Sense command

2) Pre-Fetch

Perform a SCSI Pre-Fetch command

3) Read Long

Perform a SCSI Read Long command

4) Release

Perform a SCSI Release command

5) Reserve

Perform a SCSI Reserve command

6) Request Sense

Perform a SCSI Request Sense command

7) Rezero Unit

Perform a SCSI Rezero command

8) Seek

Perform a SCSI Seek command

9) Synchronize Cache

Perform a SCSI Synchronize Cache command

10) Verify

Perform a SCSI Verify command

11) Write

Perform a SCSI Write command

12) Write & Verify

Perform a SCSI Write and Verify command

13) Write Buffer

Perform a SCSI Write Buffer command

14) Write Long

Perform a SCSI Write Long command

15) Write Same

Perform a SCSI Write Same command

Main Menu Options

Updating Microcode code

Code Update provides a simple means of updating micro code on IBM 066x family and IBM DFHS and DFMS hard drives. Limited support is also available for updating generic drives. Both the RAM and ROM microcode can be updated on Corsair IIE, Allicat, Spitfire, and Starfire hard disk drives. Only the RAM microcode can be updated on the Lightning, Turbo, and Corsair I/IIB drives.

When updating the microcode on a generic drive, CODEUPDT makes use of the download and save mode of the SCSI write buffer command. The microcode file is broken into parts the size of the buffer size entered by the user, and the write buffer command downloads each part. The drive must support the download and save option of the SCSI write buffer command, and the user must know the supported buffer size of the drive being updated.

Here is a description of the code update process for Corsair IIE, Allicat, Spitfire, Lightning, Turbo, and Corsair I/IIB drives:

  1. Make sure that the drive to be updated appears on the main screen and that the drive does not have an auto start jumper attached.
  2. Select the "Code Update" operation from the main menu and press the enter key.
  3. Move the cursor to the area of the correct SCSI Target.
  4. If the ROM code is to be flashed, set the "Update?" question next to the word ROM to "YES". Then enter the ROM code filename and the flash code filename.
  5. If the RAM code is to be updated, set the "Update?" question next to the word RAM to "YES". Then enter the RAM code filename.
  6. Repeat steps 1-5 for any other targets you wish to update. Make sure all "Update?" questions are set to "No" for drives not being update.
  7. Press the F2 to update the code.
Here is a description of the code update process for Starfire and following drives:
  1. Make sure that the drive to be updated appears on the main screen and that the drive does not have an auto start jumper attached.
  2. Select the "Code Update" operation from the main menu and press the enter key.
  3. Move the cursor to the area of the correct SCSI Target.
  4. Set the "Update?" question to "YES".
  5. Fill in the microcode Filename and press enter.
  6. Repeat steps 1-5 for any other targets you wish to update. Make sure all "Update?" questions are set to "No" for drives not being updated.
  7. Press F2 to update the code.
Here is a description of the code update process for generic drives:
  1. Make sure that the drive to be updated appears on the main screen and that the drive does not have an auto start jumper attached.
  2. Select the "Code Update" operation from the main menu and press the enter key.
  3. Move the cursor to the area of the correct SCSI Target.
  4. Set the "Update?" question to "YES".
  5. Fill in the microcode Filename and press enter.
  6. Fill in the Download Buffer Size and press enter. Memory limitations usually do not allow microcode to be downloaded all at once. Most drive manufacturers provide a means of downloading microcode in small parts. If you are not sure what this size is, check the drive specifications or contact the vendor. Warning: The drive may not check for a proper buffer size. If an improper buffer size is used, the drive could be corrupted.
  7. Repeat steps 1-5 for any other targets you wish to update. Make sure all "Update?" questions are set to "No" for drives not being updated.
  8. Press F2 to update the code.
When updating any drive: Code Update checks the compatibility between the drive and the new code to be loaded (except generic drives). This helps ensure that the proper code will be loaded on the drive. However; it is still possible to incorrectly update the code on a drive by powering down the hard drive or computer during the code update. At no time during the code update should the system or hard drive be powered down. Powering down during a ROM update is generally hazardous. Powering down during a RAM update is typically recoverable but not advisable. Pressing the F4 key performs an inquiry on the selected target. Start/Stop Unit Code Update can perform a SCSI Start/Stop Unit command. Select this option from the main menu to open the Start/Stop Unit screen. The options are as follows:

Target ID

SCSI ID of the drive

Start

A "YES" in this field indicates that the motor of the selected target is to be started. A "NO" in this field indicates that the motor of the selected target is to be stopped.

Immediate

When this field is set to "YES", the drive returns a good status to the system immediately. When this field is set to "NO", the drive waits until the operation has completed.

Inquiry

Code Update can perform a SCSI inquiry command. Select this option from the main menu to open the Inquiry screen.The options are as follows:

Target ID

SCSI ID of the drive

EVPD

"Enable Vital Product Data". Setting this field to "YES" indicates that the "Page Code" field is to be used. Setting this field to "NO" indicates that the "Page Code" field will not be used.

Page

Selects the page to return

Length

The number of bytes to return

Test Unit Ready

Code Update can perform a SCSI test unit ready command. Select this option from the main menu to open the Test Unit Ready screen. This command only requires a SCSI Target ID.

Read Capacity

Code Update can perform a SCSI read capacity command. This command returns the block size and total number of blocks a drive is currently formatted to. Select the Read Capacity option from the main menu to open the Read Capacity screen. The options are as follows:

Target ID

SCSI ID of the drive

PMI

"Partial Medium Indicator" This field when set to "OFF" indicates that the capacity of the entire drive is to be returned. When this field is set to "ON", the last LBA on the cylinder the LBA in the "LBA" field indicates.

LBA

is the LBA to be used when the "PMI" bit is set "ON"

Mode Sense/Select

Code Update integrates the mode sense and mode select SCSI commands to provide a quick means of examining the mode pages' settings and modifying them. To use the "Mode Sense/Select" operations, first choose the "Mode Sense/Select" operation from the main menu and press Enter. Next select the appropriate page by keying in the appropriate hex digit (use the "/" character for the header) or by pressing tab and then using the cursor keys to select the menu item. If the Generic Page choice was not chosen, two prompts will be displayed:

Target ID

SCSI ID of the drive

Current Values/ Default Values / Saved Values

This option refers to which of the mode parameters are to be reported. "Current Values" indicates that the mode parameters the drive is presently using should be reported. "Default Values" indicates that the default values are to be reported. Selecting "Saved Values" means that the mode parameters saved and used when the drive is first started will be reported.

If Generic Page (Page Z) was chosen, a third prompt will be displayed:

Page Code

Indicates the specific page to display

Pressing F2 will sense the values for the selected target and page. Refer to the product SCSI specification for details about the specific page parameters. At this point modifiable parameters can be changed or the page can be sensed again by pressing F2.

After a page has been sensed, it is now possible to select the page by pressing F4. Code Update will ask if the parameters are to be saved or are only to be used as the current values. Pressing F2 selects the page and F3 aborts the select operation.

In the Generic Page option, it is possible to save or load a file respectively by pressing F5 or F6 keys.

If Page Code 0x1C was entered, it is displayed by individual page with page number indicated. Press F7 or F8 will go up or down from the specific page respectively.

Dumping a Drive's Error Logs

The error logs on a drive can be dumped to a file using the Log Dump function of Code Update. The logs of Lightning, Turbo, or generic drives cannot be dumped using Code Update. Dumping the logs is a straight-forward process

  • Choose the "Log Dump" option from the main menu.
  • Select "YES" in the "Dump Logs?" column for each target you wish to dump the error logs on.
  • Choose a file name used to store the result of the log dump. This must be a new filename unless the default name "LogDmp[x].out" (x = SCSI target id) is used.
  • Choose whether or not to include GEMPFA log information in the log dump. If this option is "YES," GEMPFA information is written in the same target log dump file after the log dump data. (Note: not all drives have GEMPFA logs.)
  • Choose whether or not to include CSV (Database input) log information in the log dump. If this option is "YES", CSV database output will be written into a separated output file from the logdump file.
  • If CSV logs are included, choose a filename for the CSV database output. The default for the database file is "LOGCSV[x].out" (x = SCSI target id), any other filename must be new.
  • Press the F2 key to begin dumping the error logs of the selected targets.
  • If special code is required, a prompt requesting the special code file name will be displayed after the drive's motor has started spinning.

    Automatically creating filenames

    CODEUPDT can create filenames for each device in two manners. If the Enter key is pressed in a filename field when the field is empty, the default filename for that field will be entered. If F4 is pressed while in the Log Dump screen, CODEUPDT will attempt to fill in filenames for each file selected to be dumped. The first character of a filename is "l" for LogDump, or "c" for CSV database output. The second character indicates plan of manufacturer (R=Rochester, S=San Jose, M=Mainz, G=Singapore_=unknown). The next six characters are the last six digits of the drives serial number. The extension is the model number. If the drive is in the Starfire family, the first digit of the extension is replaced with "h" for a 7200 RPM drive, or "m" for a 5400 RPM drive. If a filename cannot be created for any reason, the default filename for that field is used.

    Drive Log interpretation

    The error logs on the drive are provided as a failure analysis aid and should not be used as a qualification criterion for the drives. For an explanation of the information in the drive logs, please refer to the file "errorlog.txt" included in this package.

    Copying From One Drive To Another

    Code Update can copy from one drive to another using the Copy File option from the main menu. Copy attempts to make an exact duplicate of the data stored in the customer area of a drive. Blocks which cannot be read during the copy will be output to an user-specified log file. The copy will be aborted if an error occurs while reading or writing to the target drive. If the source drive fails to start properly, the user will be prompted for special code.

    Copy file completes in three phases. The first phase perform the actual copying of the information. The second phase scrubs the error sights on the source file that were written in the log file by attempting to read each of these spots ten more times. The third and final phase verifies that all of the information copied correctly. Errors in this phase are also recorded in the log file.

    During the copy file operation, hitting the F3 key will abort the operation and return to the main menu.

    Note: The source and target drives should have matching capacities. If the target drive is not formatted like the source drive or the target drive does not have enough capacity to hold all of the information on the source drive, an error will occur.

    Format Unit

    Code Update can reformat drives to any of the block sizes the drive supports through the use of the SCSI format unit command. To reformat a drive, choose "Format Unit" from the main menu. Select the appropriate targets to format. For each target, choose a block size, maximum LBA, and whether to include the drives G-LIST or not. When the drive is a Scorpion drive or newer, if desired, the drive will perform a Fast Format. If a fast format is performed and the block size is changed, the entire drive will have to be written before any data can be read from the drive successfully. If the drive is running when you enter the format menu, the current block size will be filled in, otherwise CODEUPDT will indicate the block size is indeterminate. If the maximum LBA is set to zero, the current maximum LBA will be used. Press the F2 key to start the format. If a drive's motor is not already spinning, Code Update will start the motor. The progress of the format will be indicated on the screen and Code Update will return to the main screen after the format is complete.

    Note: Code Update reformats drives using the primary defect list. Using the grown defect list is optional. Also note that the Code Update Format Unit function performs a mode select to choose block size and maximum LBA. An previous mode select of these features will no longer be valid.

    Performing Customer Simulated Operations

    Customer Simulated Operations (CSO) has been designed to test several drives at a time with little or no user interaction. The user can specify a wide range of parameters allowing him to fine tune the way in which the drives are tested. These parameters fall into two classes. The first are parameters which apply to a specific target. The second are parameters which apply to all targets.

    The CSO Target screen can brought up by selecting "Drive Exerciser" from the main menu. This screen contains target-specific parameters. Each line contains the parameters for a different target. The first field "Target" specifies the Target ID the line represents. The second field "Test?" indicates whether the target is to undergo CSO. The third field "Write Protect?" prevents the target from being written when "YES" is selected. The "Min LBA" and "Max LBA" fields specify the range of LBA's between which operations are performed. Pressing F4 on a line performs a Read Capacity for the target and fills in the Max LBA field with the result. The "Log?" field indicates that the errors encountered for the target be output to a file indicated in the "Log Filename" field.

    The CSO Parameter screen contains parameters for all the targets. Pressing F5 brings up this screen. The parameters are listed below.

  • Read/Write
  • Read vs. Write %--The number of reads out of 100 read/write operations.

    Test Pattern--The order in which reads and writes occur.

  • Transfer Length

    Min LBA's--Minimum number of LBA's to be transferred during a read or write operation.

    Max LBA's--Maximum number of LBA's to be transferred during a read or write operation. This value also depends on the block size and the length of Code Update's buffer.

    Length is--The method by which the transfer length is to be determined. "Random" indicates that the transfer length will be randomly chosen to be between the minimum and maximum. "Step" indicates that the transfer length start at the minimum, be incremented by one after every read or write operation until the maximum is reached, and then be reset to the minimum.

  • Miscompare Test

    Perform--Perform a miscompare test for targets with "NO" selected for "Write Protect?". The write and read for this test take place at the location of the last read or write with the same transfer length.

    Pattern--Pattern to be written to disk during miscompare test.

    Test Every--Period of the test. The field after this indicates whether the period is measured in operations, seconds, minutes, or is to occur at random intervals of time.

  • Multi-Target

    Target Switch--The way in which the next target is chosen.

    Switch Target Every--Period of target switching. The field after this indicates whether the period is measured in operations, seconds, minutes, or is to occur at random intervals of time.

  • Errors

    Stop on Error for Nonlogged Targets?--Specifies whether targets with "Log?" set to "NO" should be tested after an error for that target occurs.

    Try to Restart Down and Unpresent Drives?--Specifies whether a drive should be restarted if it is sensed that the drive has stopped spinning or has been removed from the bus.

    Restart Timeout--Time to wait for a down or unpresent drive to come ready.

    Extended error reporting in logfiles?--Extended error reporting gives a multiple line report of information about each error, including what kind of operation was taking place when the error occurred and the type of error. If the error reporting is not extended, the information is condensed into one line per error.

    Diagnostics

    Code Update can perform a SCSI send diagnostic command. Select this option from the main menu to open the Diagnostics screen. The options are as follows:

    Target ID

    SCSI ID of the drive

    Self Test

    Setting this field to "YES" causes the drive to perform a series of self-tests. Setting this field to "NO" causes the drive to perform a translation as indicated by additional options

    Translate From

    Selects whether a LBA is translated to its corresponding physical address or vice versa. (This option only appears if Self Test is set to "NO.")

    If Self Test is "NO," entry fields for the physical or logical address appear, depending on what is to be translated.

    Pressing F2 executes the reassign blocks command. Pressing F3 returns CODEUPDT to the main screen.

    Note: The translate function of send diagnostic is not supported by Lightning, Turbo, and Corsair drives.

    Reassign Blocks

    Code Update can perform a SCSI reassign blocks command. Select this option from the main menu to open the Reassign Blocks screen. The options are as follows:

    Target ID

    SCSI ID of the drive

    Reassign Input Format

    This field selects whether a LBA or a physical address is reassigned.

    Entry fields for the physical or logical address appear, depending the input format.

    Pressing F2 executes the reassign blocks command. Pressing F3 returns CODEUPDT to the main screen.

    Read Defect Data

    Code Update can read all or part of a drives P-LIST and/or G-LIST and save the information to a file logfile. Select the Read Defect Data option from the main menu to open the Read Defect Data screen. The options are as follows:

    Target ID

    SCSI ID of the drive

    Grown Defect List (G-LIST)

    This field selects whether the G-LIST will be included in the output log.

    Primary Defect List (P-LIST)

    This field selects whether the P-LIST will be included in the output log.

    Defect List Format

    Choose "Physical Sector" to have the logfile show defect sites using physical addresses. Choose "Bytes from Index" to have the logfile show defect locations by indicating the middle byte of the defect as an offset from the index of the track.

    Length

    The amount of the list(s) being read. All or part of the each list can be read from the drive.

    Defect data output file

    The name of the logfile which will contain the P-LIST and/or G-LIST data.

    Pressing F2 executes the reassign blocks command. Pressing F3 returns CODEUPDT to the main screen.

    Read Buffer

    Code Update can perform a SCSI read buffer command. Select the Read Buffer option from the main screen to open the Read Buffer screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    Mode (000 / 001 / 010 / 011)

    This option refers to which of the mode parameters are to be reported. "000" will transfers a four byte header and the specified amount of data. "001" transfers the specified internal memory data. "010" transfers the specified amount of data. "011" transfer a four byte header.

    Offset

    Specifies the byte offset within the buffer from which the data will be transferred

    Length

    The number of bytes to return

    Buffer ID

    Return the specified buffer header information

    Output

    The file that stores the data output

    Pressing F2 executes the read buffer command. Pressing F3 returns CODEUPDT to the main screen.

    Read (10)

    Code Update can perform a SCSI read command. Select Read (10) from the main menu to open the Read (10) screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    LBA

    Specifies which LBA the read operation is to begin.

    Length

    Indicates the number of blocks to transfer

    File Type

    Allows the user to choose the type of output file desired. If "Binary" is selected, the data will be output to a binary file. If "Codeupdt" is selected, the data will be output to an ASCII text file.

    File Name

    Indicates the file that stores the whole data output

    Pressing F2 executes the read command. Pressing F3 returns CODEUPDT to the main screen.

    Single SCSI Command Menu Options

    The Single SCSI Command menu can be accessed by selecting "Single SCSI Command" on the main menu.

    Generic

    Code Update allows a user to send a custom CDB to a drive. Select the Generic option from the Single SCSI Command screen to open the Generic screen. The options are as follows:

    Target ID

    SCSI ID of the drive

    CDB Length

    The length of the CDB to send--6 or 10 bytes.

    CDB Fields

    The CDB is entered in these fields. All entries are assumed to be in hexadecimal format.

    Xfer Direction

    The data transfer direction. The options are: IN, OUT, and NONE.

    Xfer Length

    The length of the data transfer. This value can be in bytes or blocks.

    Units

    The units of length assumed in the Xfer Length field--BYTES or BLOCKS

    I/O File Type

    Allows the user to choose the type of input file. If "Binary" is selected, the data will be taken as binary code. If "Codeupdt" is selected, a file created by a CODEUPDT Read operation must be used as input. The file will be scanned and written to the drive in the same manner is was retrieved using Read, Read Buffer, or Read Long.

    I/O File Name

    The name of the input file

    Pressing F2 executes the Generic command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Log Sense

    Code Update can perform a SCSI log sense command. Select the Log Sense option from the Single SCSI Command screen to open the Log Sense screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    Page Control

    The type of parameters to be selected--Default Cumulative or Current Cumulative values.

    Page

    The page to be requested

    Pointer

    The beginning field for the transfer

    Length

    The maximum number of bytes the initiator has allocated for returned Log Sense data

    Filename

    The filename for the data output

    Pressing F2 executes the Log Sense command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Pre-Fetch

    Code Update can perform a SCSI pre-fetch command. Select the Pre-Fetch option from the Single SCSI Command screen to open the Pre-Fetch screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    Immed

    If "No" is selected, the drive will return Good Status or Check Condition Status when the operation is complete. If "Yes" is selected, the drive will return Good Status as soon as the CDB is verified.

    Length

    The length of data (in blocks) that is to be transferred into the cache

    LBA

    The LBA where the transfer is to begin

    Pressing F2 executes the Pre-Fetch command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Read Long

    Code Update can perform a SCSI read long command. Select the Read Long option from the Single SCSI Command screen to open the Read Long screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    LBA

    The LBA where the transfer is to begin

    File Type

    Allows the user to choose the type of output file desired. If "Binary" is selected, the data will be output to a binary file. If "Codeupdt" is selected, the data will be output to an ASCII text file.

    File Name

    The name of the output file

    Pressing F2 executes the Read Long command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Release

    Code Update can perform a SCSI release command. Select the Release option from the Single SCSI Command screen to open the Release screen. There is only one option for this command:

    Target ID

    SCSI ID of the drive

    Pressing F2 executes the Release command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Request Sense

    Code Update can perform a SCSI request sense command. Select this option from the Single SCSI Command menu to open the Request Sense screen. The options are as follows

    Target ID

    SCSI ID of the drive

    Length

    The number of sense bytes to return. IBM 066x family drives define only the first 32 bytes, but lengths from 0 to 255 bytes are valid.

    Pressing F2 executes the Request Sense command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Reserve

    Code Update can perform a SCSI read buffer command. Select the Read Buffer option from the Single SCSI Command screen to open the Read Buffer screen. There is only one option available for this command :

    Target ID

    SCSI ID of the drive

    Pressing F2 executes the Reserve command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Rezero Unit

    Code Update can perform a SCSI read buffer command. Select the Read Buffer option from the Single SCSI Command screen to open the Read Buffer screen. There is only one option available for this command:

    Target ID

    SCSI ID of the drive

    Pressing F2 executes the Rezero Unit command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Seek

    Code Update can perform a SCSI read buffer command. Select the Read Buffer option from the Single SCSI Command screen to open the Read Buffer screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    LBA

    The LBA to seek

    Pressing F2 executes the Seek command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Synchronize Cache

    Code Update can perform a SCSI read buffer command. Select the Read Buffer option from the Single SCSI Command screen to open the Read Buffer screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    Immed

    If "Yes" is selected, the drive completes the operation before returning Good Status. If "No" is selected, the drive returns Good Status as soon as the CDB is verified.

    Length

    The number of blocks within the range

    LBA

    The LBA where the operation is to begin

    Pressing F2 executes the Synchronize Cache command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Verify

    Code Update can perform a SCSI read buffer command. Select the Read Buffer option from the Single SCSI Command screen to open the Read Buffer screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    Length

    The number of blocks to be verified

    LBA

    The LBA where the operation is to begin

    Pressing F2 executes the Verify command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Write

    Code Update can perform a SCSI read buffer command. Select the Read Buffer option from the Single SCSI Command screen to open the Read Buffer screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    FUA (Force Unit Access)

    If "Yes" is selected, the Target must write the logical blocks of data to the media before returning Good Status. If "No" is selected, the target may return Good Status before the operation is complete.

    DPO (Disable Page Out)

    If "Yes" is selected, the data written by this command is to be assigned the lowest priority for being written to or retained by the cache. If "No" is selected, the priority is determined by the retention priority.

    Length

    The number of blocks that will be written

    LBA

    The LBA where the operation is to begin

    File Type

    Allows the user to choose the type of input file. If "Binary" is selected, the data will be taken as binary code. If "Codeupdt" is selected, a file created by a CODEUPDT Read operation must be used as input. The file will be scanned and written to the drive in the same manner is was retrieved using Read, Read Buffer, or Read Long.

    File Name

    The name of the input file

    Pressing F2 executes the Write command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Write and Verify

    Code Update can perform a SCSI read buffer command. Select the Read Buffer option from the Single SCSI Command screen to open the Read Buffer screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    Byte Check

    If "No" is selected, the drive does an ECC check on the specified range after the write completes successfully. If "Yes" is selected, the drive will do a byte-by-byte compare of the data after it is written to the drive.

    DPO (Disable Page Out)

    If "Yes" is selected, the data written by this command is to be assigned the lowest priority for being written to or retained by the cache. If "No" is selected, the priority is determined by the retention priority.

    Length

    The number of blocks of data to be transferred

    LBA

    The LBA where the operation is to begin

    File Type

    Allows the user to choose the type of input file. If "Binary" is selected, the data will be taken as binary code. If "Codeupdt" is selected, a file created by a CODEUPDT Read operation must be used as input. The file will be scanned and written to the drive in the same manner is was retrieved using Read, Read Buffer, or Read Long.

    Input File

    The name of the input file

    Pressing F2 executes the Write and Verify command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Write Buffer

    Code Update can perform a SCSI read buffer command. Select the Read Buffer option from the Single SCSI Command screen to open the Read Buffer screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    Mode (000/010/100/101)

    This option refers to which of the mode parameters are to be written. "000" will writes a four byte header and the specified amount of data to the buffer. "010" writes the specified amount of data to the buffer at the specified offset. "100" downloads microcode to the target and stores it in volatile memory. "101" downloads microcode to the target and stores it in volatile and non-volatile memory, overwriting the original microcode.

    Offset

    Indicates the starting byte offset within the data buffer to which the data is transferred. This option is not used for mode "000"

    Length

    The length of the transfer in bytes

    Buffer ID

    Indicates which portion of the microcode is to be downloaded. Only used for modes "100" and "101".

    File Type

    Allows the user to choose the type of input file. If "Binary" is selected, the data will be taken as binary code. If "Codeupdt" is selected, a file created by a CODEUPDT Read operation must be used as input. The file will be scanned and written to the drive in the same manner is was retrieved using Read, Read Buffer, or Read Long.

    File Name

    The name of the input file

    Pressing F2 executes the Write Buffer command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Write Long

    Code Update can perform a SCSI read buffer command. Select the Read Buffer option from the Single SCSI Command screen to open the Read Buffer screen. The options are as follows :

    Target ID

    SCSI ID of the drive

    LBA

    The LBA where the operation is to begin

    File Type

    Allows the user to choose the type of input file. If "Binary" is selected, the data will be taken as binary code. If "Codeupdt" is selected, a file created by a CODEUPDT Read operation must be used as input. The file will be scanned and written to the drive in the same manner is was retrieved using Read, Read Buffer, or Read Long.

    File Name

    The name of the input file

    Pressing F2 executes the Write Long command. Pressing F3 returns CODEUPDT to the Single SCSI Command screen.

    Limitations

    Some of the functions of CODEUPDT cannot be used on certain drives.

  • Attached drives that are recognized as LIGHTNING or TURBO drives can have the RAM code updated. ROM code cannot be updated and logs cannot be dumped.
  • Attached drives that are recognized as Generic may or may not be able to have microcode updated using CODEUPDT. Error logs will not be able to be dumped on these drives.

    The CODEUPDT program informs the user if an option is invalid for a certain type of drive.

    CODEUPDT requires at least 500KB of conventional memory. To determine the amount of conventional memory available, type "mem" at the DOS prompt before executing CODEUPDT. The value for "Largest executable program size" indicates the amount of conventional memory available to CODEUPDT.

    To increase the amount of available conventional memory, it is recommended to load device drivers in the "config.sys" file using "DEVICEHIGH". Programs executed in the "autoexec.bat" file should be invoked with "LOADHIGH", if possible. Consult your DOS manual for details. Conventional memory can also be increased through the use of a memory optimizer. PC-DOS users can execute "ramsetup.exe" to install RAMBOOST, and MS-DOS users can execute "memmaker.exe" to load drivers and programs in upper memory automatically.