Professional Documents
Culture Documents
Diagnostics Command Manual - Eagate Confidential
Diagnostics Command Manual - Eagate Confidential
Diagnostics Command Manual - Eagate Confidential
- Items highlighted in red indicate a command or feature that is not fully functional. Issuing
these commands or selecting these features may produce unexpected results.
FW Revision : TR30.SDP1.00213283.4G00
Build Date : 10/13/2009 11:21:34
Builder GID: 00210712
The Serial Port interface for platform drives operates in the following four modes:
Power-on default (only if drive supports Power-savings at power on, aka "APM ASAP").
In this mode, the drive will NOT respond to either ESLIP encoded packets or ASCII
characters over the serial port interface. In this mode, the native interface (SATA,
SCSI, SAS, FC) will respond only to those commands that are allowed when the drive is
in power-savings modes.
Power-on default (unless drive supports Power-savings at power on, aka "APM ASAP").
In this mode, the drive will respond only to ESLIP encoded packets received over the
serial port interface. The ASCII diagnostic commands described in this document are
not available in this mode. In this mode, the native interface (SATA, SCSI, SAS, FC)
is alive. This is the default power on mode for the serial port interface unless drive
supports Power-savings at power on (aka "APM ASAP").
- Entering a Control-T character from YASPP (or any similar host serial port
program) while the drive serial port is in ASCII Online mode or ASCII
Diagnostic mode will switch the serial port to ESLIP mode.
- Entering a Control-R character while the drive serial port is in ESLIP mode
will switch the serial port to ASCII Online mode.
- Entering a Control-Z character while the drive serial port is in ESLIP mode
will switch the serial port to ASCII Diagnostic mode.
In this mode, the drive will respond only to the ASCII Online commands described in
this document. It will not respond to ESLIP encoded packets received over the serial
port interface. In this mode, the native interface (SATA, SCSI, SAS, FC) is alive.
- Entering a Control-R character from YASPP (or any similar host serial port
program) while the drive serial port is in ESLIP mode or ASCII Diagnostic
mode will switch the serial port to ASCII Online mode.
- Entering a Control-Z character while the drive serial port is in ASCII Online
mode will switch the serial port to ASCII Diagnostic mode.
- Entering a Control-T character while the drive serial port is in ASCII Online
mode will switch the serial port to ESLIP mode.
- Entering a : character while the drive serial port is in ASCII Online mode will
switch the serial port to Secondary Online Mode.
In this mode, the drive will respond only to the ASCII Secondary Online commands described
in this document. It will not respond to ESLIP encoded packets received over the serial
port interface. In this mode, the native interface (SATA, SCSI, SAS, FC) can be alive.
- Entering any character will execute the corresponding command (if any). Whether a
command was executed or not, the drive will exit Secondary Online Mode, returning
to whatever state the drive was in before entering Secondary Online Mode.
In this mode, the drive will respond to all ASCII commands described in this document.
It will not respond to ESLIP encoded packets received over the serial port interface.
In this mode, the native interface (SATA, SCSI, SAS, FC) is not alive.
- Entering a Control-Z character from YASPP (or any similar host serial port
program) while the drive serial port is in ESLIP mode or ASCII Online mode will
switch the serial port to ASCII Diagnostic mode.
- Entering a Control-R character while the drive serial port is in ASCII Diagnostic
mode will switch the serial port to ASCII Online mode.
- Entering a Control-T character while the drive serial port is in ASCII Diagnostic
mode will switch the serial port to ESLIP mode.
Level 1 Commands
Level 2 Commands
'v' Command (V0011.0000) : Convert Data Track Percentage To Servo Offset Count
Level 3 Commands
Level 4 Commands
'O' Command (V0011.0000) : Display Micro Jog for Logical Cylinder and Head
'l' Command (V0011.0000) : Scan Track for Servo Defects and ZAP
Level 5 Commands
'd' Command (V0011.0000) : Disable / Enable Servo ZAP coefficients and ZAP read
Level 6 Commands
'm' Command (V8003.0000) : Display Single Track Directed Offline Scan Information
Level 8 Commands
Level A Commands
Level C Commands
Level E Commands
Level F Commands
Level H Commands
Level L Commands
Level M Commands
Level T Commands
Online Commands
CTRL-X Command (V0011.0000) : Display Native Interface and Read/Write Command History
'
Abort
Availability:
All Level , Carriage Return
Online , Carriage Return
Quick Help:
Abort
Description:
This command terminates any diagnostic command that is in progress and disables looping.
Input Parameters:
None
Output Data:
None
Revision History:
Availability:
All Level , '*'
Quick Help:
Special Batch File Function, *[FuncId],[FuncParm0],[FuncParm1]
Description:
This command performs the specified Batch File function.
Input Parameters:
This parameter selects one of the following special Batch File function to
be performed.
0 = No operation.
1 = Pause the execution of the batch file until input is received from the
user via the Serial Port interface.
4 = Increment the head address and branch batch file execution to the
label specified by Parameter 1, if the head address did not wrap.
7 = Set the batch file Loop Count specified by Parameter 2 to the value
specified by Parameter 1.
A = Updates the expected batch file error information with the Diagnostic
Error Code specified by Parameter 1, the Minimum Count specified by
Parameter 2 and the Maximum Count specified by Parameter 3.
B = Display the Active Error Log and compare its contents against the
expected batch file errors to determine if the batch file failed.
Range: 0 to B hex
Default: 0
Default: None
Default: 0
Range: 0 to 0xFFFF
Default: 0
Output Data:
None
Revision History:
Availability:
All Level , '+'
Quick Help:
Peek Memory Byte, +[AddrHi],[AddrLo],[NotUsed],[NumBytes]
Description:
The Peek Memory Byte command reads and displays the specified byte (8-bits) of
processor memory.
Input Parameters:
Default: 0
1 - Memory Address Low.
If entered, this parameter contains the lower 16-bits of the address of the
memory location to be read and displayed
Range: 0 to 0xffff
2 - reserved.
Previously this parameter was used to disable validation of the memory address.
Address validation is no longer performed by this command so there is no longer
a need for a parameter to disable it.
This parameter specifies the number of memory bytes to be read and displayed.
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Availability:
All Level , '-'
Quick Help:
Peek Memory Word, -[AddrHi],[AddrLo],[NotUsed],[NumBytes]
Description:
The Peek Memory Word command reads and displays the specified word (16-bits) of
processor memory.
Input Parameters:
Default: 0
If entered, this parameter contains the lower 16-bits of the address of the
memory location to be read and displayed
Range: 0 to 0xfffF
2 - reserved.
Previously this parameter was used to disable validation of the memory address.
Address validation is no longer performed by this command so there is no longer
a need for a parameter to disable it.
This parameter specifies the number of memory bytes to be read and displayed.
Default: 2
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Availability:
All Level , '/'
Quick Help:
Change Diagnostic Command Level, /[Level]
Description:
This command selects the specified Diagnostic Level.
Input Parameters:
0 - New Diagnostic Level.
This parameter specifies the new Diagnostic Command Level to be selected. The
following Diagnostic Command Levels are currently supported:
1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, I, L and T
Optionally, the new level can be followed by a Diagnostic Command for the specified
level. In this case, the new level will be selected and the specified command will
be executed. Parameters 1, 2, 3, etc. will specify Parameters 0, 1, 2, etc. of the
Diagnostic Command. For example, entering "/2S200,0" at the diagnostic prompt
"F3 1>"
F3 1>/2S200,0
F3 2>
will change the diagnostic level from 1 to 2, seek to cylinder 200 head 0 and leave
the diagnostic level set to 2.
Default: Level T
Output Data:
The Diagnostic Level is displayed followed by the command prompt.
Revision History:
Availability:
All Level , '='
Quick Help:
Poke Memory Byte, =[AddrHi],[AddrLo],[Data],[Opts]
Description:
The Poke Memory Byte command writes the specified byte (8-bits) of processor
memory with the specified data.
Input Parameters:
Default: 0
If parameter 2 is not entered, this parameter contains the 8-bit data with
which the memory location is to be written. If parameter 2 is entered, this
parameter contains the lower 16-bits of the address of the memory location
to be written.
Default: 0
2 - Memory Data.
If entered, this parameter contains the data with which the memory
location is to be written.
Range: 0 to 0xff
Default: None
This parameter indicates to the diagnostic command what memory unit size in bytes to
use when reading the memory block. The only valid values for this parameter are
8, 4, 2, and 1.
Default: 2
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Availability:
All Level , '@'
Quick Help:
Batch File Label, @[LabelNum]
Description:
This command places a label in a Batch File that can be the destination for Batch File
branch instructions. See the Special Batch File Function command (All Levels '*') for
a description of the available branch instructions.
Input Parameters:
0 - Label Number.
This parameter specifies the Label Number. The Batch File branch instructions
specify this value as the branch destination.
Range: 0 to 0xF
Default: None
Output Data:
None
Revision History:
0001.0000 Initial revision.
Availability:
All Level , 'A'
Quick Help:
Set Test Space, A[OptsOrParmSelect],[ParmValue],[AddrType],[HdForCylLimit]
Description:
The Set Test Space command configures the diagnostic Test Space based on the parameters
entered.
Input Parameters:
If Parameter 0 bit 3 is set, Parameter 0 bits 2-0 specify the Test Space
Parameter to be modified and Parameter 1 contains the new parameter value.
If Parameter 0 bit 3 is cleared, Parameter 0 bits 7-4 and 2-0 select the
following Test Space Options. If Parameter 0 is not entered, the Test Space
will not be modified and the current Test Space configuration will be
displayed.
If set, bits 7-4 will not be used and bits 2-0 will select the
following Test Space Parameters to be modified:
If Bit 1 (All Cylinders) is set and this bit is set, all cylinders
(Minimum Cylinder to Maximum Cylinder) will be accessed in a
pseudo-random fashion. If Bit 1 (All Cylinders) is set and this
bit is cleared, all cylinders (Minimum Cylinder to Maximum Cylinder)
will be accessed in a sequentially fashion. If Bit 1 (All Cylinders)
is cleared and this bit is set or cleared, only the current cylinder
will be accessed.
If Bit 0 (All Heads) is set and this bit is set, all heads (Minimum
Head to Maximum Head) will be accessed in a pseudo-random fashion.
If Bit 0 (All Heads) is set and this bit is cleared, all heads (Minimum
Head to Maximum Head) will be accessed in a sequentially fashion. If
Bit 0 (All Heads) is cleared and this bit is set or cleared, only the
current head will be accessed.
Range: 0 to 0xFFFF
Default: None
If Parameter 0 bit 3 is set, Parameter 0 bits 2-0 specify the Test Space
Parameter to be modified and Parameter 1 contains the new parameter value.
If Parameter 0 bit 3 is cleared, Parameter 1 is not used.
Range: 0 to 0xffffffff
Default: None
When specifying a new Test Space minimum or maximum address, this parameter
specifies the type of address as follows.
0 = User Area
1 = System Area
2 = Physical
For example:
Range: 0 to 2
When specifying a new Test Space minimum or maximum cylinder address (Parameter 0
equal to 8 or 9), this parameter specified the head address for which the minimum
or maximum cylinder address is to be set. This parameter is not used if the
minimum or maximum cylinder address is not being set.
If head is not specified, return not valid so that it will default to current target
head.
If head is not
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
One of the following strings will be displayed to indicate the diagnostic address
mode that is currently selected.
"User LBA" or
"User LLL CHS" or
"User LLP CHW" or
"System LBA" or
"System LLL CHS" or
"System LLP CHW" or
"PLP CHS" or
"PLP CHW"
This may be followed by one or more of the following strings indicating which Test
Space options are selected.
"80% Rnd 20% Seq" (Update the Cylinder and Head Address randomly 80% of
the time and sequentially 20% of the time)
"Seq Out" (Update the Cylinder and Head Address sequentially outward
from ID to OD)
"Seq In" (Update the Cylinder and Head Address sequentially inward
from OD to ID)
"Rnd Lngth" (Use a random Transfer Length for read and write operations)
This will be followed by strings indicating the range of addresses being tested.
For the User LBA and System LBA address modes, the followed string indicates the
range of LBAs being tested.
where
For all other address modes, the following strings indicate the range of heads and
cylinders being tested.
where
The Test Space Limits for all Address Modes will be displayed as follows:
where
kkkkkkkk is the minimum User Area LBA that will be accessed by commands that use
User LBA Address Mode
mmmmmmmm is the maximum User Area LBA that will be accessed by commands that use
User LBA Address Mode
nnnnnnnn is the minimum System Area LBA that will be accessed by commands that
use System LBA Address Mode
pppppppp is the maximum System Area LBA that will be accessed by commands that
use System LBA Address Mode
rrrrrr is the minimum User Area Logical Cylinder Address on the specified head
that will be accessed by commands that use User LLL CHS or User LLP CHW
Address Modes
ssssss is the maximum User Area Logical Cylinder Address on the specified head
that will be accessed by commands that use User LLL CHS or User LLP CHW
Address Modes
uuuuuu is the minimum System Area Logical Cylinder Address that will be accessed
by commands that use System LLL CHS or System LLP CHW Address Modes
vvvvvv is the maximum System Area Logical Cylinder Address that will be accessed
by commands that use System LLL CHS or System LLP CHW Address Modes
w is a Logical Head Address that will be accessed by commands that use PLP
CHS or PLP CHW Address Modes
xxxxxx is the minimum Physical Cylinder Address on the specified head that will
be accessed by commands that use PLP CHS or PLP CHW Address Modes
yyyyyy is the maximum Physical Cylinder Address on the specified head that will
be accessed by commands that use PLP CHS or PLP CHW Address Modes
Following the display above, the Target Buffer Sector Offset will be displayed.
where
bbbbbbbb is the Target Buffer Sector Offset at which from the beginning of
diagnostic Read/Write buffer the next Read/Write diagnostic command will
transfer data to or from.
Examples:
Example #1:
The following command displays without modifying the Test Space that is currently
selected:
F3 2>A
Example #2:
The following commands specify how the target address is to be updated:
Example #3:
The following commands set the Test Space limits:
F3 2>A8,123,,0 (sets the minimum user logical cylinder for head 0 to 123)
F3 2>A9,234,,0 (sets the maximum user logical cylinder for head 0 to 234)
F3 2>A8,567,,1 (sets the minimum user logical cylinder for head 1 to 567)
F3 2>A9,890,,1 (sets the maximum user logical cylinder for head 1 to 890)
F3 2>A8,11,1,0 (sets the minimum system logical cylinder for head 0 to 11)
F3 2>A9,23,1,0 (sets the maximum system logical cylinder for head 0 to 23)
F3 2>A8,567,2,0 (sets the minimum physical cylinder for head 0 to 567)
F3 2>A9,876,2,0 (sets the maximum physical cylinder for head 0 to 876)
F3 2>AA,3 (sets the maximum head to 3)
F3 2>AB,4567 (sets the minimum user LBA to 4567)
F3 2>AC,9876 (sets the maximum user LBA to 9876)
F3 2>AB,223,1 (sets the minimum system LBA to 223)
F3 2>AC,7845,1 (sets the maximum system LBA to 7845)
F3 2>AE,1 (sets the minimum head to 1)
Example #4:
The following command resets the Test Space to its default state:
F3 2>AD
Example #5:
The following command sets the Target Buffer Sector Offset to 0
F3 2>AF,0
Revision History:
Enable Looping
Availability:
All Level , 'L'
Quick Help:
Enable Looping, L[Opts],[CountOrStopOnErrCode]
Description:
This command enables looping, with the specified loop count and options, on the next
diagnostic command received.
Input Parameters:
0 - Looping Options.
If this bit is equal to 1, then looping will stop when the Test
Space wraps. This means that when the current head and track have
incremented past the end of the Test Space and have been wrapped
back to the beginning of the Test Space, then looping will stop.
Bit 3: reserved
Range: 0 to 0xffff
Range: 0 to 0xffffffff
Default: 0
Output Data:
None
Revision History:
Availability:
All Level , '|'
Quick Help:
Batch File Terminator, |
Description:
This command terminates the entry and execution of a Batch File.
Input Parameters:
None
Output Data:
None
Revision History:
Buffer Display
Availability:
Level 1 , 'B'
Level 2 , 'B'
Level 7 , 'B'
Level F , 'B'
Level H , 'B'
Quick Help:
Buffer Display, B[DisplayBlk],[RefBlk],[NumBlks],[Opts],[SymBits]
Description:
The Buffer Display command reads and displays the contents of the specified buffer
blocks. Optionally, the buffer data being displayed can be compared to a specified
compare buffer blocks, with miscomparing bytes displayed as highlighted text.
Input Parameters:
This parameter specifies the number of the first buffer block to be displayed.
Default: If this parameter is not entered, the First block of Diagnostic Read
Buffer will be displayed.
This parameter specifies the number of the first buffer block that will be
compared to the blocks being displayed. Bytes that miscompare will be
displayed as highlighted text.
Default: If this parameter is not entered and the Display Buffer Block is
located in the Diagnostic Read Buffer, the corresponding block in
the Diagnostic Write Buffer will be used as the Reference Buffer
Block.
2 - Number of Blocks.
Default: 1
3 - Options.
If this bit is cleared, the display will pause after each block
and wait for the user to enter a character.
Range: 0 to 0xFFFFFFFF
4 - Symbol Size.
Range: 1 to 32
Default: 8
Output Data:
"DiagError aaaaaaaa"
where
where
dddd if the number of the Buffer Block to which the displayed block is
being compared.
If the memory data is being displayed as bytes, the following information will be
displayed following the header.
where
If the memory data is being displayed as non-8-bit symbols, the following information
will be displayed following the header.
where
jj is the buffer symbol. The number of characters displayed for each symbol
will vary depending on the symbol size.
If the displayed data is being compared to a reference buffer block, the bytes or
symbols that are not equal to the reference will be displayed as highlighted text.
Revision History:
Availability:
Level 1 , 'D'
Level F , 'D'
Quick Help:
Memory Block Display, D[AddrHi],[AddrLo],[CompVal],[NumBytes],[Opts],[SizeInBytes]
Description:
The Memory Block Display command reads and displays the contents of memory starting
at the specified address. Optionally, the memory data being displayed can be compared
to a specified value, with miscomparing bytes displayed as highlighted text. This
command also optionally supports specifying the size of the memory unit to be addressed.
It can support reading and displaying 8-bit, 16-bit, 32-bit, and 64-bit memory unit
sizes.
Input Parameters:
If parameter 1 is not entered, this parameter contains the 32-bit address of the
first memory location to be read and displayed. If parameter 1 is entered, this
parameter contains the upper 16-bits of the address of the first memory location
to be read and displayed.
Default: 0
If entered, this parameter contains the lower 16-bits of the address of the first
memory location to be read and displayed.
Range: 0 to 0xffff
If entered, this parameter specifies a value that will be compared to the contents
of the specified memory locations. If the contents of the memory location are
different than the specified value, they will be displayed in high-intensity mode,
If the contents of the memory location are equal to the specified value, they will
be displayed in low-intensity mode. The value passed in this parameter must not be
larger than number of bytes specified in parameter 5.
Default: None
Range: 1 to 0xFFFFFFFF
Default: 0x200
4 - Options.
Previously this bit was used to disable validation of the memory address.
Address validation is no longer performed by this command so there is no
longer a need to disable it.
Bit 0: Disable pause after each block displayed.
If this bit is cleared, the display will pause after each 512-byte block
and wait for the user to enter a character.
If this bit is set, all of the requested bytes will be displayed without
pausing.
Range: 0 to 0x00000001
Default: 0
This parameter indicates to the diagnostic command what memory unit size in bytes to
use when reading the memory block. The only valid values for this parameter are
8, 4, 2, and 1.
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
where
If the memory data is being displayed as bytes, the following information will be
displayed following the header.
If the memory data is being displayed as words (4 bytes), the following information
will be displayed following the header.
where
If a displayed data is being compared to a reference byte, the bytes or symbols that
are not equal to the reference will be displayed as highlighted text.
Examples:
Example #1: Display 512 bytes of memory starting at address 0 in 8-bit chunks
F3 1>D
F3 1>D0,,,200
F3 1>D0,0,,200
Example #2: Display 1024 bytes of memory starting at 04000000 in 16-bit chunks
F3 1>D04000000,,,400,,2
F3 1>D0400,0000,,400,,2
Example #3: Display 512 bytes of memory from address 0 in 64-bit chunks and compare each
element to the value 0xE580C000E12CC38E
F3 1>D,,E580C000E12CC38E,,,8
Revision History:
Availability:
Level 1 , 'G'
Level 7 , 'i'
Quick Help:
Generic Read/Write Request, G[Parm0],[Parm1],[Parm2],...[Parm9]
Generic Read/Write Request, i[Parm0],[Parm1],[Parm2],...[Parm9]
Description:
The Generic Read/Write Request commmand provides a pass through to the Read/Write
subsystem. The command parameters are passed to the Read/Write subsystem without
being interpreted.
Input Parameters:
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
8 - Generic Read/Write Request Parameter 8.
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
SMART Control
Availability:
Level 1 , 'N'
Quick Help:
SMART Control, N[SubCmd],[SubCmdParm0],[SubCmdParm1]
Description:
Performs several diagnostic SMART functions.
Input Parameters:
This parameter defines which command will be used on the SMART Serial Port. The
following are the allowable commands (red indicates that the command is unsupported).
Default: None
1 - Unused.
This parameter is not used by any currently supported SMART Control commands.
Range: 0 to 0xFFFF
Default: None
2 - Unused.
This parameter is not used by any currently supported SMART Control commands.
Default: None
Output Data:
"DiagError aaaaaaaa"
where
"Att"
"Num Flgs normlzd worst raw"
"aa bbbb cc dd eeeeeeeeeeeeee"
where
bbbb is additional attribute dependent information. Bit 0 when set indicates that
this attribute is a warranty attribute.
dd is the normalized worst (usually lowest) value seen for this attribute.
"Att Thresh"
"aa bb"
where
If Display R-List Event Counts (N18) is requested, the following information will
be displayed.
"Sectors = aa"
"Wedges = bb"
where
If Dump Critical Event Log (N8) is requested, the following information will be
displayed.
" DERP"
" dec error DERP"
" Hours - LBA R Theta Z EC Cmd type retry temp count type "
" aaa - bbbbb cc dddd e ffff gg hh ii jj kk lllllllllllllll"
where
aaa is the decimal number of power on hours at the time of the event.
cc is the radius of the LBA expressed (in hex) as a percentage of the user
area stroke from the OD.
Revision History:
Availability:
Level 1 , 'S'
Quick Help:
Edit Processor Memory Byte, S[AddrHi],[AddrLo],[MemValue],[NumBytes],[Opts]
Description:
The Edit Processor Memory Byte command displays the contents of the specified processor
memory location and prompts the user ( --> ) to enter a new value to be written to the
location. While waiting for the new value to be entered, this command will monitor the
memory location and display its value if it changes.
Entering a Line Feed (Control J) character following the prompt will increment the
processor memory address and display the value of the next location.
The command is terminated when a carriage return is entered following the prompt.
Input Parameters:
Default: 0
If entered, this parameter contains the lower 16-bits of the address of the
first memory byte to be edited.
Range: 0 to 0xffff
2 - Memory Data.
If entered, this parameter contains the value with which the specified memory
address is to be written.
3 - Number of Bytes.
4 - not used.
Previously this parameter was used to disable validation of the memory address.
Address validation is no longer performed by this command so there is no longer
a need for a parameter to disable it.
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Availability:
Level 1 , 'U'
Quick Help:
Edit Buffer Memory Byte, U[AddrHi],[AddrLo],[MemValue],[NumBytes]
Description:
The Edit Buffer Memory Byte command displays the contents of the specified buffer
memory location and prompts the user ( --> ) to enter a new value to be written
to the location. While waiting for the new value to be entered, this command will
monitor the memory location and display its value if it changes.
Entering a Line Feed (Control J) character following the prompt will increment the
buffer memory address and display the value of the next location.
The command is terminated when a carriage return is entered following the prompt.
Input Parameters:
Default: 0
If entered, this parameter contains the lower 16-bits of the address of the
first memory byte to be edited.
Range: 0 to 0xffff
2 - Memory Data.
If entered, this parameter contains the value with which the specified memory
address is to be written.
3 - Number of Bytes.
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Buffer Compare
Availability:
Level 1 , 'c'
Level 2 , 'c'
Level F , 'V'
Quick Help:
Buffer Compare, c[SrcBlk],[RefBlk],[NumBlks],[ContOnErr]
Buffer Compare, V[SrcBlk],[RefBlk],[NumBlks],[ContOnErr]
Description:
The Buffer Compare command compares the contents of the specified source buffer
block(s) to the specified reference buffer block(s) and returns an error if a
miscompare is detected.
Input Parameters:
If this parameter is entered, it specifies the number of the first buffer block
that contains the source data to be compared.
Default: If this parameter is not entered, the first block of the Diagnostic
Read Buffer will be the first source block.
If this parameter is entered, it specifies the number of the first buffer block
to which the source data is to be compared.
Default: If this parameter is not entered, the first block of the Diagnostic
Write Buffer will be the first reference block.
Default: If Parameters 0, 1 and 2 are not entered, the entire Diagnostic Read
Buffer will be compared to the Diagnostic Write Buffer. If Parameter 2
is not entered and either Parameter 0 or 1 is entered, a single buffer
block will be compared.
If this parameter is entered, the compare operation will compare all of the
specified bytes and display an error for each miscompare that is detected.
If this parameter is not entered, the compare operation will stop when the
first miscompare is detected.
Range: 0 to 0xFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
"at SrcBlk = cccc Addr = dddddddd Data = ee, RefBlk = ffff Addr = gggggggg Data = hh"
where
cccc is the number of the Source Buffer Block in which the miscompare occurred.
ffff is the number of the Reference Buffer Block in which the miscompare occurred.
Revision History:
Availability:
Level 1 , 'e'
Quick Help:
Spin Down and Reset Drive, e[MsecDelay],[Opts]
Description:
This command spins down the drive, waits the specified number of milliseconds and
jumps to the Power On Reset function or the Boot Strap Loader. When jumping to
the Power On Reset function, a Control Z command will be required to enable the
Diagnostic Mode commands following the completion of the reset.
Input Parameters:
This parameter specifies the number of milliseconds to delay after spinning down
and before resetting the drive.
If this parameter is equal to 0x0F, the code will jump to the Boot Strap Loader
after spinning down the drive. If this parameter is not equal to 0x0F, the code
will jump to the Power On Reset function after spinning down the drive.
Range: 0 to 0xFF
Default: None
Output Data:
The following string will be output to indicate that the drive is in the process
of spinning down.
"Spinning Down"
When the spin down is complete, the following information will be displayed.
a is minutes
b is seconds
c is milliseconds
d is microseconds
When delaying following spin down, the following string will be displayed.
where
After the delay is complete, one of the following strings will be output to indicate
that the reset is being performed.
Revision History:
Availability:
Level 1 , 'j'
Quick Help:
Display Hardware Jumper Setting, j[HardwareJumperSelect]
Description:
This diagnostic command display hardware jumper settings.
Input Parameters:
This input parameter selects which hardware jumper will be checked and its setting
will be displayed.
Please refer to the following list of values to select the hardware jumper.
Range: 0 to 0xFFFFFFFF
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the setting of the requested hardware jumper will be displayed as follows.
"Jumper is ss..ss"
where
Examples:
Example #1:
Display SATA configuration hardware jumper setting
F3 1>j0
Revision History:
Quick Help:
Edit Processor Memory Word, m[AddrHi],[AddrLo],[MemValue],[NumBytes],[Opts]
Description:
The Edit Processor Memory Word command displays the contents of the specified processor
memory location and prompts the user ( --> ) to enter a new value to be written to the
location. While waiting for the new value to be entered, this command will monitor the
memory location and display its value if it changes.
Entering a Line Feed (Control J) character following the prompt will increment the
processor memory address and display the value of the next location.
The command is terminated when a carriage return is entered following the prompt.
Input Parameters:
Default: 0
If entered, this parameter contains the lower 16-bits of the address of the
first memory byte to be edited.
Range: 0 to 0xffff
2 - Memory Data.
If entered, this parameter contains the value with which the specified memory
address is to be written.
3 - Number of Bytes.
Previously this parameter was used to disable validation of the memory address.
Address validation is no longer performed by this command so there is no longer
a need for a parameter to disable it.
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Availability:
Level 1 , 's'
Quick Help:
Call SDBP Cmd, s[Parm1],[Parm2],[Parm3]
Description:
This command will call the SDBP Router. The input parameters specify the data to be
sent to the SDBP router, the response of the SDBP router will be printed at the end
of the call
Input Parameters:
0 - XX
This is the byte value to fill into the SDBP packet. Each parameter represents
one byte. Not entering the parameter will indicate end of the packet.
Range: 0 to 0xFF
Output Data:
If the user did not enter a DETS command then the output data will be
Return Packet:
aaaa: bb cc dd ee ff gg hh ii jj kk
Where
aaaa is the offset into the packet ( 16 bytes per line is displayed )
bb-kk is the binary values in the response packet
If the user specified a DETS command then the output data will be
Example #1:
To enable the DITS port
F3 1>s1,0,1,0,8,0,0,0,ff,ff,1,0,9a,32,4f,03
Return Packet:
0000: 01 00 01 00 10 00 00 00 72 06 2F 00 00 00 00 08
0010: 03 02 00 01 80 02 00 00
Example #2:
To Spin down the drive ( DETS command 0x1B )
F3 1>s7,0,7,0,4,0,0,0,1b,0,1,0
Revision History:
1.0 Intial Revision
Availability:
Level 2 , '7'
Quick Help:
Write Verify CHS, 7[Sec],[NumSecs],[WrBufBlk],[Opts]
Description:
This command writes data to the disk starting at the specified sector on the target
track for the specified number of sectors. The specified sectors are then read and
the data is compared to the data that was written. The sectors are written with the
data contained in the specified buffer and they are read into the the Diagnostic
Read Buffer.
Input Parameters:
If Parameter 3 bit 5 is set, this parameter contains the physical sector address
of the first sector to be written and verified, else this parameter contains the
User Area logical sector address of the first sector to be written and verified.
Default: 0
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the Sector Address was entered and the Transfer Length was not entered,
then only the specified sector will be written and verified.
If both the Sector Address and Transfer Length are not entered, then the
Transfer Length will be set based on the Test Space that is selected.
If the Random Transfer Length option is selected, a random value will be
used that is less than or equal to the number of sectors remaining on the
track. If the Random Transfer Length option is not selected, the number
of sectors remaining on the track will be written and verified.
This parameter specifies the number of the buffer block that contains the data
with which the specified sectors are to be written. The data contained in this
buffer block will also be compared to the data that is read.
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
Default: If a Write Data Buffer Block Number is not specified, the Diagnostic
Write Buffer will be used as the write data source and the read compare
reference data.
3 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the sectors in the Test Space will be
written and verified, else only the System Area Sectors specified
by Parameters 0 and 1 will be written and verified.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the write and verify
operations will continue and attempt to write and verify all of
the requested sectors. Each error encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
or
"DiagError aaaaaaaa"
where
If a data miscompare was detected during a read compare operation, the following
information will be displayed.
"DiagError aaaaaaaa"
followed by
or
where
cccccccc is the Disk Logical Block Address of the sector that miscompared
jjjj is the byte offset from the start of the sector to the byte that miscompared
Examples:
Example #1:
To write and verify a single logical sector
(in this case logical sector 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>723
Example #2:
To write and verify multiple logical sectors
(in this case logical sectors 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>723,4
Example #3:
To write and verify all of the logical sectors on a track
(in this case all logical sectors on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>7
Example #4:
To write and verify all of the logical sectors on multiple tracks
(in this case all logical sectors on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be written.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>7
Example #5:
To write and verify all of the logical sectors on a track and continue on error
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0
F3 2>7,,,1
Example #6:
To write and verify all of the logical sectors in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 2>7,,,11
Example #7:
To write and verify a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>732,,,2
Example #8:
To write and verify multiple physical sectors
(in this case physical sectors 32 to 35 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>732,4,,2
Example #9:
To write and verify all of the physical sectors on a track
(in this case all physical sectors on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>7,,,2
Example #10:
To write a single logical sector with data at a specific sector offset in the
diagnostic write buffer, read it to the sector offset in the diagnostic read buffer,
then compare the data at the sector offset in the diagnostic read buffer against the
data at the same sector offset in the diagnostic write buffer to verity the data
(in this case logical sector 23 on logical cylinder 45 head 1,
write with data at the sector offset of 5 in the diagnostic write buffer,
read to the sector offset of 5 in the diagnostic read buffer and verify the data)
F3 2>A0
F3 2>AF,5
F3 2>S45,1
F3 2>723
Example #11:
To rotate the buffer sector offset by 1 and write a single logical sector with data at
the rotated sector offset in the diagnostic write buffer, read it to the rotated
sector offset in the diagnostic read buffer, then compare the data at the sector
offset in the diagnostic read buffer against the data at the same sector offset in the
diagnostic write buffer to verity the data
(This example assumes user ran the Example #10 above right before this example,
in this case logical sector 24 on logical cylinder 45 head 1,
write with data at the sector offset of 6 in the diagnostic write buffer,
read to the sector offset of 6 in the diagnostic read buffer and verify the data)
F3 2>724,,,4
Revision History:
Buffer Display
Availability:
Level 1 , 'B'
Level 2 , 'B'
Level 7 , 'B'
Level F , 'B'
Level H , 'B'
Quick Help:
Buffer Display, B[DisplayBlk],[RefBlk],[NumBlks],[Opts],[SymBits]
Description:
The Buffer Display command reads and displays the contents of the specified buffer
blocks. Optionally, the buffer data being displayed can be compared to a specified
compare buffer blocks, with miscomparing bytes displayed as highlighted text.
Input Parameters:
This parameter specifies the number of the first buffer block to be displayed.
Default: If this parameter is not entered, the First block of Diagnostic Read
Buffer will be displayed.
This parameter specifies the number of the first buffer block that will be
compared to the blocks being displayed. Bytes that miscompare will be
displayed as highlighted text.
Default: If this parameter is not entered and the Display Buffer Block is
located in the Diagnostic Read Buffer, the corresponding block in
the Diagnostic Write Buffer will be used as the Reference Buffer
Block.
2 - Number of Blocks.
Default: 1
3 - Options.
If this bit is cleared, the display will pause after each block
and wait for the user to enter a character.
Range: 0 to 0xFFFFFFFF
4 - Symbol Size.
Range: 1 to 32
Default: 8
Output Data:
"DiagError aaaaaaaa"
where
where
dddd if the number of the Buffer Block to which the displayed block is
being compared.
If the memory data is being displayed as bytes, the following information will be
displayed following the header.
where
If the memory data is being displayed as non-8-bit symbols, the following information
will be displayed following the header.
where
jj is the buffer symbol. The number of characters displayed for each symbol
will vary depending on the symbol size.
If the displayed data is being compared to a reference buffer block, the bytes or
symbols that are not equal to the reference will be displayed as highlighted text.
Revision History:
Buffer Copy
Availability:
Level 2 , 'C'
Level 7 , 'C'
Level F , 'C'
Quick Help:
Buffer Copy, C[SrcBlk],[DestBlk],[NumBlks]
Description:
The Buffer Copy command copies the contents of the specified source buffer block(s)
to the specified destination buffer block(s).
Input Parameters:
If this parameter is entered, it specifies the number of the first buffer block
that contains the source data to be copied.
Default: If this parameter is not entered, the first block of the Diagnostic
Read Buffer will be the first source block.
1 - First Destination Buffer Block Number.
If this parameter is entered, it specifies the number of the first buffer block
to which the source data is to be copied.
Default: If this parameter is not entered, the first block of the Diagnostic
Write Buffer will be the first destination block.
Default: If Parameters 0, 1 and 2 are not entered, the entire Diagnostic Read
Buffer will be copied to the Diagnostic Write Buffer. If Parameter 2
is not entered and either Parameter 0 or 1 is entered, a single buffer
block will be copied.
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
LdpcIterationControl
Availability:
Level 2 , 'D'
Quick Help:
LdpcIterationControl, D[itratn cnt],[glbl itratn],[BERP opts],[erasure],[slidewindowjog_sz],[ext itratn]
Description:
The Iteration Control command controls the channel's local and global iteration behavior.
Input Parameters:
This value is the number of local interations allowed. Note that this value
also determines the number of global iterations that will occur.
If 0 to 3FF is entered, local override is set TRUE and the entered
iteration count is used.
If FFFF is entered, local override is set FALSE.
If no value is entered, the override and iteration count will not be
changed.
Default: No value entered means do not change local override or iteration count.
Range: 0 - FFFF
2 - BERP options
This value indicates BERP options setup. The following are the
bit definitions:
Range: 0 - FFFF
This value indicates BERP erasure filter setup in the read channel register.
This may change with evolutions of read channels, so refer to your channel
specification for proper programming.
Range: 0 - FFFF
This value indicates BERP Sliding Window size, and Sliding Window jog.
lower 16 bits Sliding Window size, in 16 bit channel buffer size.
upper 16 bits Sliding Window jog, in 16 bit channel buffer size.
Range: 0 - FFFFFFFF
Range: 0 - FFFF
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the LDCP iteration control state data will be displayed as follows.
where
xxxxxxxx is " enabled" or "disabled" to indicate the state of local iteration override
CC is the software's local iteration count
yyyyyyyy is " enabled" or "disabled" to indicate the state of global iteration override
zzzzzzzz is " enabled" or "disabled" to indicate the state of global iterations
DD is the local iteration count read from the channel
EE is the BERP options.
FFFF is the BERP erasure setup.
GGGG is te BERP sliding window size.
HHHH is the BERP extended iterations count.
Examples:
Example #1:
To set local iteration to 10 decimal:
F3 2>DA
Example #2:
To disable local iteration override, enable global override, and disable global iterations:
F3 2>DFFFF,1
Example #3:
To enable global iteration override and global iterations:
F3 2>D,2
Example #4:
To set local iteration to 1E in the hardware:
F3 2>D
Local iteration override enabled count = 14
Global iteration override disabled iterations disabled
Current hardware iteration count = 14
F3 2>D1E
Local iteration override enabled count = 1E
Global iteration override disabled iterations disabled
Current hardware iteration count = 14 14 still in hardware
F3 2>R
F3 2>D
Local iteration override enabled count = 1E
Global iteration override disabled iterations disabled
Current hardware iteration count = 1E The read forced 1E down to hardware.
Revision History:
Availability:
Level 2 , 'E'
Level 3 , 'E'
Level 4 , 'E'
Level 7 , 'E'
Level A , 'E'
Level T , 'E'
Quick Help:
Display / Edit Log, E[LogNum],[ErrCodeOrSpecialFuncKey],[SpecialFunc]
Description:
This command displays or modifies the specified Log File.
Input Parameters:
0 - Log Number.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Range: 0 to 0xFFFF
If Parameter 2 is equal to 8, 20 hex, 100 hex, 200 hex or 400 hex, this parameter
must be equal to AA hex to enable the special error log operation specified by
Parameter 2. If Parameter 2 is not equal to 8, 20 hex, 100 hex, 200 hex or 400 hex,
only log entries with the Error Code specified by this parameter will be displayed.
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
Default: None
If Parameter 2 is equal to 8, the ASCII log will be cleared and ASCII data
entered from the serial port will be stored in the ASCII log. When a
carriage return is entered, the ASCII log will be stored to the log number
specified by Parameter 0.
If Parameter 2 is equal to 10 hex, ASCII data entered from the serial port
will be appended to the end of the ASCII log. Entering a carriage return
terminates the ASCII data to be appended.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
where
kkkkkkkk is the number of symbols from index at which the error occurred
tttttttt is an ASCII String that indicates the partition ( "System" or " User" )
in which the error occurred
If no error occurred and the contents of an ASCII Log are selected to be displayed,
where
TBD
If no error occurred and the number of unused log bytes is being displayed,
where
"Log e Starting System Area LBA = ffffffff" (for a Disc Log or)
"Log e Starting Buffer Addr = gggggggg" (for a Buffer Log)
where
Examples:
Example #1:
To create a new user-defined error log as log 10 with 64KB of memory, display
information about it, enable it as the active error log, and display the actual
contents of the log:
Revision History:
Availability:
Level 2 , 'F'
Quick Help:
Modify Track Defect List, F[PSctr/LBA],[Action]
Description:
The Modify Track Defect List command modifies the defect list for the specified
sector(s).
IMPORTANT NOTE: When this command is used to add items to the Reassigned Sectors List,
it should also update the Critical Event Log and the R-List counts. However, these
updates are deferred until the SMART subsystem can get idle access. After using the
Modify Track Defect List command, use either the Online Control R or Online Control T
command to exit diagnostic mode so that the SMART subsystem can perform updates. If the
drive is power-cycled before exiting diagnostic mode, the drive will NOT preserve the
information in the SMART sector.
Related Commands:
The Reassigned Sectors List may be viewed by using the Level T 'V4' command.
Display Defect Lists (Level T 'V')
The Critical Event Log and R-List counts can be viewed by using the Level 1 'N'.
command. (Use 'N8' for the Critical Event Log and 'N18' for the R-List counts.)
SMART Control (Level 1 'N')
Input Parameters:
Range: 0 to 0xFFFFFFFF
Default: 0
Note: The track and head used are the current track. When working with sectors
that are already alted, it is best to use the LBA mode actions (B1 and C1
below) .
Parameter 1 specifies the format action to be taken. The valid choices are:
A - Add Sector to Alternated Sector List
A1 - Add LBA to Alternated Sector List
B - Add Sector to Pending Sector List
B1 - Add LBA to Pending Sector List
C1 - Remove LBA from Alternated Sector List
F1 - Remove LBA from Alternated Sector List ( same as C1 above )
Range: 0 to 0xFFFFFFFF
Default: 0x0C1
Output Data:
"DiagError aaaaaaaa"
where
Examples:
Example #1:
To remove LBA 1234 from the alt list:
F3 2>F1234,f1
Revision History:
Availability:
Level 2 , 'H'
Level 3 , 'H'
Level 4 , 'H'
Level 7 , 'H'
Quick Help:
Select Logical Head, H[Hd],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified logical head address. If no
address is specified, this command will seek to the next logical head in the Test Space.
Input Parameters:
Range: 0 to 0xFF
Default: None
1 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write
or write header track follow position.
Range: 0 to 0xFF
2 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
"Hd h"
where
h is selected head
Revision History:
Availability:
Level 2 , 'I'
Level 7 , 'I'
Quick Help:
Display / Modify Adaptive Parameter, I,[GroupId]
Description:
This command is used to invoke the Display / Modify Adaptive Parameter subcommands.
Input Parameters:
0 - Not Used.
Please see the other Display / Modify Adaptive Parameters commands for details
regarding the use of this parameter.
Type: N/A
Range: N/A
Default: None
This parameter specifies the ID of the Adaptive Parameter Group that contains
the value to be displayed or modified.
Range: 0 to 0xFFFFFFFF
Default: 0
Output Data:
Please see each individual Display / Modify Adaptive Parameter subcommand for more
details regarding its output data format.
Examples:
The following will present the Display/Modify Adaptives command's Table of Contents:
F3 2>I,FF
Revision History:
Particle Sweep
Availability:
Level 2 , 'J'
Quick Help:
Particle Sweep, J[ Start Cyl ],[ End Cyl ],[ Duration mSec ],[ Dwell mSec ],[ JIT mode ]
Description:
This command performs the particle sweep operation. To perform particle sweep, a seek
length is calculated to satisfy the conditions imposed by the input parameters. Seeks of
this length are repeatedly issued to move the head from the Start Cylinder towards the
End Cylinder, while pausing the specified dwell time between each successive seek. All
seeks will be done using head 0, and will be of equal length, time, and dwell. The time
needed to complete the particle sweep will be approximately equal to the time specified
by the Duration parameter.
Input Parameters:
0 - Start Cylinder.
This parameter is the cylinder from which the particle sweep will begin.
Notes:
1) if Start Cylinder and End Cylinder are the same, then the particle sweep range
will default to the drive's Max and Min cylinders respectively.
2) Start Cylinder may be greater than or less than End Cylinder.
Default: 0
1 - End Cylinder.
This parameter is the cylinder on which the particle sweep will end.
Notes:
1) if Start Cylinder and End Cylinder are the same, then the particle sweep range
will default to the drive's Max and Min cylinders respectively.
2) End Cylinder may be greater than or less than Start Cylinder.
Default: 0
2 - Duration.
This parameter specifies the time in milliseconds that the particle sweep
will use to move from the Start Cylinder to the End Cylinder including the
Dwell time.
Range: 0 to 0xFFFFFFFF
This parameter specifies the amount of time in milliseconds for the head to
remain on track before the next seek is issued.
This parameter specifies one of the servo JIT modes, which controls how fast the
actuator can move from cylinder to cylinder.
Note: if a JIT mode is requested that is slower than supported, then the
slowest supported JIT mode will be used.
Range: 0 to 0xFF
Output Data:
"DiagError aaaaaaaa"
where
DiagError aaaaaaaa
where
"Particle Sweep"
"R/W Status c, R/W Error dddddddd
where
dddddddd is the error code that was returned by the R/W subsystem
Examples:
Example #1:
To do a particle sweep using the default conditions, i.e. Start Cylinder = Max Cylinder,
End Cylinder = Min Cylinder, 5-second duration, 1-rev dwell, and slowest JIT mode:
F3 2>J
Example #2:
To do a particle sweep using Start Cylinder = 10, End Cylinder = 1000, 6-second
duration, 200 mSec dwell, and slowest JIT mode:
F3 >J10,1000,1770,C8
Example #3:
Error handling of an invalid cylinder entry:
F3 2>Jfffffff
DiagError 00003013
Revision History:
Availability:
Level 2 , 'K'
Level 4 , 'K'
Quick Help:
Set Tracking Offset, K[OffsetValue],[PersOrTempOpt],[UnitsOpt],[ChanReload]
Description:
This command applies an offset to the servo system and then performs a seek to the
specified offset for the current track and head. The type of seek (Read, Write or
Write Header) will be the same as the last seek performed.
Input Parameters:
Default: 0
Range: 0 or 1
This parameter specifies the units of the Track Follow Offset value.
If this bit is equal to 0, the Track Follow Offset value specified in the
Parameter 0 will be in data track width.
If this bit is equal to 1, the Track Follow Offset value specified in the
Parameter 0 will be in servo track width.
Range: 0 to 0xFF
This parameter enables or disables reloading the channel parameters after the
track offset is set. If this parameter is equal to 0, the channel parameters
will not be reloaded into the channel registers. If this parameter is equal
to 1, the channel parameters will be reloaded into the channel registers.
Range: 0 or 1
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To persistently apply the servo tracking offset in the amount of 256/256th of data track width
in positive direction
F3 2>A0
F3 2>S1000
F3 2>K100,1
Example #2:
To persistently apply the servo tracking offset in the amount of 100% of data track width
in negative direction
F3 2>A0
F3 2>S1000
F3 2>KFC18,1,1
Example #3:
To persistently apply the servo tracking offset in the amount of 256/256th of servo track width
in negative direction
F3 2>A0
F3 2>S1000
F3 2>KFF00,1,2
Example #4:
To persistently apply the servo tracking offset in the amount of 100% of a servo track width
in positive direction
F3 2>A0
F3 2>S1000
F3 2>K3E8,1,3
Revision History:
Availability:
Level 2 , 'M'
Quick Help:
Set Diag Idle Mode, M[ModeSelect],[ModeMask],[ResetToPowerOn]
Description:
This commmand enables / disables Idle Mode features. The Online Control P command can
subsequently toggle selected features off and back on. The mode you set will not
change when you move among diag, interface, and online modes (that is, the mode will
stay set when you use ctl-T, ctl-R, and ctl-Z).
Input Parameters:
Range: 0 to 0x3F
This parameter specifies which idle mode features are MODIFIED, both
by this command and by subsequent ctl-P commands. For each bit,
a 1 in this parameter means this feature will be enabled or
disabled depending on how parameter 0 is set. A zero in a bit for this
parameter means this feature will remain unchanged regardless of how
parameter 0 is set.
Ctl-P toggles the bits set in this parameter.
If this parameter is not entered, all bits are set according to parameter 0
and the Ctl-P mask is unchanged.
If parameter 0 is not entered, this parameter is ignored.
Range: 0 to DIAG_POWER_ALL
Example: 2> M3,7 sets STIR and TCC, clears Continuous Writer Heat and
MR Bias Chop, and leaves PFAST and Self Seek unchanged.
Subsequent clt-P commands toggle only STIR, TCC, and Continuous Writer
Heat.
If this parameter is entered, the other parameters are ignored. The idle
mode is reset to its power on value.
Range: 0 to 0xFFFFFFFF
Default: none
Example: 2> M,,7 sets the idle mode to what it was when the drive powered
on.
Output Data:
"DiagError aaaaaaaa"
where
aaaaaaaa is the Diagnostic Error Code
where
Examples:
Example #1:
To turn on Dithering and TCC, turn off continuous heat and
MR chop, and leave PFast and channel power unchanged:
F3 2>M3,f
Note that the second parameter ('f' above) will control what
toggles with control P.
[ issue control P ]
[ issue control P ]
Example #2:
To turn off power chop and see RDX/RDY on all the time:
F3 2>M0,8
Revision History:
Availability:
Level 2 , 'N'
Quick Help:
Set Direct Write Mode, N[EnableDirWrtModeOpt]
Description:
The Set Direct Write Mode commmand enables or disables Direct Write mode.
Input Parameters:
If this parameter is entered and is not equal to 0, the direct write mode
will be enabled for the diagnostic write operation.
Range: 0 to 0xFFFFFFFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Examples:
The following command enables the Direct Write Mode:
F3 2>N1
The following commands disable the Direct Write Mode and restore the normal
write mode:
F3 2>N
F3 2>N0
Revision History:
Availability:
Level 2 , 'O'
Level 3 , 'O'
Quick Help:
Seek Repeatedly Between Physical Cylinders, O[StartPhyCyl0],[StartPhyCyl1],[NumSkPairs],[NumSeconds],[Hd]
Description:
The Seek From Cyl To Cyl commmand seeks repeatedly from the cylinder in parameter 0 to
the cylinder in parameter 1 for the specified number of 2-seek cycles or the specified
duration.
The Butterfly Seek Test commmand performs the following seeks on the specified head:
Input Parameters:
Range: 0 to 0xFFFFFFFF
Range: 0 to 0xFFFFFFFF
Range: 0 to 0xFFFFFFFF
Default: 5 ( Seconds )
3 - Select test duration to be time or number of seek pairs. If not entered ,
perform Parameter 2 seek pairs . If entered, run seeks for Parameter 2 seconds,
for "forever", or for number of seconds specified by parameter 2 .
Range: 0 to 0xFFFF
Range: 0 to 0xFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level 2 , 'P'
Level 7 , 'P'
Level F , 'P'
Level H , 'P'
Quick Help:
Set Buffer Pattern, P[PatternSelOrPatternLow],[PatternHi],[PatternBits],[Opts],[BlkNum],[NumBlks]
Description:
This command loads the specified data buffer blocks with the specified data pattern.
This command supports both the legacy ST-10 mode and a new mode that allows the user to
enter data patterns of up to 16-bytes (128-bits in length). The Legacy ST-10 mode only
allowed the user to enter 4-byte (32-bit) patterns.
In legacy ST-10 mode Parameter 0 selects either a pre-defined pattern (i.e. If Parameter 0
is equal to 0x1212, random data will be selected) or it contains the lower 16-bits of a
user specified pattern. In this mode Parameter 1 contains the upper 16-bits of a user
specified pattern, Parameter 2 specifies the pattern length, in bits, and the pattern
is assumed to be right justified. For example if Parameter 0 is equal to 0x5678,
Parameter 1 is equal to 0x1234 and Parameter 2 is equal to 0x14, the buffer will be
filled with the repeating 20-bit pattern 0100 0101 0110 0111 1000 which are the least
significant 4-bits of Parameter 1 followed by the 16-bits of Parameter 0 (45678).
The new 16-byte user pattern mode is selected by entering 0x1818 for Parameter 0. In
this mode Parameter 1 contains the 16-byte pattern to be used, Parameter 2 specifies
the pattern length, in bits, and the pattern is assumed to be left justified. The
pattern should be entered as a 1 to 32 character hexadecimal value with no spaces or
commas separating the bytes. For example if Parameter 0 is equal to 0x1818,
Parameter 1 is equal to 0x123456789ABC and Parameter 2 is equal to 0x24, the buffer
will be filled with the repeating 36-bit pattern 0001 0010 0011 0100 0101 0110 0111
1000 1001 which are the most significant 36-bits of Parameter 1 (123456789).
Input Parameters:
Note: When loading the buffer with the repeating 127-bit pattern, each
byte will be flipped end to end. So when displayed, the filled buffer
will actually contain the following data.
The buffer will be filled with the following 15-byte repeating pattern.
F0 F3 F3 C3 03 03 03 0F 3F 3F 3F 3C 30 30 F0 hex
The buffer will be filled with the 1 to 128 bit (16 byte) pattern
entered for Parameter 1. The number of Parameter 1 bits to be repeated
will be specified by Parameter 2.
If Parameter 3 bit 1 is set or Parameter 0 is not equal to any of the values listed
above, Parameter 0 will specify the least significant 16-bits of the data pattern
with which the buffer is to be loaded. In this case Parameter 1 will specify the
most significant 16-bits of the data pattern, the maximum pattern length will be
32-bits and the specified pattern will be assumed to be right justified.
Range: 0 to 0xffff,
If Parameter 3 bit 1 is set or Parameter 0 does not select one of the pre-defined
data patterns (0x1111, 0x1212, etc.), Parameter 1 specifies the most significant
16-bits of the data pattern with which the buffer is to be loaded. In this case
Parameter 0 will specify the least significant 16-bits of the data pattern, the
maximum pattern length will be 32-bits and the specified pattern will be assumed
to be right justified.
Range: 0 to 0xffffffffffffffffffffffffffffffff
Default: 0
This parameter specifies the length, in bits, of the fill pattern specified by
parameters 0 and 1.
Range: 0 to 0x80
3 - Options.
This parameter is a bit-significant value that selects the following options.
Range: 0 to 0xFFFFFFFF
This parameter specifies the number of the first buffer block to be filled.
Default: If this parameter is not entered, the first block of Diagnostic Write
Buffer will be the first buffer block filled.
Range: 0 to 0xffff
Default: If this parameter is not entered and Parameter 4 was not entered, the
entire Diagnostic Write Buffer will be filled. If this parameter is
not entered and Parameter 4 was entered, only the buffer block specified
by Parameter 4 will be filled.
Output Data:
"DiagError aaaaaaaa"
where
Examples:
The following commands will load the Diagnostic Write Buffer with pre-defined patterns:
F3 2>P1111 (Incrementing Pattern - 1st block 0x0000, 2nd block 0x0001, etc.)
F3 2>P1212 (Random Pattern)
F3 2>P1313 (Alternating Pattern - 0x1313 and Random Data)
F3 2>P1414 (Isolated Pulse Pattern - 0xFFFF0000)
F3 2>P1515 (Incrementing 2-Byte Pattern - 0x0000000100020003...)
F3 2>P1616 (Pre-Defined 127-bit Pattern - 0x13175B06...)
F3 2>P1717 (Pre-Defined 15 byte 6T Pattern - 0xF0F3F3C303...)
The following commands will load the Diagnostic Write Buffer with user defined patterns:
The following commands will load the specified buffer blocks with a user defined pattern:
Revision History:
Availability:
Level 2 , 'Q'
Level 7 , 'Q'
Quick Help:
Write, Read, Read CHS, Q[Sec],[NumSecs],,[PhyOpt],[Opts]
Description:
This command performs a disk write, read, read operation starting at the specified
sector on the target track for the specified number of sectors. The sectors are
written with the data contained in the Diagnostic Write Buffer and they are read into
the Diagnostic Read Buffer.
Input Parameters:
If any value is entered for Parameter 3, this parameter contains the physical
sector address of the first sector to write and read else this parameter contains
the User Area logical sector address of the first sector to write and read.
Default: 0
1 - Transfer Length.
This parameter specifies the number of consecutive sectors to write and read.
Range: 0 to 0xFFFFFFFF
Default: If the Sector Address was entered and the Transfer Length was not entered,
then only the specified sector will be written and read.
If both the Sector Address and Transfer Length are not entered, then the
Transfer Length will be set based on the Test Space that is selected.
If the Random Transfer Length option is selected, a random value will be
used that is less than or equal to the number of sectors remaining on the
track. If the Random Transfer Length option is not selected, the number
of sectors remaining on the track will be written and read.
2 - not used.
Type: None
Range: None
Default: None
If any value is entered for this parameter, then Parameter 0 specifies a physical
sector address, else Parameter 0 specifies a User Area logical sector address.
Range: 0 to 0xFFFF
Default: None
4 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the sectors in the Test Space will be
written and read, else only the sectors specified by Parameters 0
and 1 will be written and read.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the write and read operations
will continue and attempt to write and read all of the requested
sectors. Each error encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To write and read a single logical sector
(in this case logical sector 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>Q23
Example #2:
To write and read multiple logical sectors
(in this case logical sectors 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>Q23,4
Example #3:
To write and read all of the logical sectors on a track
(in this case all logical sectors on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>Q
Example #4:
To write and read all of the logical sectors on multiple tracks
(in this case all logical sectors on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be written and read.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>Q
Example #5:
To write and read all of the logical sectors on a track and continue on error
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0
F3 2>Q,,,,1
Example #6:
To write and read all of the logical sectors in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 2>Q,,,,11
Example #7:
To write and read a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>Q32,,,1
Example #8:
To write and read multiple physical sectors
(in this case physical sectors 32 to 35 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>Q32,4,,1
Example #9:
To write and read all of the physical sectors on a track
(in this case all physical sectors on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>Q,,,1
Example #10:
To write a single logical sector with data at a specific sector offset in the
diagnostic write buffer and read it to the sector offset in the diagnostic read buffer
(in this case logical sector 23 on logical cylinder 45 head 1,
write with data at the sector offset of 5 in the diagnostic write buffer,
read to the sector offset of 5 in the diagnostic read buffer)
F3 2>A0
F3 2>AF,5
F3 2>S45,1
F3 2>Q23
Example #11:
To rotate the buffer sector offset by 1, write a single logical sector with data at
the rotated sector offset in the diagnostic write buffer, then read it to the rotated
sector offset in the diagnostic read buffer
(This example assumes user ran the Example #10 above right before this example,
in this case logical sector 24 on logical cylinder 45 head 1,
write with data at the sector offset of 6 in the diagnostic write buffer,
read to the sector offset of 6 in the diagnostic read buffer)
F3 2>Q24,,,,4
Revision History:
Read CHS
Availability:
Level 2 , 'R'
Level 7 , 'R'
Quick Help:
Read CHS, R[Sec],[NumSecs],,[PhyOpt],[Opts]
Description:
This command reads data from the disk starting at the specified sector on the target
track for the specified number of sectors. The data is read into the Diagnostic Read
Buffer.
Input Parameters:
If any value is entered for Parameter 3, this parameter contains the physical
sector address of the first sector to read, else this parameter contains the
User Area logical sector address of the first sector to read.
Default: 0
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the Sector Address was entered and the Transfer Length was not entered,
then only the specified sector will be read.
If both the Sector Address and Transfer Length are not entered, then the
Transfer Length will be set based on the Test Space that is selected.
If the Random Transfer Length option is selected, a random value will be
used that is less than or equal to the number of sectors remaining on the
track. If the Random Transfer Length option is not selected, the number
of sectors remaining on the track will be read.
2 - not used.
Type: None
Range: None
Default: None
If any value is entered for this parameter, then Parameter 0 specifies a physical
sector address, else Parameter 0 specifies a User Area logical sector address.
Range: 0 to 0xFFFF
Default: None
4 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the sectors in the Test Space will be
read, else only the sectors specified by Parameters 0 and 1 will
be read.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the read operation will
continue and attempt to read all of the requested sectors. Each
error encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To read a single logical sector
(in this case logical sector 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>R23
Example #2:
To read multiple logical sectors
(in this case logical sectors 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>R23,4
Example #3:
To read all of the logical sectors on a track
(in this case all logical sectors on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>R
Example #4:
To read all of the logical sectors on multiple tracks
(in this case all logical sectors on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be read.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>R
Example #5:
To read all of the logical sectors on a track and continue on error
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0
F3 2>R,,,,1
Example #6:
To read all of the logical sectors in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 2>R,,,,11
Example #7:
To read a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>R32,,,1
Example #8:
To read multiple physical sectors
(in this case physical sectors 32 to 35 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>R32,4,,1
Example #9:
To read all of the physical sectors on a track
(in this case all physical sectors on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>R,,,1
Example #10:
To read a single logical sector to a specific sector offset in the diagnostic read
buffer
(in this case logical sector 23 on logical cylinder 45 head 1,
to the sector offset of 5 in the diagnostic read buffer)
F3 2>A0
F3 2>AF,5
F3 2>S45,1
F3 2>R23
Example #11:
To rotate the buffer sector offset by 1 and read a single logical sector to the
rotated sector offset in the diagnostic read buffer.
(This example assumes user ran the Example #10 above right before this example,
in this case logical sector 24 on logical cylinder 45 head 1,
to the sector offset of 6 in the diagnostic read buffer)
F3 2>R24,,,,4
Revision History:
Availability:
Level 2 , 'S'
Level 3 , 'S'
Level 4 , 'S'
Level 7 , 'S'
Level 8 , 'S'
Level H , 'S'
Quick Help:
Seek to Logical Cylinder and Head, S[Cyl],[Hd],[Offset],[OffsetUnitsOpt],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified User or System Area logical
cylinder and logical head address. If no address is specified, this command will
seek to the next logical track in the Test Space.
Input Parameters:
If Parameter 4 is not entered, this parameter is the address of the User Area
logical cylinder to which the seek is to be performed. If Parameter 4 is
entered, this parameter is the address of the System Area logical cylinder to
which the seek is to be performed. If both Parameter 0 and 1 are not entered,
a seek will be performed to the next logical track in the Test Space.
Range: 0 to 0xFFFFFFFF
Default: None
If entered, this parameter contains the address of the logical head to which the
seek is to be performed. If both Parameter 0 and 1 are not entered, a seek will
be performed to the next logical track in the Test Space.
Range: 0 to 0xFF
Default: None
Default: 0
This parameter specifies the units of the Track Follow Offset value. If this
parameter is equal to 0, the specified offset will be in units of 1/256th of the
servo track width. If this parameter is equal to 1, the specified offset will
be in units of 0.1% of the data track width.
Type: Unsigned 8-bit value
Range: 0 or 1
4 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write
or write header track follow position.
Range: 0 to 0xFF
5 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, the width of the destination track will be displayed
in Q14 servo counts.
If this bit is set, the channel parameters will not be reloaded into the
channel registers with the seek, else the channel parameters will be
reloaded into the channel registers.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
If a seek mode was specified, the Elapsed Time for the seek operation will be displayed.
The data displayed will be formatted as shown above, under Bit 6 of verbose mode.
Some commands use an output control bit flag (specified in the input parameters above).
If "Output Control Flag- Data Track Width" is set, the following information will be displayed:
where
wwww is the width of a data track in hex and in units of servo position. Q14 scaling,
so 0x4000 is the width of a data track at nominal TPI (before VTPI and warping).
Examples:
Example #1:
To seek to a logical cylinder and head at the read track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1
Example #2:
To seek to a logical cylinder and head at the write track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,1
Example #3:
To seek to a logical cylinder and head at the write header track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,2
Example #4:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in servo counts
(in this case logical cylinder 45 head 1 at an offset of plus 100/256ths of
the servo track width)
F3 2>S45,1,64
Example #5:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in percent of data track width
(in this case logical cylinder 45 head 1 at an offset of -10% of the data track
width)
F3 2>S45,1,FFF6,1
Example #6:
To seek to a logical cylinder and head at the read track follow position and
display the data track width in Q14 servo counts
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,4
Example #7:
To seek to a logical cylinder and head at the read track follow position and
disable reloading of the channel parameters by the seek
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,2
Example #8:
To seek to a system logical cylinder and head at the read track follow position
(in this case logical system cylinder 54 head 0)
F3 2>S54,0,,,,1
Revision History:
Measure Throughput
Availability:
Level 2 , 'T'
Quick Help:
Measure Throughput,
T[Opts],[CylSkew],[HeadSkew],[MiniZoneSkew],[SkewStep],[LengthInTracks],[OffsetInTracks],[NumberOfRetries]
Description:
This command is used to test the drive's read and write speed.
Input Parameters:
0 - Command Flags
This input sets read or write and determines disk access range.
Range: 0 to 0xFFFF
1 - Cylinder Skew
Range: 0 to 0xFFFF
2 - Head Skew
Range: 0 to 0xFFFF
Range: 0 to 0xFFFF
Default: 1
This input establishes how many tracks to read/write for each throughput test.
Range: 1 to 0xFFFF
Default: 8
This input establishes how many tracks from the first track of the zone to start
read/write for each throughput test.
Range: 0 to 0xFFFF
Default: 0
This input establishes the max number of re-transfer to perform upon transfer failure
for each throughput test. It is particular useful if combined with 2>Y,,,,1C0 disable
RW retry command to eliminate the throughput fluctuation due to RW retry.
Range: 0 to 0xFFFF
Default: 0x10
Output Data:
"DiagError aaaaaaaa"
where
where
Example #1:
To measure cylinder skews 13 through 17 in head 0 zone 9:
F3 2>T9,1317
Example #2:
To measure cylinder skews 10 AND 12 in head 3 zone 1 with head skews
6C, 6E, and 70 and minizone skews 60 and 62:
F3 2>T301,1012,6C70,6062,2
Example #3:
To measure cylinder skews 10 throughput 30 in all heads in all zones
( write ):
F3 2>T8880,1030
Example #4:
To measure head skews 30 through 60 with A tracks in all heads in all
zones at even minizones and offset 2D ( assume total number of heads is
4 and nominal serpent width is 32, there is a head switch in head 0/1/2,
but not head 3; there is a minizone switch in head 3 instead ) ( write ):
F3 2>TA880,,3060,,,A,2D
Example #5:
To measure minizone skews 30 through 60 with A tracks in head 0 in all
zones at odd minizones and offset 2D to make sure there is a minizone
switch ( assume nominal serpent width is 32 ):
F3 2>T1080,,,3060,,A,2D
Revision History:
Spin Up Drive
Availability:
Level 2 , 'U'
Level 3 , 'U'
Level 8 , 'U'
Level F , 'U'
Quick Help:
Spin Up Drive, U[HoldState],[Hd],[Cyl]
Description:
The command spins up the drive. Optionally, the spin up operation can be paused
in several intermediate states.
Input Parameters:
This parameter specifies the state in which the Spin Up operation is to be held.
0 = Spin up and attempt to track follow on the default cylinder and head.
2 = Release the Spin Hold State. If this option is selected the drive will
spin up to completion and attempt to track follow on the specified cylinder
and head.
4 = Spin up, unlatch the actuator and hold prior to attempting to synchronize
the demodulator to the data on the disk.
5 = Spin up, unlatch the actuator, synchronize the demodulator to the data on
the disk and hold prior to attempting to track follow.
Range: 0 to 0xFF
Default: 0
If the Spin Hold States are being used (Parameter 0 not equal to 0), this
parameter specifies the address of the logical head on which the spin up
operation will attempt to synchronize the demodulator and / or track follow.
If the Spin Hold States are not being used (Parameter 0 not entered or equal
to 0), this parameter specifies the address of the logical head to which a
seek will be performed after the drive is spun up.
Range: 0 to 0xFF
If the Spin Hold States are being used (Parameter 0 not equal to 0), this
parameter specifies the address of the physical cylinder on which the spin
up operation will attempt to track follow. If the Spin Hold States are not
being used (Parameter 0 not entered or equal to 0), this parameter specifies
the address of the physical cylinder to which a seek will be performed after
the drive is spun up.
Range: 0 to 0xFFFFFFFF
Output Data:
"DiagError aaaaaaaa"
where
In addition, one of the following strings will be output to indicate the current Spin
State.
The elapsed time for the spin operation will be displayed as follows.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
where
If a spin error occurred and the Verbose Formatted ASCII Data Output Mode is selected,
the Verbose Mode option bits will enable the following data to be output when set.
Bit 0-6: NA
Bit 7: Enable the Servo Event Log to be displayed
Bits 31-8: NA
If Bit 7 is set, the contents of the Servo Event Log will be displayed as follows.
where
Revision History:
0001.0000 Initial revision.
0011.0000 Combined the PSG Diagnostic Error Codes (PSGDEC) and the Diagnostic External
Test Service Error Codes (DETSEC) into a single set of Diagnostic Error Codes
(DiagError).
Availability:
Level 2 , 'V'
Quick Help:
Read Verify CHS, V[Sec],[NumSecs],[CompareBlk],[Opts]
Description:
This command reads data from the disk starting at the specified sector on the target
track for the specified number of sectors. The data is read into the Diagnostic Read
Buffer and is compared to the data contained in the specified buffer.
Input Parameters:
If Parameter 3 bit 5 is set, this parameter contains the physical sector address
of the first sector to read, else this parameter contains the User Area logical
sector address of the first sector to read.
Default: 0
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the Sector Address was entered and the Transfer Length was not entered,
then only the specified sector will be read.
If both the Sector Address and Transfer Length are not entered, then the
Transfer Length will be set based on the Test Space that is selected.
If the Random Transfer Length option is selected, a random value will be
used that is less than or equal to the number of sectors remaining on the
track. If the Random Transfer Length option is not selected, the number
of sectors remaining on the track will be read.
This parameter specifies the number of the buffer block that contains the data to be
compared to the data that is read.
Range: 0 to 0xFFFF
Default: If a Compare Buffer Block Number is not specified, the data read will be
compared to the data contained in the Diagnostic Write Buffer.
3 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the sectors in the Test Space will be
read, else only the System Area Sectors specified by Parameters 0
and 1 will be read.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the read operation will
continue and attempt to read all of the requested sectors. Each
error encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
or
"DiagError aaaaaaaa"
where
If a data miscompare was detected during a read compare operation, the following
information will be displayed.
"DiagError aaaaaaaa"
followed by
or
where
cccccccc is the Disk Logical Block Address of the sector that miscompared
jjjj is the byte offset from the start of the sector to the byte that miscompared
Examples:
Example #1:
To read and verify a single logical sector
(in this case logical sector 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>V23
Example #2:
To read and verify multiple logical sectors
(in this case logical sectors 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>V23,4
Example #3:
To read and verify all of the logical sectors on a track
(in this case all logical sectors on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>V
Example #4:
To read and verify all of the logical sectors on multiple tracks
(in this case all logical sectors on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be read.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>V
Example #5:
To read and verify all of the logical sectors on a track and continue on error
(in this case all logical sectors on logical cylinder 45 head 0)
Note: An error message will be displayed for each sector in error.
F3 2>A0
F3 2>S45,0
F3 2>V,,,1
Example #6:
To read and verify all of the logical sectors in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 2>V,,,11
Example #7:
To read and verify a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>V32,,,20
Example #8:
To read and verify multiple physical sectors
(in this case physical sectors 32 to 35 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>V32,4,,20
Example #9:
To read and verify all of the physical sectors on a track
(in this case all physical sectors on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>V,,,20
Example #10:
To read a single logical sector to a specific sector offset in the diagnostic read
buffer, then compare the data at the sector offset in the diagnostic read buffer
against the data at the same sector offset in the diagnostic write buffer to verity
the data
(in this case logical sector 23 on logical cylinder 45 head 1,
to the sector offset of 5 in the diagnostic read buffer)
F3 2>A0
F3 2>AF,5
F3 2>S45,1
F3 2>V23
Example #11:
To rotate the buffer sector offset by 1 and read a single logical sector to the
rotated sector offset in the diagnostic read buffer, then compare the data at the
sector offset in the diagnostic read buffer against the data at the same sector offset
in the diagnostic write buffer to verity the data
(This example assumes user ran the Example #10 above right before this example,
in this case logical sector 24 on logical cylinder 45 head 1,
to the sector offset of 6 in the diagnostic read buffer)
F3 2>V24,,,4
Revision History:
Write CHS
Availability:
Level 2 , 'W'
Level 7 , 'W'
Quick Help:
Write CHS, W[Sec],[NumSecs],,[PhyOpt],[Opts]
Description:
This command writes data to the disk starting at the specified sector on the target
track for the specified number of sectors. The sectors are written with the data
contained in the Diagnostic Write Buffer.
Input Parameters:
If any value is entered for Parameter 3, this parameter contains the physical
sector address of the first sector to write, else this parameter contains the
User Area logical sector address of the first sector to write.
Default: 0
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the Sector Address was entered and the Transfer Length was not entered,
then only the specified sector will be written.
If both the Sector Address and Transfer Length are not entered, then the
Transfer Length will be set based on the Test Space that is selected.
If the Random Transfer Length option is selected, a random value will be
used that is less than or equal to the number of sectors remaining on the
track. If the Random Transfer Length option is not selected, the number
of sectors remaining on the track will be written.
2 - not used.
Type: None
Range: None
Default: None
If any value is entered for this parameter, then Parameter 0 specifies a physical
sector address, else Parameter 0 specifies a User Area logical sector address.
Range: 0 to 0xFFFF
Default: None
4 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the sectors in the Test Space will be
written, else only the sectors specified by Parameters 0 and 1 will
be written.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the write operation will
continue and attempt to write all of the requested sectors. Each
error encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To write a single logical sector
(in this case logical sector 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>W23
Example #2:
To write multiple logical sectors
(in this case logical sectors 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>W23,4
Example #3:
To write all of the logical sectors on a track
(in this case all logical sectors on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>W
Example #4:
To write all of the logical sectors on multiple tracks
(in this case all logical sectors on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be written.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>W
Example #5:
To write all of the logical sectors on a track and continue on error
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0
F3 2>W,,,,1
Example #6:
To write all of the logical sectors in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 2>W,,,,11
Example #7:
To write a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>W32,,,1
Example #8:
To write multiple physical sectors
(in this case physical sectors 32 to 35 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>W32,4,,1
Example #9:
To write all of the physical sectors on a track
(in this case all physical sectors on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>W,,,1
Example #10:
To write a single logical sector with data at a specific sector offset in the
diagnostic write buffer
(in this case logical sector 23 on logical cylinder 45 head 1,
with data at the sector offset of 5 in the diagnostic write buffer)
F3 2>A0
F3 2>AF,5
F3 2>S45,1
F3 2>W23
Example #11:
To rotate the buffer sector offset by 1 and write a single logical sector with data at
the rotated sector offset in the diagnostic write buffer
(This example assumes user ran the Example #10 above right before this example,
in this case logical sector 24 on logical cylinder 45 head 1,
with data at the sector offset of 6 in the diagnostic write buffer)
F3 2>W24,,,,4
Revision History:
Availability:
Level 2 , 'X'
Quick Help:
Display Track Information, X[LogCyl],[Hd],[SysAreaOpt],[Opts],[RowsPerPage]
Description:
This command displays information about the specified track. If no track address is
specified, this command will display information about the current Target Track.
Input Parameters:
If Parameter 2 is not entered, this parameter is the User Area logical cylinder
address of the track for which information is to be displayed. If Parameter 2
is entered, this parameter is the System Area logical cylinder address of the
track for which information is to be displayed.
Range: 0 to 0xFFFFFFFF
This parameter is the logical head address of the track for which information
is to be displayed.
Range: 0 to 0xFF
If any value is entered for this parameter, then Parameter 0 specifies a System
Area logical cylinder address, else it specifies a User Area logical cylinder
address.
Range: 0 to 0xFFFF
Default: None
If this parameter is equal to 0, the specified tracks sector information will not
be displayed, else the specified tracks sector information will be displayed.
Range: 0 to 0xFFFF
Default: For Level 2 'X' the default is 1 (Display track's Sector Information)
For Level A 'l' the default is 0 (Don't display track's Sector Information)
Range: 0 to 0xFFFF
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
As shown above, the sector information is displayed in four columns. For each column,
the Physical Sector Address (PhySec) increments sequentially for each row. All of the
sectors in a given row are at the same sector offset from the start of the frame and
frames are seperated by a blank line. The displayed information is defined as follows:
cccc, gggg, kkkk and pppp are the Physical Sector Address.
dddd, hhhh, llll and qqqq are the Logical Sector Address.
eee, iii, mmm and rrr are the number of the Servo Burst that preceeds the sector.
ffffffff, jjjjjjjj, nnnnnnnn, tttttttt are the number of NRZ Symbols from Index
to the start of the sector.
qqq is the number of bytes before the servo burst that splits the sector for all
sectors in the row.
rrr is the number of bytes after the servo burst that splits the sector for all
sectors in the row.
Revision History:
Availability:
Level 2 , 'Y'
Level 7 , 'Y'
Level A , 'Y'
Level F , 'Y'
Quick Help:
Set Retries - DERP, Y[Mode],[MaxRdRetries],[MaxWrtRetries],[OtcTLevel],[Options]
Description:
This command allows the user to specify the error recovery parameters that will be used
for subsequent diagnostic commands. (This version of the Set Retries command is only
available if the drive supports DERP! To know whether your drive supports DERP, issue
the Online "^L" command to see a list of features supported by the drive.)
Input Parameters:
This parameter specifies the error recovery mode to be used. The following
error recovery modes are available:
0 = Maximum Normal
1 = Maximum Full
2 = Default Normal
3 = Default Full
4 = Minimum Normal
5 = Minimum Full
6 = Simple Retries
7 = Mini-Cert / Data Scrub
The Maximum Error Recovery Modes (0 and 1) are typically used for system
information recovery.
The Default Error Recovery Modes (2 and 3) are typically used by the native
interface.
The Minimum Error Recovery Modes (4 and 5) are typically used for diagnostic
and media certification operations.
The Normal Error Recovery Modes (0, 2 and 4) should be used for multiple sector
transfers. The retry steps for these modes employ less extreme tweaks to recover
the data. This increases the chance of successfully reading subsequent sectors
without resetting tweaks.
The Full Error Recovery Modes (1, 3 and 5) should be used for single sector
transfers. The retry steps for these modes employ more extreme tweaks to
recover the data. The tweaks used by these modes would make it difficult to
read subsequent sectors without error.
The Simple Error Recovery Mode (6) is a "Normal" type error recovery mode but with
no additional options enabled. Essentially, this is free retries applied during
DERP Reads.
The Mini-Cert / Data Scrub Recovery Mode (7) is used during the reallocation
operation to perform defect verification of the target block, typically performing
a reduced set of read or write retries.
Error Recovery Mode 2 (Default Normal) is the default configuration used by the
native interface (aka, "Interface Level Retries")
TIP: Setting the Error Recovery Mode without setting any other parameters will
restore the default settings for the specified Error Recovery Mode.
Range: 0 to 7
Default: If this parameter is not entered, the current error recovery mode
will not be changed.
If entered, this parameter specifies the maximum allowed read retry count. NOTE:
Specifying this parameter will cause the corresponding Error Recovery Options bit
to be set that enables the use of this value.
Range: 0 to 0xFFFF
Default: If this parameter is not entered, the maximum allowed read retry count
for the specified error recovery mode will not be changed.
If entered, this parameter specifies the maximum allowed write retry count. NOTE:
Specifying this parameter will cause the corresponding Error Recovery Options bit
to be set that enables the use of this value.
Range: 0 to 0xFFFF
Default: If this parameter is not entered, the maximum allowed write retry count
for the specified error recovery mode will not be changed.
If entered, this parameter specifies the ECC T-Level to be used for on-the-fly
correction. Although any value from 0x00 to 0xFF may be entered, the diagnostic
will automatically round down to the nearest available value from the entered
value. NOTE: Specifying this parameter will cause the corresponding Error Recovery
Options bit to be set that enables the use of this value.
Range: 0 to 0xFF
Default: If this parameter is not entered, the on-the-fly correction ECC T-Level
for the specified error recovery mode will not be changed.
If set, restrict servo flaw coasting during a read only if one of the
following conditions applies:
1) The failed block is not associated with a known grown servo flaw
2) New servo flaws are detected on the target track
3) Forced servo coast tweaks
If set, restrict servo flaw coasting during a write only if one of the
following conditions applies:
1) The failed block is not associated with a known grown servo flaw
2) New servo flaws are detected on the target track
3) Forced servo coast tweaks
If set, error recovery will terminate when the retry step is equal
to the early exit retry step.
If set, all retry tweak steps will be disabled for normal error recovery
modes.
If set, the hidden retry steps will be disabled for the full error
recovery modes. The first 9 steps of the full error recovery modes
are defined as hidden retries.
If set, all retry steps will be disabled for the full error recovery
modes.
If set, the retry tweaks will not be undone after the retry completes.
Bit 11: Disable on-the-fly ECC correction - normal retry tweak steps.
Bit 12: Disable on-the-fly ECC correction - full-hidden retry tweak steps.
Bit 13: Disable on-the-fly ECC correction - full retry tweak steps.
If this bit is set and Mode Options Bit 15 is also set, a specified
error recovery step will be used for the initial sector access.
Bit 22: Enable selected maximum retry counts in non-User media partition.
If set, the maximum read and write retry counts that have been enabled
by Bits 20 and 21 will be applied to retries in non-user partitions.
Bit 24: Disable the extended retries applied to Write Unsafe error.
Range: 0 to 0xFFFFFFFF
Default: If this parameter is not entered, the Error Recovery Options for the
specified error recovery mode will not be changed.
Output Data:
"DiagError aaaaaaaa"
where
aaaaaaaa is the Diagnostic Error Code
" B23: (f) gggggg P3: Selected OTF ECC T-level = jj"
" B22: (f) gggggg Max Retries In Non-User Partition"
" B21: (f) gggggg P1: Max Write Retries = hh"
" B20: (f) gggggg P2: Max Read Retries = ii"
" B03: (f) gggggg Restricted Servo Flaw Coasting during Read"
" B02: (f) gggggg xfer of Uncorrectable Sectors"
" B01: (f) gggggg Min OTF ECC Correction"
" B00: (f) gggggg Max OTF ECC Correction"
where
eeeeee are the Error Recovery Options that are selected for the current Error
Recovery Mode
gggggg is a string indicating whether the feature controlled by the options bit is
enabled or disabled
hh is the maximum number of allowable write retries for the current Error
Recovery Mode
ii is the maximum number of allowable read retries for the current Error
Recovery Mode
jj is the ECC T-Level to be used for On-The-Fly Correction for the current
Error Recovery Mode
kk is the Selected Error Retry Step for the current Error Recovery Mode
Revision History:
Availability:
Level 2 , 'Z'
Level 3 , 'Z'
Level 7 , 'Z'
Level 8 , 'Z'
Level F , 'Z'
Quick Help:
Spin Down Drive, Z
Description:
This command spins the drive down.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
In addition, one of the following strings will be output to indicate the current Spin
State.
The elapsed time for the spin operation will be displayed as follows.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
where
If a spin error occurred and the Verbose Formatted ASCII Data Output Mode is selected,
the Verbose Mode option bits will enable the following data to be output when set.
Bit 0-6: NA
Bit 7: Enable the Servo Event Log to be displayed
Bits 31-8: NA
If Bit 7 is set, the contents of the Servo Event Log will be displayed as follows.
where
Revision History:
Availability:
Level 2 , 'a'
Quick Help:
Measure Optimum Skew, a
Description:
This command determines average Track to Track Seek Time with 0 Skew, determines Optimum
Cylinder Skew within a Servo MiniZone, determines Optimum Head Skew, and determines Optimum
MiniZone Skew
Log Drive Average Seek Time, Worst Case Cyl Skew, Head Skew, MiniZone Skew
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the output of this command will be displayed as follows:
Description:
MeasureOptimumSkewdDiag
This Diagnostic Mode diagnostic function will measure and report Optimum Skew. It performs
four tests to find Average Track to Track Seek Time, Optimum Cylinder Skew, Optimum Head Skew,
and Optimum MiniZone Skew.
The function first does the setup and Test Start for the Diagnostic Mode diagnostic
function Measure Optimum Skew.
The function then does the test for Average Track to Track Seek time within a servo
MiniZone with no Head Switch.
The function then does the test for Measurements of Cylinder Skew using write times within
a servo MiniZone for all Cylinder Skew values. The function picks best drive Optimum
Cylinder Skew.
The function then does the test for Measurements of Head Skew using write times for 2 LBA
writes that cause a head switch, for all head pairs going down the Head stack and up the
Head stack and all Head Skew values. The function picks best drive Optimum Head Skew.
This function then does the test for Measurements of MiniZone Skew.
For Odd Number of Logical Heads the transition from one MiniZone Serpent to the next MiniZones Serpent
on the same Head is a distance on only one sequential LBA.
For Odd Number of Logical Heads MiniZone Skew Pick is set equal to Cyl Skew and requires no optimization.
For even number of Logical this function does the test for measurements of MiniZone Skew using write times
for 2 LBA writes that cause a Write and Seek across a MiniZone from the Last LBA of a MiniZone Serpent to
the first LBA of the next MiniZone Serpent on the same Head.
The function picks best drive Optimum MiniZone Skew.
The function then does a Summary of drive final results for Average Track to Track Seek
Time, Drive Optimum Cylinder Skew Pick, Drive Optimum Head Skew Pick and Drive Optimum MiniZone Skew Pick.
and outputs the results.
Where
aa is the Product Family ID (hex)
bb is the Product Family Member ID (hex)
cccccccc is the HDA Serial Number (ASCII)
dd is the Maximum User Partition Zone Number (hex)
ee is the Maximum Logical Head Number (int)
fff is the Product Drive default Cylinder Skew (Servo Wedges) (int)
gg is the Product Drive default Cylinder Skew (Servo Wedges) (hex)
hhh is the Product Drive default Head Skew (Servo Wedges) (int)
ii is the Product Drive default Head Skew (Servo Wedges) (hex)
jjj is the Product Drive default MiniZone Skew (Servo Wedges) (int)
kk is the Product Drive default MiniZone Skew (Servo Wedges) (hex)
lll is the nominal Servo MiniZone size in cylinders (int)
mm is the nominal Servo MiniZone size in cylinders (hex)
For each Logical Head
n is the Logical Head number (int)
ooo is the VBAR adjusted size in cylinders for Logical Head n (int)
*************************************************************************************************
Measure Optimum Skew Seek Timing Output Data Format:
"Average Worst Case Per Zone Per Head Cyl Seek Time in Servo Bursts"
"For All Zones All Heads Worst Track to Track Seek Time in Servo Bursts = FFF (int)"
"For All Zones All Heads Drive Average Track to Track Seek Time in Servo Bursts = GGG (int)"
Where
A is Zone (int) Range: Drive Min Zone to Drive Max Zone by ZoneStep)
Currently Min Zone is always zone 0, Max Zone is always Drive Max Zone
and ZoneStep is always = Drive Max Zone. Thus data output is always for
2 Zones only, Min and Max.
Data output is a fixed size to assist in developing templates for graphing
output data by zone per head.
Data columns are delineated by commas to assist Excel charting templates.
FFF is Worst Case Seek Time for all Zones, all Heads in Servo Bursts (int)
GGG is Average Seek Time for all Zones, all Heads in Servo Bursts (int)
"For All Zones All Heads Drive Cylinder Skew Pick = pppp (int) = qqqq (hex)"
Where
ll is test Zone = Range Min Zone to Max Zone by ZoneStep (int)
mm is Logical test Head number (int) Range: Min Logical Head to Max Logical Head
nnnnnnnn is best per Zone, per Head average Write time for the best Cyl Skew for this zone, head in Usecs (int)
oooo is best per Zone, per Head Cyl Skew (hex).
pppp is Drive Cylinder Skew Pick (int)
qqqq is Drive Cylinder Skew Pick (hex)
*************************************************************************************************
Measure Optimum Skew Head Skew Description
Measure Head Switch Head Skew Write Timing
Set Random pattern in Write Buff
For Min Zone and Max Zone
For First MiniZone in Test Zone
For Min Test Head Skew to Max Test Head Skew
Write only 2 LBA's - Last LBA in Servo Region to First LBA in Next Head Servo Region - Force Head Switch
Measure time for LBA Writes many times
Calculate average Write time
Log average Write time per Zone, Per Head for each Skew value tried
Where
For Min Zone to Max Zone by ZoneStep
For Test Zone
For each trial Head Skew
For each Head switch pair going down the stack and up the stack
aa is 'From Zone', Drive Min Zone, before Head Switch write (int)
mm is Logical test Head number before the Head Switch caused by 2 LBA write (int)
nn is Logical test Head number after the Head Switch caused by 2 LBA write (int)
oooooooo is the best average Write time for 2 LBA Write across the Head Switch for each Head switch pair
in USecs (int)
ppp is the Head Skew for the best Head Switch Write time for the Drive Min Zone test zone (servo bursts)
Where
FFF is the Drive best Head Skew pick for the best Head Switch Write time (servo bursts) (int)
GGG is the Drive best Head Skew pick for the best Head Switch Write time (servo bursts) (hex)
*************************************************************************************************
Measure Optimum Skew MiniZone Skew Description
Measure Optimum MiniZone Skew
Measure MiniZone serpent to MiniZone serpent Write Timing on the same Head
For Min Zone and Max Zone
For First Servo MiniZone serpent in Test Zone
If Number of Logical Heads is Odd
MiniZone serpent transitions are only one LBA and Optimum MiniZone Skew = Optimum Cyl Skew
break
If Number of Logical Heads is Even
MiniZone serpent transitions include a Seek across the full MiniZone to the First LBA of
the next MiniZone serpent on the same Head.
For Even Number of Logical Heads
Determine Last LBA of Last MiniZone serpent for Min or Max Head
For Min Test Head Skew to Max Test Head Skew
Write only 2 LBA's - Last LBA in Servo MiniZone to First LBA in Next Servo MiniZone - Same Head
Measure time for LBA Writes many times
Calculate average Write time
Log average MiniZone transition Write time per Zone, for each Skew value tried
Where
For Test Zone
With Cyl Skew = Measure Optimum Skew Cyl Skew pick
With Head Skew = Measure Optimum Skew Head Skew pick
For each trial MiniZone Skew
aa is 'From Zone', initially Test Zone, before Head Switch write (int)
cccccccc is Start Cyl at end of first MiniZone in test Zone (hex)
dddddddd is End Cyl after MiniZone 2 LBA write from end of First MiniZone serpent to next MiniZone Serpent (hex)
ee is Logical test Head number before the MiniZone 2 LBA write (int)
ff is Logical test Head number after the MiniZone 2 LBA write (int)
gggggggg is the Start LBA of the 2 LBA Write, before the MiniZone write, at end of the First MiniZone of the
'From' Head in the test Zone (hex)
hhhhhhhh is the End LBA of the 2 LBA Write, after the MiniZone write, at beginning of the next MiniZone of the
'To' Head in the test Zone (hex)
ii is number of trys used in determining MiniZone transition Write time for each trial MiniZone Skew (int)
jjj is the optimum Cyl Skew selected in Test 2 (servo bursts) (int)
kkk is the optimum Head Skew selected in Test 2 (servo bursts) (int)
lll is the trial MiniZone Skew (servo bursts) (int)
Starting Range = 0
Ending Range = Max Test MiniZone Skew
mmmmmmmm is the average Write time for 2 LBA Write across the MiniZone transition (int)
Where
For Min Zone to Max Zone by ZoneStep
For Test Zone
For each trial Head Skew
aa is 'Zone', User Test Zone (int)
mm is Logical From Head number before the MiniZone serpent to serpent transition caused by 2 LBA write (int)
nn is Logical To Head number after the MiniZone serpent to serpent transition caused by 2 LBA write (int)
oooooooo is the best average Write time for 2 LBA Write across the MiniZone transition in USecs (int)
ppp is the MiniZone Skew for the best MiniZone transition Write time for the User Test Zone (servo bursts) (int)
Where
FFF is the Drive best MiniZone Skew pick for the best MiniZone transition Write time (servo bursts) (int)
GGG is the Drive best MiniZone Skew pick for the best MiniZone transition Write time (servo bursts) (hex)
*************************************************************************************************
Measure Optimum Skew Test Summary Output Data Format:
"***********************************************************************"
"***Measure Optimum Skew Test Results Summary***"
Where
aa is the Product Family ID (hex)
bb is the Product Family Member ID (hex)
cccccccc is the HDA Serial Number (ASCII)
dd is the Maximum User Partition Zone Number (int)
ee is the Maximum Logical Head Number (int)
fff is the Product Drive default Cylinder Skew (Servo Wedges) (int)
ggg is the Product Drive default Cylinder Skew (Servo Wedges) (hex)
hhh is the Product Drive default Head Skew (Servo Wedges) (int)
iii is the Product Drive default Head Skew (Servo Wedges) (hex)
jjj is the Product Drive default MiniZone Skew (Servo Wedges) (int)
kkk is the Product Drive default MiniZone Skew (Servo Wedges) (hex)
lll is the Nominal Servo MiniZone Size in Cyls (int)
mmm is the Nominal Servo MiniZone Size in Cyls (hex)
"Drive Pick for Average Track to Track Seek Time in Servo Bursts = FFF (int) = GGG (hex)",
Where
AA is Zone (int) Range: Measure Optimum Skew Seek Timing Test Min Drive User Zone to Max Drive User Zone by ZoneStep)
BB is Logical Head (int) Range: Measure Optimum Skew Seek Timing Test Min Logical Head to Max Logical Head
CCC is Average Seek time in USecs (int)
DDD is Average Seek time in servo bursts (int)
EEE is Worst Case Seek Time in servo bursts (int)
FFF is Drive Pick for Average Seek Time for all Zones, all Heads in Servo Bursts (int)
GGG is Drive Pick for Average Seek Time for all Zones, all Heads in Servo Bursts (hex)
"For All Zones All Heads Drive Cylinder Skew Pick = pppp (int) = qqqq (hex)"
Where
ll is test Zone = Range Min Zone to Max Zone by ZoneStep (int)
mm is Logical test Head number (int) Range: Min Logical Head to Max Logical Head
nnnnnnnn is best per Zone, per Head average Write time for the best Cyl Skew for this zone, head in Useconds (int)
oooo is best per Zone, per Head Cyl Skew (int).
pppp is Drive Cylinder Skew Pick (int)
qqqq is Drive Cylinder Skew Pick (hexl)
Where
For Min Zone to Max Zone by ZoneStep
For Test Zone
For each trial Head Skew
For each Head switch pair going down the stack and up the stack
aa is 'From Zone', Drive Min Zone, before Head Switch write (int)
mm is Logical test Head number before the Head Switch caused by 2 LBA write (int)
nn is Logical test Head number after the Head Switch caused by 2 LBA write (int)
oooooooo is the best average Write time for 2 LBA Write across the Head Switch for each Head switch pair
in USecs (int)
ppp is the Head Skew for the best Head Switch Write time for the Drive Min Zone test zone (servo bursts) (int)
Where
FFF is the Drive best Head Skew pick for the best Head Switch Write time (servo bursts) (int)
GGG is the Drive best Head Skew pick for the best Head Switch Write time (servo bursts) (hex)
Where
For Min Zone to Max Zone by ZoneStep
For Test Zone
For each trial Head Skew
aa is 'Zone', User Test Zone (int)
mm is Logical From Head number before the MiniZone serpent to serpent transition caused by 2 LBA write (int)
nn is Logical To Head number after the MiniZone serpent to serpent transition caused by 2 LBA write (int)
oooooooo is the best average Write time for 2 LBA Write across the MiniZone transition in USecs (int)
ppp is the MiniZone Skew for the best MiniZone transition Write time for the User Test Zone (servo bursts) (int)
FFF is the Drive best MiniZone Skew pick for the best MiniZone transition Write time (servo bursts) (int)
GGG is the Drive best MiniZone Skew pick for the best MiniZone transition Write time (servo bursts) (hex)
*************************************************************************************************
Where
fff is the Product Drive default Cylinder Skew (Servo Wedges) (int)
gg is the Product Drive default Cylinder Skew (Servo Wedges) (hex)
hhh is the Product Drive default Head Skew (Servo Wedges) (int)
ii is the Product Drive default Head Skew (Servo Wedges) (hex)
jjj is the Product Drive default MiniZone Skew (Servo Wedges) (int)
kk is the Product Drive default MiniZone Skew (Servo Wedges) (hex)
"***Measure Optimum Skew Diag Average Track to Track Seek Time Pick = HHH (int) = III (hex)",
"***Measure Optimum Skew Diag Cylinder Skew Pick = JJJ (int) = KKK (hex)"
"***Measure Optimum Skew Diag Head Skew Pick = LLL (int) = MMM (hex)"
"***Measure Optimum Skew Diag MiniZone Skew Pick = NNN (int) = OOO (hex)"
Where
HHH is Drive Pick for Average Seek Time for all Zones, all Heads in Servo Bursts (int)
III is Drive Pick for Average Seek Time for all Zones, all Heads in Servo Bursts (hex)
JJJ is Drive Cylinder Skew Pick (int)
KKK is Drive Cylinder Skew Pick (hexl)
LLL is the Drive best Head Skew pick for the best Head Switch Write time (servo bursts) (int)
MMM is the Drive best Head Skew pick for the best Head Switch Write time (servo bursts) (hex)
NNN is the Drive best MiniZone Skew pick for the best MiniZone Transition Write time (servo bursts) (int)
OOO is the Drive best MiniZone Skew pick for the best MiniZone Transition Write time (servo bursts) (hex)
*************************************************************************************************
*************************************************************************************************
Examples:
Example #1:
To run all Measure Optimum Skew tests 1,2,3,4 to obtain Ave. track to track Seek time,
Pick of Drive Optimum Cyl Skew, Pick of Drive Optimum Head Skew, and Pick of Optimum MiniZone Skew:
F3 2>a
Revision History:
Buffer Compare
Availability:
Level 1 , 'c'
Level 2 , 'c'
Level F , 'V'
Quick Help:
Buffer Compare, c[SrcBlk],[RefBlk],[NumBlks],[ContOnErr]
Buffer Compare, V[SrcBlk],[RefBlk],[NumBlks],[ContOnErr]
Description:
The Buffer Compare command compares the contents of the specified source buffer
block(s) to the specified reference buffer block(s) and returns an error if a
miscompare is detected.
Input Parameters:
If this parameter is entered, it specifies the number of the first buffer block
that contains the source data to be compared.
Default: If this parameter is not entered, the first block of the Diagnostic
Read Buffer will be the first source block.
If this parameter is entered, it specifies the number of the first buffer block
to which the source data is to be compared.
Default: If this parameter is not entered, the first block of the Diagnostic
Write Buffer will be the first reference block.
Default: If Parameters 0, 1 and 2 are not entered, the entire Diagnostic Read
Buffer will be compared to the Diagnostic Write Buffer. If Parameter 2
is not entered and either Parameter 0 or 1 is entered, a single buffer
block will be compared.
If this parameter is entered, the compare operation will compare all of the
specified bytes and display an error for each miscompare that is detected.
If this parameter is not entered, the compare operation will stop when the
first miscompare is detected.
Range: 0 to 0xFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa"
where
"at SrcBlk = cccc Addr = dddddddd Data = ee, RefBlk = ffff Addr = gggggggg Data = hh"
where
cccc is the number of the Source Buffer Block in which the miscompare occurred.
ffff is the number of the Reference Buffer Block in which the miscompare occurred.
Revision History:
Availability:
Level 2 , 'h'
Level 3 , 'p'
Quick Help:
Translate Physical Sector, h[Sec],[NumSecs]
Translate Physical Sector, p[Sec],[NumSecs]
Description:
This command translates the specified Physical Sector address on the current track to
the following:
Input Parameters:
This parameter specifies the address of the Physical Sector on the current
track to be translated.
Default: 0
This value will specify the number of consecutive Physical Sectors to be translated.
(Note: The value entered will be limited to the Physical Sectors remaining on the
track.)
Range: 0 to 0xffffffff
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI "
"cccccccc dddddddd eeee ffff gggg hhhhhhhh"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Availability:
Level 2 , 'i'
Quick Help:
Display Defects On Current Track, i
Description:
This command displays the defecive sector information on the current Target Track.
Input Parameters:
0 - Option to display a summary of the current track. If entered display summary.
If not entered, the summary and all the slips on the track will be displayed.
This command will take a lot longer to run if the parameter is not
entered.
Range: 0 to 0xFF
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
As shown above, the sector information is displayed in four columns. The displayed
information is defined as follows:
cccc, eeee, gggg and iiii are the Physical Sector Address.
ddd, fff, hhh and jjj are the number of the Servo Burst that preceeds the sector.
Revision History:
Read Wedge
Availability:
Level 2 , 'j'
Level E , 'C'
Quick Help:
Read Wedge, j[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opts],[RegAddr0],...,[RegAddr13]
Read Wedge, C[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opts],[RegAddr0],...,[RegAddr13]
Description:
This command reads data from the disk starting at the specified data wedge for the
specified number of data wedges. The data is read into the Diagnostic Read Buffer.
At meanwhile the channel registers are sampled, if the register address are
specified.
Input Parameters:
0 - Wedge Address.
Default: 0
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the Wedge Address is entered and the Transfer Length is not
entered, then only the specified wedge will be read.
If both the Wedge Address and Transfer Length are not entered,
then the Transfer Length will be set based on the Test Space
that is selected. If the Random Transfer Length option is
selected, a random value will be used that is less than or
equal to the number of wedges remaining on the track. If the
Random Transfer Length option is not selected, the number of
wedges remaining on the track will be read.
2 - Skipped Wedges.
This parameter specifies the number of wedges to skip after each wedge read.
Range: 0 to 0xFFFF
Range: 0 to 0xFFFFFFFF
4 - Options.
This parameter is a bit significant value that selects the following options:
Bit 3 - Reserved
If this bit is equal to 0, NRZ symbol data on NRZ bus will be swapped.
If this bit is equal to 1, NRZ symbol data on NRZ bus won't be swapped.
If this bit is equal to 1, the wedge read operation will not stop when
a sync error occurs.
Range: 0 to 0xFFFFFFFF
Default: 0x00000001 (Stop on Sync Error, Formatted Wedge Read, Swap NRZ data)
This parameter specifies the address of the 1st Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 2nd Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 3rd Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 4th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 5th Read Channel register
to be read for data collection.
Default: None
This parameter specifies the address of the 6th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 7th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 8th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 9th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 10th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 11th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 12th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 13th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 14th Read Channel register
to be read for data collection.
Default: None
Output Data:
If no error occurred and one or more read channel register was specified for data
collection, the following information will be displayed.
where
bbbbbbbb is the minimum value that was read from the channel register
cccccccc is the maximum value that was read from the channel register
dddddddd is the mean of the values read from the channel register
eeeeee.ee is the standard deviation of the values read from the channel register
If no error occurred, one or more read channel register was specified for data
collection and Raw ASCII output mode is selected, the following additional
information will be displayed for each wedge and channel register for which data
was collected.
where
00 = No Error
04 = Sync Error
If no error occurred, no read channel registers were specified for data collection
and the Continue On Sync Error option was selected, the following additional
information will be displayed.
where
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To read a single wedge
(in this case wedge 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>j23
Example #2:
To read multiple wedges
(in this case wedges 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>j23,4
Example #3:
To read all of the wedges on a track
(in this case all wedges on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>j
Example #4:
To read all of the wedges on multiple tracks
(in this case all wedges on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be read.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>j
Example #5:
To read all of the wedges on a track and continue on sync errors
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0
F3 2>j,,,,2
Revision History:
Quick Help:
Set User Cylinder/Head/MiniZone Skew, k[CylSkew],[HeadSkew],[MiniZoneSkew]
Description:
This command is used to set the user cyl/head/minizone skew.
Input Parameters:
Range: 0 to 0xFFFF
1 - Head Skew
Range: 0 to 0xFFFF
2 - MiniZone Skew
Range: 0 to 0xFFFF
Output Data:
"DiagError aaaaaaaa"
where
where
Examples:
Example #1:
To set user cylinder skew to 40, minizone skew to 50 and keep
head skew unmodified:
F3 2>k40,,50
Revision History:
Availability:
Level 2 , 'l'
Level 3 , 'q'
Quick Help:
Translate Logical Sector, l[Sec],[NumSecs]
Translate Logical Sector, q[Sec],[NumSecs]
Description:
This command translates the specified Logical Sector address on the current track to
the following:
Input Parameters:
This parameter specifies the address of the Logical Sector on the current
track to be translated.
Default: 0
This value will specify the number of consecutive Logical Sectors to be translated.
(Note: The value entered will be limited to the Logical Sectors remaining on the
track.)
Range: 0 to 0xffffffff
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI "
"cccccccc dddddddd eeee ffff gggg hhhhhhhh"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Corrupt LBA
Availability:
Level 2 , 'o'
Quick Help:
Corrupt LBA, o[Lba],[NumBlocks],[BurstSpan],[BurstOffset],[NumberOfRandomCorrupt],[Flags]
Description:
This command corrupts blocks in User Area starting at the specified LBA (Logical
Block Address) for the specified number of blocks. Each block will be corrupted by
the specified number of bytes or symbols to corrupt. The location within the blocks where
the corruption should occur is determined by the user specified parameters and option
flags. This Diagnostic command basically does Read Long operation, corrupt the Diag Read
buffer then does Write Long operation with the corrupted Diag Read buffer.
Input Parameters:
This parameter specifies the address of the first User Area LBA to corrupt.
Default: None
Range: 0 to 0xFFFFFFFF
Default: 1
If parameter 4 is not specified or specified with zero value then this parameter
specifies the consecutive number of bytes or symbols to corrupt from the starting
offset specified by the parameter 3. If parameter 4 is specified with a non-zero
value then this parameter specifies the number of bytes or symbols to corrupt at
random byte or symbol offsets within the region secified by the starting offset
specified by the parameter 3 and the span specified by the parameter 4.
Range: 0 to 0xffff
Default: None
This parameter specifies the starting byte or symbol offset value of the region that
will be corrupted in the target block(s).
Range: 0 to 0xffff
Default: 0
If this parameter is specified with a non-zero value then it specifies the span of
the region within which values at random byte or symbols offsets will be corrupted
by the number of byte or symbols to corrupt specified by the parameter 2.
Range: 0 to 0xffff
Default: 0
5 - Options
If this bit is set, then the parameter 2, 3 and 4 will be ignored and
the user will be prompted to enter the parameters in interactive mode.
This is useful for entering corruption parameters for multiple bursts.
Bit 0: Enable ECC correction for the Read Long operation part of the
Corrupt LBA diagnostic command.
If this bit is set, then the ECC correction will be enabled for the
Read Long operation, otherwise ECC correction will be disabled.
Range: 0 to 0xFFFF
Output Data:
If bit 2 of the input parameter 5 was set then following message will be displayed to
prompt the user to enter the parameters as the user would do for parameter 2, 3 and 4,
to corrupt multiple bursts within each block(s).
"Enter the parameters delimited by commas as you would do for parameter 2, 3 and 4 of this command."
"Hit Enter key at the beginning of the line when you are done with entering."
"Burst Index aaa:" <- This line is repeated until user finishes entering the parameters
where
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To corrupt a single LBA at byte offsets from 0 to 0xF (in this case LBA 0x51237).
F3 2>o51237,,10,,,2
or
F3 2>o51237,1,10,0,0,2
Example #2:
To corrupt multiple LBAs at byte offsets from 0x100 to 0x11F for each block
(in this case LBAs from 0x51237 to 0x51247).
F3 2>o51237,11,20,100,,2
or
F3 2>o51237,11,20,100,0,2
Example #3:
To corrupt a single LBA at 16(0x10) random byte offsets within 0x100 and 0x17F
(in this case LBA at 0x51237).
F3 2>o51237,,10,100,80,2
or
F3 2>o51237,1,10,100,80,2
Example #4:
To corrupt a single LBA at byte offsets from 0x30 to 00x37 with ECC correction enabled
(in this case LBA 0x51237)
F3 2>o51237,,8,30,,3
or
F3 2>o51237,1,8,30,0,3
Example #5:
To corrupt a single LBA at 32(0x20) random byte offsets within 0x80 and 0xBF with ECC
correction enabled (in this case LBA 0x51237).
F3 2>o51237,,20,80,40,3
or
F3 2>o51237,1,20,80,40,3
Example #6:
To corrupt a single LBA at symbol offsets from 0 to 0xF (in this case LBA 0x51237).
F3 2>o51237,,10
or
F3 2>o51237,1,10,0,0,0
Example #7:
To corrupt multiple LBAs at symbol offsets from 0x100 to 0x11F for each block
(in this case LBAs from 0x51237 to 0x51247).
F3 2>o51237,11,20,100
or
F3 2>o51237,11,20,100,0,0
Example #8:
To corrupt a single LBA at 16(0x10) random symbol offsets within 0x100 and 0x17F
(in this case LBA at 0x51237).
F3 2>o51237,,10,100,80
or
F3 2>o51237,1,10,100,80,0
Example #9:
To corrupt a single LBA at symbol offsets from 0x30 to 00x37 with ECC correction enabled
(in this case LBA 0x51237)
F3 2>o51237,,8,30,,1
or
F3 2>o51237,1,8,30,0,1
Example #10:
To corrupt a single LBA at 32(0x20) random symbol offsets within 0x80 and 0xBF with ECC
correction enabled (in this case LBA 0x51237).
F3 2>o51237,,20,80,40,1
or
F3 2>o51237,1,20,80,40,1
Revision History:
Availability:
Level 2 , 'r'
Quick Help:
Read Long CHS or Read System CHS, r[LongSec],[LongSecsOrSysSec],[SysSecs],[LongPhySecOpt],[LongOpts],[SysOpts]
Description:
This command performs either a read long of the specified sectors or a System Area
read starting at the specified sector on the target track for the specified number
of sectors. For a read long operation, the data and ECC bytes will be read into
the Diagnostic Read Buffer. For a System Area read, the data will be read into
the Diagnostic Read Buffer.
Input Parameters:
If this parameter is not entered, a System Area Read operation will be performed.
Type: Unsigned 16-bit value
Default: none
1 - Read Long Transfer Length / System Area Read Starting Logical Sector Address.
If Parameter 0 is not entered, then this parameter contains the address of the
first logical sector to be read on the System Area target track.
Range: 0 to 0xFFFFFFFF
Range: 0 to 0xFFFFFFFF
Default: If the System Area Logical Sector Address was entered and the Transfer
Length was not entered, then only the specified sector will be read.
If both the System Area Logical Sector Address and Transfer Length are
not entered, then the Transfer Length will be set based on the Test
Space that is selected. If the Random Transfer Length option is
selected, a random value will be used that is less than or equal to
the number of sectors remaining on the track. If the Random Transfer
Length option is not selected, the number of sectors remaining on the
track will be read.
If Parameter 0 is entered and any value is entered for this parameter, then
Parameter 0 specifies a physical sector address. If Parameter 0 is entered
and this parameter is not entered, then Parameter 0 specifies a User Area
logical sector address.
Range: 0 to 0xFFFF
Default: None
If this bit is set ECC Correction will be enabled for the read
long operation, else ECC Correction will be disabled.
Range: 0 to 0xFFFF
If this bit is set, all of the System Area Sectors in the Test
Space will be read, else only the System Area Sectors specified
by Parameters 1 and 2 will be read.
Bit 3: not used.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the read operation will
continue and attempt to read all of the requested sectors. Each
error encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
"Elapsed Time a mins b secs" or
"Elapsed Time b.c secs" or
"Elapsed Time c.d msecs"
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To read a single logical system sector
(in this case logical sector 23 on logical system cylinder 45 head 1)
F3 2>A0
F3 2>S45,1,,,,1
F3 2>r,23
Example #2:
To read multiple logical system sectors
(in this case logical sectors 23 to 26 on logical system cylinder 45 head 1)
F3 2>A0
F3 2>S45,1,,,,1
F3 2>r,23,4
Example #3:
To read all of the logical system sectors on a track
(in this case all logical sectors on logical system cylinder 45 head 1)
F3 2>A0
F3 2>S45,1,,,,1
F3 2>r
Example #4:
To read all of the logical system sectors on multiple tracks
(in this case all logical sectors on logical system cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be read.
F3 2>A3
F3 2>S44,0,,,,1
F3 2>L,5
F3 2>r
Example #5:
To read all of the logical system sectors on a track and continue on error
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0,,,,1
F3 2>r,,,,,1
Example #6:
To read all of the logical system sectors in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 2>r,,,,,11
Example #7:
To read long a single logical sector
(in this case logical sector 32 on logical cylinder 54 head 0)
F3 2>A0
F3 2>S54,0
F3 2>r32
Example #8:
To read long multiple logical sectors
(in this case logical sectors 32 to 33 on logical cylinder 54 head 0)
F3 2>A0
F3 2>S54,0
F3 2>r32,2
Example #9:
To read long a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>r32,,,1
Example #10:
To read long multiple physical sectors
(in this case physical sectors 32 to 33 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>r32,2,,1
Example #11:
To read a single logical system sector to a specific sector offset in the diagnostic
read buffer
(in this case logical sector 23 on logical system cylinder 45 head 1,
to the sector offset of 5 in the diagnostic read buffer)
F3 2>A0
F3 2>AF,5
F3 2>S45,1,,,,1
F3 2>r,23
Example #12:
To rotate the buffer sector offset by 1 and read a single logical system sector to the
rotated sector offset in the diagnostic read buffer
(This example assumes user ran the Example #11 above right before this example,
in this case logical sector 24 on logical system cylinder 45 head 1,
to the sector offset of 6 in the diagnostic read buffer)
F3 2>r,24,,,,4
Revision History:
Availability:
Level 2 , 's'
Level 3 , 's'
Level F , 's'
Quick Help:
Seek to Physical Cylinder and Head, s[Cyl],[Hd],[ValidKey],[Offset],[OffsetUnitsOpt],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified physical cylinder and logical
head address. If no address is specified, this command will seek to the next physical
track in the Test Space.
Input Parameters:
If entered, this parameter is the address of the physical cylinder to which the
seek is to be performed. If both Parameter 0 and 1 are not entered, a seek will
be performed to the next physical track in the Test Space.
Range: 0 to 0xFFFFFFFF
Default: None
If entered, this parameter is the address of the logical head to which the seek
is to be performed. If both Parameter 0 and 1 are not entered, a seek will be
performed to the next physical track in the Test Space.
Range: 0 to 0xFF
Default: None
Range: 0x22
Default: None
Default: 0
4 - Track Follow Offset Units option.
This parameter specifies the units of the Track Follow Offset value. If this
parameter is equal to 0, the specified offset will be in units of 1/256th of the
servo track width. If this parameter is equal to 1, the specified offset will
be in units of 0.1% of the data track width.
Range: 0 or 1
5 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write or
write header track follow position.
Range: 0 to 0xFF
6 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
If a seek mode was specified, the Elapsed Time for the seek operation will be displayed.
The data displayed will be formatted as shown above, under Bit 6 of verbose mode.
Some commands use an output control bit flag (specified in the input parameters above).
If "Output Control Flag- Data Track Width" is set, the following information will be displayed:
where
wwww is the width of a data track in hex and in units of servo position. Q14 scaling,
so 0x4000 is the width of a data track at nominal TPI (before VTPI and warping).
Revision History:
Translate Wedge
Availability:
Level 2 , 't'
Quick Help:
Translate Wedge, t[Wdg],[NumWdgs]
Description:
This command translates the specified Physical Wedge address on the current track to
the following:
Input Parameters:
Default: 0
1 - Wedge Count.
This value will specify the number of consecutive Wedges to be translated. (Note:
The value entered will be limited to the Wedges remaining on the track.)
Type: Unsigned 32-bit value
Range: 0 to 0xffffffff
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI "
"cccccccc dddddddd eeee ffff gggg hhhhhhhh"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
eeee is the Logical Sector address where Logical Sectors do not
include defective sectors that have been slipped or unused
spares.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Availability:
Level 2 , 'u'
Quick Help:
Enable/Disable Channel/Preamp Register Display, u[EnableDisableOpt]
Description:
This command enables or disables the display of channel registers during retries.
Input Parameters:
This parameter will enable or disable the display of channel registers during
retries. If this parameter is set to 1, then channel registers will be displayed
during retries. If this parameter is not entered or set to 0, then channel
registers will not be displayed during retries.
Range: 0 to 1
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the status of Channel and Preamp register tracing will be displayed
as follows.
where
NOTE: If the R/W firmware does NOT support Channel or Preamp Tracing, then the message
will ALWAYS indicate that the feature is "disabled".
Revision History:
Availability:
Level 2 , 'v'
Quick Help:
Convert Data Track Percentage To Servo Offset Count, v[Percentage]
Description:
This command converts the specified data track percentage to a servo offset count for
the current target track.
Input Parameters:
This parameter specifies the data track percentage for which the servo offset
count is to be displayed. It is in units of 0.1% of the data track width. If
this parameter is not entered, the offset count between track centers will be
displayed. For drives that implement V2BAR, this number will vary with radial
position.
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the Servo Offset Count Data will be displayed as follows.
"Phy Cyl cccccccc Log Hd d Data Track Percentage eeee Servo Offset Count ffff Data Track Width wwww"
where
ffff is the servo offset count that will move the head offtrack by the specified
percentage on the specified track.
wwww is the width of a data track, in units of servo position. Q14 scaling, so
0x4000 is the width of a data track at nominal TPI (before VTPI and warping)
Revision History:
Availability:
Level 2 , 'w'
Quick Help:
Write Long CHS or Write System CHS, w[LongSec],[LongSecsOrSysSec],[SysSecs],[LongPhySecOpt],,[SysOpts]
Description:
This command performs either a write long of the specified sectors or a System Area
write starting at the specified sector on the target track for the specified number
of sectors. For a write long operation, the data and ECC bytes will be written from
the Diagnostic Read Buffer. For a System Area write, the data will be written from
the Diagnostic Write Buffer.
Input Parameters:
If this parameter is not entered, a System Area Write operation will be performed.
Default: none
1 - Write Long Transfer Length / System Area Write Starting Logical Sector Address.
If Parameter 0 is not entered, then this parameter contains the address of the
first logical sector to be write on the System Area target track.
Range: 0 to 0xFFFFFFFF
Range: 0 to 0xFFFFFFFF
Default: If the System Area Logical Sector Address was entered and the Transfer
Length was not entered, then only the specified sector will be written.
If both the System Area Logical Sector Address and Transfer Length are
not entered, then the Transfer Length will be set based on the Test
Space that is selected. If the Random Transfer Length option is
selected, a random value will be used that is less than or equal to
the number of sectors remaining on the track. If the Random Transfer
Length option is not selected, the number of sectors remaining on the
track will be written.
If Parameter 0 is entered and any value is entered for this parameter, then
Parameter 0 specifies a physical sector address. If Parameter 0 is entered
and this parameter is not entered, then Parameter 0 specifies a User Area
logical sector address.
Range: 0 to 0xFFFF
Default: None
4 - not used.
Type: None
Range: None
Default: None
If this bit is set, all of the System Area Sectors in the Test
Space will be written, else only the System Area Sectors specified
by Parameters 1 and 2 will be written.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the write operation will
continue and attempt to write all of the requested sectors. Each
error encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To write a single logical system sector
(in this case logical sector 23 on logical system cylinder 45 head 1)
F3 2>A0
F3 2>S45,1,,,,1
F3 2>w,23
Example #2:
To write multiple logical system sectors
(in this case logical sectors 23 to 26 on logical system cylinder 45 head 1)
F3 2>A0
F3 2>S45,1,,,,1
F3 2>w,23,4
Example #3:
To write all of the logical system sectors on a track
(in this case all logical sectors on logical system cylinder 45 head 1)
F3 2>A0
F3 2>S45,1,,,,1
F3 2>w
Example #4:
To write all of the logical system sectors on multiple tracks
(in this case all logical sectors on logical system cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be written.
F3 2>A3
F3 2>S44,0,,,,1
F3 2>L,5
F3 2>w
Example #5:
To write all of the logical system sectors on a track and continue on error
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0,,,,1
F3 2>w,,,,,1
Example #6:
To write all of the logical system sectors in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 2>w,,,,,11
Example #7:
To write long a single logical sector
(in this case logical sector 32 on logical cylinder 54 head 0)
F3 2>A0
F3 2>S54,0
F3 2>w32
Example #8:
To write long multiple logical sectors
(in this case logical sectors 32 to 33 on logical cylinder 54 head 0)
F3 2>A0
F3 2>S54,0
F3 2>w32,2
Example #9:
To write long a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>w32,,,1
Example #10:
To write long multiple physical sectors
(in this case physical sectors 32 to 33 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>w32,2,,1
Example #11:
To write a single logical system sector with data at a specific sector offset in the
diagnostic write buffer
(in this case logical sector 23 on logical system cylinder 45 head 1,
with data at the sector offset of 5 in the diagnostic write buffer)
F3 2>A0
F3 2>AF,5
F3 2>S45,1,,,,1
F3 2>w,23
Example #12:
To rotate the buffer sector offset by 1 and write a single logical system sector with
data at the rotated sector offset in the diagnostic write buffer
(This example assumes user ran the Example #11 above right before this example,
in this case logical sector 24 on logical system cylinder 45 head 1,
with data at the sector offset of 6 in the diagnostic write buffer)
F3 2>w,24,,,,4
Revision History:
Availability:
Level 2 , 'x'
Level 7 , 'x'
Quick Help:
Display Zone Information, x[Partition],[Hd],[Zone],[Options]
Description:
This command displays information about the media partitions (System and User) and
data zones.
Input Parameters:
0 - Partition.
This parameter specifies the partition for which the zone information is to
be displayed.
Range: 0 or 0xFF
Default: If this parameter is not entered, the information will be displayed for
the User and System Partition.
1 - Head.
This parameter specifies the head for which the zone information is to be displayed.
Range: 0 to 0xff
Default: If this parameter is not entered, the zone information will be displayed
for all heads.
2 - Zone.
This parameter specifies the zone for which the zone information is to be displayed.
Range: 0 to 0xff
Default: If this parameter is not entered, the zone information will be displayed
for all zones.
3 - Options.
This parameter is a bit significant value that selects the following options:
Range: 0 to 0xffffffff
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and the Display Zone Tables option (Parameter 3 bit 1) or the
Display Zone Tables with Wedge Operation NRZ Symbols option (Parameter 3 bit 0) was
selected, the following information will be displayed.
"User Partition"
" LBAs CCCCCCCC-DDDDDDDD"
" PBAs EEEEEEEE-FFFFFFFF"
" HdSkew GGGG CylSkew HHHH"
" ZonesPerHd II"
"System Partition"
" LBAs cccccccc-dddddddd"
" PBAs eeeeeeee-ffffffff"
" HdSkew gggg CylSkew hhhh"
" ZonesPerHd ii"
where
CCCCCCCC is the first Logical Block Address (LBA) of the User Partition.
DDDDDDDD is the last Logical Block Address (LBA) of the User Partition.
EEEEEEEE is the first Physical Block Address (PBA) of the User Partition.
FFFFFFFF is the last Physical Block Address (PBA) of the User Partition.
GGGG is the Head Skew in data wedges for the User Partition.
HHHH is the Cylinder Skew in data wedges for the User Partition.
J is the Logical Head Address of the User Partition zone information to follow.
UUUU is the number of physical sectors per track in the User Partition data
zone.
VVVV is the size of a data wedge in NRZ Symbols for the User Partition data zone.
WWWWWWWW is the size of a track in NRZ Symbols for the User Partition data zone.
cccccccc is the first Logical Block Address (LBA) of the System Partition.
dddddddd is the last Logical Block Address (LBA) of the System Partition.
eeeeeeee is the first Physical Block Address (PBA) of the System Partition.
ffffffff is the last Physical Block Address (PBA) of the System Partition.
gggg is the Head Skew in data wedges for the System Partition.
hhhh is the Cylinder Skew in data wedges for the System Partition.
j is the Logical Head Address of the System Partition zone information to follow.
uuuu is the number of physical sectors per track in the System Partition data
zone.
vvvv is the size of a data wedge in NRZ Symbols for the System Partition data zone.
wwwwwwww is the size of a track in NRZ Symbols for the System Partition data zone.
If the Display Zone Tables with Wedge Operation NRZ Symbols option (Parameter 3 bit 0)
was selected, the following additional information will be displayed for each User and
System partition zone.
where
YYYY is the number of NRZ Symbols for an Unformatted Direct Wedge Write operation
in the zone.
ZZZZ is the number of NRZ Symbols for an Unformatted Direct Wedge Read operation
in the zone.
%%%% is the number of NRZ Symbols for an Formatted Direct Wedge Write operation
in the zone.
$$$$ is the number of NRZ Symbols for an Formatted Direct Wedge Read operation
in the zone.
Note: The terms zone group and minizone are used in the description of the command
output. The following is an attempt to define these terms.
A zone group is a collection of zones, one from each head. The zone group boundary
is defined to be at a point where one or more heads encounters a frequency switchpoint
(zone boundary). Therefore, by definition, all minizones in a zone group have the
same capacity in PBAs.
The term minizone and serpent are used interchangeably in the code. "Serpent"
originates from our serpentine format. If you view the direction of increasing PBAs,
it looks like a snake or a "serpent". A minizone is equivalent, and is the
fundamental building block of a zone group. Stated another way, a zone group is
created from a collection of minizones.
If no error occurred and the Display R/W Zone Group Information option (Parameter 3
bit 2) was selected, the following information will be displayed.
"NumPBAs: jjjjjjjj"
"NumLBAs: kkkkkkkk"
where
CCCC is the Dependent User Partition zone group number. The information that
follows on the line is for this zone group. The display will contain a
line for each zone group in the User Partition.
DDDDDDDD is the first PBA in the User Partition zone group. In the PBA-to-CHS
translation, the first step is to determine which zone group contains
the target PBA, so this is the key field that is searched when finding
the greatest less than or equal Dependent User Partition Zone Group Table
entry.
EEEEEEEE is the cumulative slip that corresponds to the first LBA in the User
Partition zone group. It is used to determine the first LBA in the zone
group (PBA = LBA + CSlip) when it is requested.
FFFFFFFF is not part of the Dependent User Partition Zone Group Table but is
reported here for convenience as we typically want to associate an
LBA with a zone group. The StLba is simply the StPba minus the CSlip.
GGGGGGGG is the accumulation of sectors per track times tracks per minizone for
all heads on the drive in the User Partition zone group. Inorder to
calculate the target minizone for a target PBA, we first subtract the
Zone Group Start PBA from the target PBA and then divide by SecPerMZ.
Note that each minizone in the zone group has the exact same capacity
as the zone group boundary is defined to occur when one or more heads
changes zones (frequencies). This results in a different track capacity
(sectors per track) and therefore a unique number of PBAs per minizone.
HHHHHHHH is the first minizone index in the User Partition zone group. Once we
find the zone group that contains the target PBA, we need to try to
associate that PBA with a position (CHS). Finding the target minizone
is the first step in that process.
IIII to KKKK
is an array of User Partition target zones on a per-head basis. When we
translate to an LBA in a particular zone group and that LBA exists on
a particular head, we reference the target head's offset in this array
to determine the channel zone for the target head. This essentially tells
us which set of channel and preamp parameters to assert when configuring
the hardware for the target LBA. Note that as you look down the column
for each head, the index will range from zero to number of zones per head.
LLLLLL to NNNNNN
is an array of User Partition zone group starting R/W logical track
numbers on a per-head basis. It is valid for both Variable TPI by Head
Zone configurations and Non-Variable TPI by Head Zone configurations.
For the Non-Variable TPI by Head Zone configuration, this field is not
part of the R/W Dependent User Zone Group Table structure, but is given
here for consistency and convenience. In this case, the value is simply
the product of the StartMZ for the zone group and the TPI scaling factor
(logical tracks per minizone) for the head. For the Variable TPI by Head
Zone configuration, this value is the accumulation of all logical tracks
in previous zone groups for the target head. In this configuration it is
part of the R/W Dependent User Zone Group Table for calculation efficiency
and convenience. When performing an LBA-to-CHS translation, the target
track starts with this track number, plus the tracks per minizone for this
zone times the minzone offset, plus the track offset into the target
minizone.
cccc is the System Partition zone group number. The information that follows
on the line is for this zone group. The display will contain a line for
each zone group in the System Partition.
ffffffff is the cumulative slip that corresponds to the first LBA in the System
Partition zone group.
gggggggg is the number of spare sectors in the System Partition zone group.
If no error occurred and the Display R/W Zone Information option (Parameter 3 bit 3)
was selected, the following information will be displayed.
where
DDDDDDDD is the number of sectors (PBAs) per track in the User Partition zone.
The track capacity (SPT) is determined based on zone frequency and
format budget overhead.
EEEEEEEE is the number of symbols (RClk) periods that are available in the wedge.
This parameter is primarily used for supersector operations and is the
"direct mode" value. For "normal" mode, this value should be muliplied
by the inverse of the channel coderate (60/61) to determine the number
of "gapped" symbols are available in the wedge. The number of symbols in
the wedge is typically the zone frequency applied to the SGATE-to-SGATE
time, minus the number of symbols that correspond to the SGATE time, minus
the sum of gaps (format budget gap after SGATE plus the gap before SGATE).
Revision History:
Availability:
Level 2 , 'y'
Level 7 , 'y'
Level A , 'y'
Level F , 'y'
Quick Help:
Set DERP Retry State, y[Type],[PathState],[RetryStateCnt],[LoopCnt1],[LoopCnt2]
Description:
This command allows the user to specify the DERP Retry State that will be used by the
Read/Write firmware subsystem's Error Recovery system during subsequent diagnostic
commands that access the disc. (This command is only available on drives that support
DERP! To know whether your drive supports DERP, issue the Online "^L" command to see a
list of features supported by the drive.)
Input Parameters:
This parameter specifies the type of error that the DERP Error Recovery system will
assume for subsequent diagnostic operations. Valid values for this parameter are
given below:
0 = UNDETERMINED
1 = DATA_ERROR
2 = SYNC
3 = TA
4 = DATAORTA
5 = SYNCTA
6 = SYNCORDATA
Default: None
This parameter specifies the path count from the current retry sequence that the DERP
Error Recovery system will assume for subsequent diagnostic operations. The meaning
of the Path State is dependent on the Error Type (parameter 0).
Range: 0 to 0xFF
Default: None
This parameter specifies the retry path count from the current retry sequence that
the DERP Error Recovery system will assume for subsequent diagnostic operations.
Range: 0 to 0xFF
Default: None
This parameter specifies the first loop counter that the DERP Error Recovery system
will assume for subsequent diagnostic operations.
Range: 0 to 0xFF
Default: None
This parameter specifies the second loop counter that the DERP Error Recovery system
will assume for subsequent diagnostic operations.
Range: 0 to 0xFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
If the Selected DERP Retry State is Enabled, then the following will also be displayed.
where
Revision History:
Write Wedge
Availability:
Level 2 , 'z'
Level E , 'B'
Quick Help:
Write Wedge, z[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opt],[RegAddr0],...,[RegAddr13],[TSpacing]
Write Wedge, B[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opt],[RegAddr0],...,[RegAddr13],[TSpacing]
Description:
This command writes data to the disk starting at the specified data wedge on the
target track for the specified number of data wedges. The wedges are written with
either the data contained in the Diagnostic Write Buffer or the data generated by
Channel Pattern Generator if the channel hardware supports this feature. If register
addresses are specified, channel registers are sampled during the write.
Input Parameters:
0 - Wedge Address.
Range: 0 to 0xFFFF
Default: 0
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the Wedge Address is entered and the Transfer Length is not
entered, then only the specified wedge will be written.
If both the Wedge Address and Transfer Length are not entered,
then the Transfer Length will be set based on the Test Space
that is selected. If the Random Transfer Length option is
selected, a random value will be used that is less than or
equal to the number of wedges remaining on the track. If the
Random Transfer Length option is not selected, the number of
wedges remaining on the track will be written.
2 - Skipped Wedges.
This parameter specifies the number of wedges to skip after each wedge written.
Range: 0 to 0xFFFF
Range: 0 to 0xFFFFFFFF
4 - Options.
This parameter is a bit significant value that selects the following options:
Bit 6 - Use only the first Buffer Sector.
If this bit is set, this diagnostic command will use only the first
Buffer Sector by limiting the number of Buffer Sector to 1.
This allows the user to pre-fill only the first Buffer Sector with the
desired pattern and the diagnostic command will use the pattern for
writing all the wedges requested.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is equal to 0, NRZ symbol data on NRZ bus will be swapped.
If this bit is equal to 1, NRZ symbol data on NRZ bus won't be swapped.
Bit 1 - Reserved
Range: 0 to 0xFFFFFFFF
This parameter specifies the address of the 1st Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 2nd Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 3rd Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 4th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 5th Read Channel register
to be read for data collection.
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 6th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 7th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 8th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 9th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 10th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 11th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 12th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 13th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 14th Read Channel register
to be read for data collection.
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
Default: None
Range: 1 to 0x10
Default: None
Output Data:
If no error occurred and one or more read channel register was specified for data
collection, the following information will be displayed.
where
bbbbbbbb is the minimum value that was read from the channel register
cccccccc is the maximum value that was read from the channel register
dddddddd is the mean of the values read from the channel register
eeeeee.ee is the standard deviation of the values read from the channel register
If no error occurred, one or more read channel register was specified for data
collection and Raw ASCII output mode is selected, the following additional
information will be displayed for each wedge and channel register for which data
was collected.
where
00 = No Error
04 = Sync Error
If no error occurred, no read channel registers were specified for data collection
and the Continue On Sync Error option was selected, the following additional
information will be displayed.
where
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To write a single wedge
(in this case wedge 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>z23
Example #2:
To write multiple wedges
(in this case wedges 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>z23,4
Example #3:
To write all of the wedges on a track
(in this case all wedges on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>z
Example #4:
To write all of the wedges on multiple tracks
(in this case all wedges on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be written.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>z
Revision History:
Availability:
Level 3 , 'D'
Level 4 , 'D'
Quick Help:
Measure Seek Access Time, D[SkLength],[SkType],[NumSks]
Description:
Performs seek access time test on the current head. This diag supports two modes:
1) Logical random-length seeks, 2) Logical fixed-length seeks.
Input Parameters:
0 - Seek Length.
This parameter sets the seek length to be used during the seek access time testing.
If set to zero, then the seeks performed will be of random lengths. If the value
entered exceeds the drive's max track, then the seek length will be set to the max
track.
1 - Seek Type.
This parameter sets the type of seek to be performed during the seek access time
testing. The following are the valid seek types that this command accepts:
Range: 0 to 2
2 - Number of Seeks.
This parameter specifies the number of seeks to perform during the seek access time
testing.
Range: 1 to 99,999
Default: 1000
Output Data:
If no error occurred and the Seek Access Time data was returned, the following message
will be displayed.
Examples:
Revision History:
Quick Help:
Display / Edit Log, E[LogNum],[ErrCodeOrSpecialFuncKey],[SpecialFunc]
Description:
This command displays or modifies the specified Log File.
Input Parameters:
0 - Log Number.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Range: 0 to 0xFFFF
If Parameter 2 is equal to 8, 20 hex, 100 hex, 200 hex or 400 hex, this parameter
must be equal to AA hex to enable the special error log operation specified by
Parameter 2. If Parameter 2 is not equal to 8, 20 hex, 100 hex, 200 hex or 400 hex,
only log entries with the Error Code specified by this parameter will be displayed.
Range: 0 to 0xFFFF
Default: None
If Parameter 2 is equal to 8, the ASCII log will be cleared and ASCII data
entered from the serial port will be stored in the ASCII log. When a
carriage return is entered, the ASCII log will be stored to the log number
specified by Parameter 0.
If Parameter 2 is equal to 10 hex, ASCII data entered from the serial port
will be appended to the end of the ASCII log. Entering a carriage return
terminates the ASCII data to be appended.
Default: None
Output Data:
"DiagError aaaaaaaa"
where
where
kkkkkkkk is the number of symbols from index at which the error occurred
tttttttt is an ASCII String that indicates the partition ( "System" or " User" )
in which the error occurred
If no error occurred and the contents of an ASCII Log are selected to be displayed,
where
TBD
If no error occurred and the number of unused log bytes is being displayed,
where
"Log e Starting System Area LBA = ffffffff" (for a Disc Log or)
"Log e Starting Buffer Addr = gggggggg" (for a Buffer Log)
where
Examples:
Example #1:
To create a new user-defined error log as log 10 with 64KB of memory, display
information about it, enable it as the active error log, and display the actual
contents of the log:
Revision History:
Availability:
Level 2 , 'H'
Level 3 , 'H'
Level 4 , 'H'
Level 7 , 'H'
Quick Help:
Select Logical Head, H[Hd],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified logical head address. If no
address is specified, this command will seek to the next logical head in the Test Space.
Input Parameters:
Range: 0 to 0xFF
Default: None
1 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write
or write header track follow position.
Range: 0 to 0xFF
2 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
"Hd h"
where
h is selected head
Revision History:
Availability:
Level 2 , 'O'
Level 3 , 'O'
Quick Help:
Seek Repeatedly Between Physical Cylinders, O[StartPhyCyl0],[StartPhyCyl1],[NumSkPairs],[NumSeconds],[Hd]
Description:
The Seek From Cyl To Cyl commmand seeks repeatedly from the cylinder in parameter 0 to
the cylinder in parameter 1 for the specified number of 2-seek cycles or the specified
duration.
The Butterfly Seek Test commmand performs the following seeks on the specified head:
Input Parameters:
Range: 0 to 0xFFFFFFFF
Range: 0 to 0xFFFFFFFF
Range: 0 to 0xFFFFFFFF
Default: 5 ( Seconds )
Range: 0 to 0xFFFF
Range: 0 to 0xFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level 3 , 'Q'
Quick Help:
Write, Read, Write, Read CHS, Q[Sec],[NumSecs],[Opts]
Description:
This command performs a write, read, write, read operation starting at the specified
sector on the target track for the specified number of sectors. The sectors are
written with the data contained in the Diagnostic Write Buffer and they are read into
the Diagnostic Read Buffer.
Input Parameters:
If Parameter 2 bit 5 is set, this parameter contains the physical sector address
of the first sector to write and read else this parameter contains the User Area
logical sector address of the first sector to write and read.
Default: 0
1 - Transfer Length.
This parameter specifies the number of consecutive sectors to write and read.
Range: 0 to 0xFFFFFFFF
Default: If the Sector Address was entered and the Transfer Length was not entered,
then only the specified sector will be written and read.
If both the Sector Address and Transfer Length are not entered, then the
Transfer Length will be set based on the Test Space that is selected.
If the Random Transfer Length option is selected, a random value will be
used that is less than or equal to the number of sectors remaining on the
track. If the Random Transfer Length option is not selected, the number
of sectors remaining on the track will be written and read.
2 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the sectors in the Test Space will be
written and read, else only the sectors specified by Parameters 0
and 1 will be written and read.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set, sectors containing media defects that meet the
failure criteria will be spared.
If this bit is set and an error occurs, the write and read operations
will continue and attempt to write and read all of the requested
sectors. Each error encountered will be displayed.
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To write, read, write, read a single logical sector
(in this case logical sector 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>/3
F3 3>Q23
Example #2:
To write, read, write, read multiple logical sectors
(in this case logical sectors 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>/3
F3 3>Q23,4
Example #3:
To write, read, write, read all of the logical sectors on a track
(in this case all logical sectors on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>/3
F3 3>Q
Example #4:
To write, read, write, read all of the logical sectors on multiple tracks
(in this case all logical sectors on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be written and read.
F3 2>A3
F3 2>S44,0
F3 2>/3
F3 3>L,5
F3 3>Q
Example #5:
To write, read, write, read all of the logical sectors on a track and continue
on error (in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0
F3 2>/3
F3 3>Q,,,,1
Example #6:
To write, read, write, read all of the logical sectors in the test space and
continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 3>Q,,,,11
Example #7:
To write, read, write, read a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>/3
F3 3>Q32,,,1
Example #8:
To write, read, write, read multiple physical sectors
(in this case physical sectors 32 to 35 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>/3
F3 3>Q32,4,,1
Example #9:
To write, read, write, read all of the physical sectors on a track
(in this case all physical sectors on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>/3
F3 3>Q,,,1
Example #10:
To write a single logical sector with data at a specific sector offset in the
diagnostic write buffer, read it to the specific sector offset in the diagnostic read
buffer, then repeat the write and read one more time.
(in this case logical sector 23 on logical cylinder 45 head 1,
write with data at the sector offset of 5 in the diagnostic write buffer,
read to the sector offset of 5 in the diagnostic read buffer,
write with data at the sector offset of 5 in the diagnostic write buffer,
read to the sector offset of 5 in the diagnostic read buffer)
F3 2>A0
F3 2>AF,5
F3 2>S45,1
F3 2>/3
F3 3>Q23
Example #11:
To rotate the buffer sector offset by 1 and write a single logical sector with data at
the rotated sector offset in the diagnostic write buffer, read it to the rotated
sector offset in the diagnostic read buffer, then repeat the write and read one more
time
(This example assumes user ran the Example #10 above right before this example,
in this case logical sector 24 on logical cylinder 45 head 1,
write with data at the sector offset of 6 in the diagnostic write buffer,
read to the sector offset of 6 in the diagnostic read buffer,
write with data at the sector offset of 6 in the diagnostic write buffer,
read to the sector offset of 6 in the diagnostic read buffer)
F3 3>Q24,,4
Revision History:
Availability:
Level 3 , 'R'
Level 8 , 'R'
Quick Help:
Read Current Servo Destination, R
Description:
This command will display the Current Servo Destination information. The firmware
components that make up the current position will also be displayed. These include:
Destination Track Id, Destination Position, Mr Jog Value, and Offset Value MrJog.
Input Parameters:
None.
Output Data:
"DiagError aaaaaaaa"
where
where
AAAAAAAA is a Q0 number (whole integer) that represents the servo track number.
BBBBBBBB is a Q12 number (12 bits of fractional position) that represents the
offset from DestinationTrackID. This offset includes the read-to-write
offset (aka microjog, reader/writer offset, MR jog, etc.) and any commanded
diagnostic offsets from all sources. It can also span many tracks (there
are 20 bits of whole track information).
EEEEE.EEE is the actual target track with fractional position information that servo
uses for its reference.
Revision History:
Availability:
Level 2 , 'S'
Level 3 , 'S'
Level 4 , 'S'
Level 7 , 'S'
Level 8 , 'S'
Level H , 'S'
Quick Help:
Seek to Logical Cylinder and Head, S[Cyl],[Hd],[Offset],[OffsetUnitsOpt],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified User or System Area logical
cylinder and logical head address. If no address is specified, this command will
seek to the next logical track in the Test Space.
Input Parameters:
If Parameter 4 is not entered, this parameter is the address of the User Area
logical cylinder to which the seek is to be performed. If Parameter 4 is
entered, this parameter is the address of the System Area logical cylinder to
which the seek is to be performed. If both Parameter 0 and 1 are not entered,
a seek will be performed to the next logical track in the Test Space.
Range: 0 to 0xFFFFFFFF
Default: None
If entered, this parameter contains the address of the logical head to which the
seek is to be performed. If both Parameter 0 and 1 are not entered, a seek will
be performed to the next logical track in the Test Space.
Range: 0 to 0xFF
Default: None
Default: 0
This parameter specifies the units of the Track Follow Offset value. If this
parameter is equal to 0, the specified offset will be in units of 1/256th of the
servo track width. If this parameter is equal to 1, the specified offset will
be in units of 0.1% of the data track width.
Range: 0 or 1
4 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write
or write header track follow position.
Range: 0 to 0xFF
5 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, the width of the destination track will be displayed
in Q14 servo counts.
If this bit is set, the channel parameters will not be reloaded into the
channel registers with the seek, else the channel parameters will be
reloaded into the channel registers.
Bit 0: System Area Flag.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Regardless of verbose mode status, the following output may occur:
If a seek mode was specified, the Elapsed Time for the seek operation will be displayed.
The data displayed will be formatted as shown above, under Bit 6 of verbose mode.
Some commands use an output control bit flag (specified in the input parameters above).
If "Output Control Flag- Data Track Width" is set, the following information will be displayed:
where
wwww is the width of a data track in hex and in units of servo position. Q14 scaling,
so 0x4000 is the width of a data track at nominal TPI (before VTPI and warping).
Examples:
Example #1:
To seek to a logical cylinder and head at the read track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1
Example #2:
To seek to a logical cylinder and head at the write track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,1
Example #3:
To seek to a logical cylinder and head at the write header track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,2
Example #4:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in servo counts
(in this case logical cylinder 45 head 1 at an offset of plus 100/256ths of
the servo track width)
F3 2>S45,1,64
Example #5:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in percent of data track width
(in this case logical cylinder 45 head 1 at an offset of -10% of the data track
width)
F3 2>S45,1,FFF6,1
Example #6:
To seek to a logical cylinder and head at the read track follow position and
display the data track width in Q14 servo counts
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,4
Example #7:
To seek to a logical cylinder and head at the read track follow position and
disable reloading of the channel parameters by the seek
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,2
Example #8:
To seek to a system logical cylinder and head at the read track follow position
(in this case logical system cylinder 54 head 0)
F3 2>S54,0,,,,1
Revision History:
Spin Up Drive
Availability:
Level 2 , 'U'
Level 3 , 'U'
Level 8 , 'U'
Level F , 'U'
Quick Help:
Spin Up Drive, U[HoldState],[Hd],[Cyl]
Description:
The command spins up the drive. Optionally, the spin up operation can be paused
in several intermediate states.
Input Parameters:
This parameter specifies the state in which the Spin Up operation is to be held.
0 = Spin up and attempt to track follow on the default cylinder and head.
2 = Release the Spin Hold State. If this option is selected the drive will
spin up to completion and attempt to track follow on the specified cylinder
and head.
4 = Spin up, unlatch the actuator and hold prior to attempting to synchronize
the demodulator to the data on the disk.
5 = Spin up, unlatch the actuator, synchronize the demodulator to the data on
the disk and hold prior to attempting to track follow.
Range: 0 to 0xFF
Default: 0
If the Spin Hold States are being used (Parameter 0 not equal to 0), this
parameter specifies the address of the logical head on which the spin up
operation will attempt to synchronize the demodulator and / or track follow.
If the Spin Hold States are not being used (Parameter 0 not entered or equal
to 0), this parameter specifies the address of the logical head to which a
seek will be performed after the drive is spun up.
Range: 0 to 0xFF
If the Spin Hold States are being used (Parameter 0 not equal to 0), this
parameter specifies the address of the physical cylinder on which the spin
up operation will attempt to track follow. If the Spin Hold States are not
being used (Parameter 0 not entered or equal to 0), this parameter specifies
the address of the physical cylinder to which a seek will be performed after
the drive is spun up.
Range: 0 to 0xFFFFFFFF
Output Data:
"DiagError aaaaaaaa"
where
In addition, one of the following strings will be output to indicate the current Spin
State.
The elapsed time for the spin operation will be displayed as follows.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
If a spin error occurred, the following additional information will be displayed.
where
If a spin error occurred and the Verbose Formatted ASCII Data Output Mode is selected,
the Verbose Mode option bits will enable the following data to be output when set.
Bit 0-6: NA
Bit 7: Enable the Servo Event Log to be displayed
Bits 31-8: NA
If Bit 7 is set, the contents of the Servo Event Log will be displayed as follows.
where
Revision History:
Availability:
Level 3 , 'V'
Quick Help:
Read or Write Power ASIC Register, V[RegAddr],[RegValue],[WrOpt]
Description:
This command reads or writes the specified Power ASIC registers.
Input Parameters:
0 - Register Address.
This parameter specifies the address of the Power ASIC register to be read
or written. If this parameter is not entered, all Power ASIC registers will
be read and displayed.
Range: 0 to 0xFF
If entered, this parameter specifies the value with which the Power ASIC register
is to be written. If this value is not entered, the specified Power ASIC register
will be read and its value displayed.
Range: 0 to 0xFFFFFFFF
Default: None
For register writes, this parameter must be equal to 1. This parameter is not
used for register reads.
Range: 0 to 0xFF
Default: None
Output Data:
If a single Power ASIC register was read, the following information will be displayed.
where
If multiple Power ASIC registers were read, the following information will be displayed.
"Power ASIC"
" 0 1 2 3 4 5 6 7 8 9 A B C D E F"
"cc: dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd"
where
If a Power ASIC register was written, the following information will be displayed.
where
Revision History:
Availability:
Level 2 , 'Z'
Level 3 , 'Z'
Level 7 , 'Z'
Level 8 , 'Z'
Level F , 'Z'
Quick Help:
Spin Down Drive, Z
Description:
This command spins the drive down.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
In addition, one of the following strings will be output to indicate the current Spin
State.
The elapsed time for the spin operation will be displayed as follows.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
where
If a spin error occurred and the Verbose Formatted ASCII Data Output Mode is selected,
the Verbose Mode option bits will enable the following data to be output when set.
Bit 0-6: NA
Bit 7: Enable the Servo Event Log to be displayed
Bits 31-8: NA
If Bit 7 is set, the contents of the Servo Event Log will be displayed as follows.
where
Revision History:
LoadUnloadHeads
Availability:
Level 3 , 'b'
Quick Help:
LoadUnloadHeads, b[Cmd],[Velocity],[Dwell],[Lock]
Description:
The command loads or unloads the heads for drives that support this feature.
Input Parameters:
0x00: LOAD_HEADS_CMD - Indicates that a Load Heads servo command will be issued.
0x01: UNLOAD_HEADS_CMD - Indicates that an Unload Heads servo command will be issued.
Default: 0
For a 'Load Heads' command, this parameter specifies the load velocity.
For a 'Unload Heads' command, this parameter specifies the unload velocity.
If a non-zero value is entered, then the velocity will be modified for the
load/unload command. After completion of the command, the original value will
then be restored.
Default: 0
2 - Enable Demod Sync.
This parameter will enable or disable Demod Sync during the Load command.
Range: 0 or 1
Default: 0
3 - Enable Dwell.
This parameter will enable or disable Dwell during the Load command.
Range: 0 or 1
Default: 0
4 - Unload Type.
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and Verbose Output Mode is selected, Load/Unload Heads results will
be displayed as follows.
where
AAAA is the servo command: 0F00 for a Load operation or 0E00 for a Unload operation.
bbb.bbb is the time in miliseconds for the execution of the servo command.
cc is the Velocity as read from servo, which will be used as the default value.
For a Load operation, the value of the load heads target velocity will be displayed.
For an Unload operation, the value of unload heads target velocity will be displayed.
e is the Enable Demod Sync value as entered via the command line.
Examples:
Example #1:
To load the heads with a velocity of -85.
F3 3>b0,-85
Example #2:
To unload the heads with a velocity of 317.
F3 3>b1,317
Revision History:
Availability:
Level 3 , 'f'
Quick Help:
Real Time Servo Trace, f[SubCmd],[SubPrm0],[SubPrm1],[SubPrm2]
Description:
The Real Time Servo Trace command executes the specified Real Time Servo Data Collection
function which collects specified data at every servo burst and then sends out the result
in binary or ASCII data format.
3>f0 collects PES (16-bits) data at the current track for the speficied revs (or until
the maximum data allowed).
3>f2 (read seek profile) and 3>f102 (write seek profile) seek for the specified length,
read/write one sector at the target track, and collect 3 data elements in the following
order: 16 bit Servo Loop Code, 16 bit (in binary mode) or 32 bit (in ASCII mode) PES,
and 16 bit Servo Unsafe status. The collection is from the beginning of the seek until
specified extra revs after the head is settled. (Note: In binary format, 2 extra 0FFFFh
are added at the end of data collected).
3>f3 writes the full track at the current location and collects 4 words in the following
order: Servo Loop Code, PES (16-bits), Servo Burst Number, and Servo Unsafe Code for
the whole writing process. (Note: 2 extra 0FFFFh are added at the end of data collected).
Input Parameters:
0 - Sub-command ID.
The low byte of this parameter specifies the ID of the Real Time Servo Trace command
to be executed and the high byte is used to determine operation type that will be
performed before collecting servo data.
0 = PES Collection
Range: 0 to 0xFFFF
Default: 0
1 - Revs to Collect.
This parameter specifies the revs to collect the PES data. If this parameter is
not entered, the default value is 100 revs.
Range: 0 to 0xffff
Default: 100
1 - Seek Length
This parameter specifies the seek length for the seek operation.
Default: 0
This parameter specifies the number of extra revs to be collected after the head
is settled. When this parameter is not entered, 3 extra revs of data will be
collected after the head is settled.
Default: 3
3 - Output Format
Range: 0 to 0xffffffff
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and seek profile ASCII data output is requested, the following data will be displayed.
where
aaaa is the Servo Loop Code. Click here for documentation on servo loop
codes. Common values are:
00 - track following
43 - seek arrival
47 - seek in progress
cccc is the signed decimal 32-bit Demod Position Error. The low 12 bits are track PES,
the upper 20 bits are track offset. Divide the value shown by 4096 to get track offset.
Mask the value shown with 0xFFF to get traditional PES.
If no error occurred and seek profile ASCII data output is NOT requested, the following data
will be displayed.
"[[[[xxxxxxxx...]]]"
where
Examples:
Example #1:
To collect 20h revs of PES data:
F3 3>f0,20
Example #2:
To output ASCII seek profile data for a 20h track read seek:
F3 3>f2,20,0,1
Example #3:
To output ASCII seek profile for a 30h track write seek and see two revs of settle data also:
F3 3>f102,30,2,1
Revision History:
0001.0000 Initial revision.
0011.0000 Combined the PSG Diagnostic Error Codes (PSGDEC) and the Diagnostic External
Test Service Error Codes (DETSEC) into a single set of Diagnostic Error Codes
(DiagError).
0012.0000 Changed the output of 3>f2 command from 2 words (Servo Loop Code and PES) to
3 words (Servo Loop Code, PES, and Servo Unsafe Status).
0013.0000 Added ability to output data as ASCII instead of binary. Fixed request for '0'
revs settle data.
Availability:
Level 2 , 'h'
Level 3 , 'p'
Quick Help:
Translate Physical Sector, h[Sec],[NumSecs]
Translate Physical Sector, p[Sec],[NumSecs]
Description:
This command translates the specified Physical Sector address on the current track to
the following:
Input Parameters:
This parameter specifies the address of the Physical Sector on the current
track to be translated.
Default: 0
This value will specify the number of consecutive Physical Sectors to be translated.
(Note: The value entered will be limited to the Physical Sectors remaining on the
track.)
Range: 0 to 0xffffffff
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI "
"cccccccc dddddddd eeee ffff gggg hhhhhhhh"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Availability:
Level 2 , 'l'
Level 3 , 'q'
Quick Help:
Translate Logical Sector, l[Sec],[NumSecs]
Translate Logical Sector, q[Sec],[NumSecs]
Description:
This command translates the specified Logical Sector address on the current track to
the following:
Input Parameters:
This parameter specifies the address of the Logical Sector on the current
track to be translated.
Default: 0
This value will specify the number of consecutive Logical Sectors to be translated.
(Note: The value entered will be limited to the Logical Sectors remaining on the
track.)
Range: 0 to 0xffffffff
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI "
"cccccccc dddddddd eeee ffff gggg hhhhhhhh"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Availability:
Level 2 , 's'
Level 3 , 's'
Level F , 's'
Quick Help:
Seek to Physical Cylinder and Head, s[Cyl],[Hd],[ValidKey],[Offset],[OffsetUnitsOpt],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified physical cylinder and logical
head address. If no address is specified, this command will seek to the next physical
track in the Test Space.
Input Parameters:
If entered, this parameter is the address of the physical cylinder to which the
seek is to be performed. If both Parameter 0 and 1 are not entered, a seek will
be performed to the next physical track in the Test Space.
Type: Unsigned 32-bit value
Range: 0 to 0xFFFFFFFF
Default: None
If entered, this parameter is the address of the logical head to which the seek
is to be performed. If both Parameter 0 and 1 are not entered, a seek will be
performed to the next physical track in the Test Space.
Range: 0 to 0xFF
Default: None
Range: 0x22
Default: None
Default: 0
This parameter specifies the units of the Track Follow Offset value. If this
parameter is equal to 0, the specified offset will be in units of 1/256th of the
servo track width. If this parameter is equal to 1, the specified offset will
be in units of 0.1% of the data track width.
Range: 0 or 1
5 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write or
write header track follow position.
Range: 0 to 0xFF
6 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
If a seek mode was specified, the Elapsed Time for the seek operation will be displayed.
The data displayed will be formatted as shown above, under Bit 6 of verbose mode.
Some commands use an output control bit flag (specified in the input parameters above).
If "Output Control Flag- Data Track Width" is set, the following information will be displayed:
where
wwww is the width of a data track in hex and in units of servo position. Q14 scaling,
so 0x4000 is the width of a data track at nominal TPI (before VTPI and warping).
Revision History:
Availability:
Level 4 , 'B'
Quick Help:
Enable / Disable RVFF, B[NewRvffControlMode]
Description:
This command is used to enable / disable RVFF control in servo.
Input Parameters:
This parameter specifies the new RVFF control mode to be used in servo.
Here is meaning of each bit of the RVFF control mode:
When this parameter is not entered, this command will simply display the current
RVFF control mode without changing it.
Range: 0 to 0xFFFF
Default: None.
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the RVFF Control Mode information will be displayed as follows.
where
Revision History:
Availability:
Level 3 , 'D'
Level 4 , 'D'
Quick Help:
Measure Seek Access Time, D[SkLength],[SkType],[NumSks]
Description:
Performs seek access time test on the current head. This diag supports two modes:
1) Logical random-length seeks, 2) Logical fixed-length seeks.
Input Parameters:
0 - Seek Length.
This parameter sets the seek length to be used during the seek access time testing.
If set to zero, then the seeks performed will be of random lengths. If the value
entered exceeds the drive's max track, then the seek length will be set to the max
track.
1 - Seek Type.
This parameter sets the type of seek to be performed during the seek access time
testing. The following are the valid seek types that this command accepts:
Range: 0 to 2
2 - Number of Seeks.
This parameter specifies the number of seeks to perform during the seek access time
testing.
Range: 1 to 99,999
Default: 1000
Output Data:
If no error occurred and the Seek Access Time data was returned, the following message
will be displayed.
Examples:
Revision History:
Availability:
Level 2 , 'E'
Level 3 , 'E'
Level 4 , 'E'
Level 7 , 'E'
Level A , 'E'
Level T , 'E'
Quick Help:
Display / Edit Log, E[LogNum],[ErrCodeOrSpecialFuncKey],[SpecialFunc]
Description:
This command displays or modifies the specified Log File.
Input Parameters:
0 - Log Number.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Range: 0 to 0xFFFF
If Parameter 2 is equal to 8, 20 hex, 100 hex, 200 hex or 400 hex, this parameter
must be equal to AA hex to enable the special error log operation specified by
Parameter 2. If Parameter 2 is not equal to 8, 20 hex, 100 hex, 200 hex or 400 hex,
only log entries with the Error Code specified by this parameter will be displayed.
Range: 0 to 0xFFFF
Default: None
If Parameter 2 is equal to 8, the ASCII log will be cleared and ASCII data
entered from the serial port will be stored in the ASCII log. When a
carriage return is entered, the ASCII log will be stored to the log number
specified by Parameter 0.
If Parameter 2 is equal to 10 hex, ASCII data entered from the serial port
will be appended to the end of the ASCII log. Entering a carriage return
terminates the ASCII data to be appended.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
where
kkkkkkkk is the number of symbols from index at which the error occurred
tttttttt is an ASCII String that indicates the partition ( "System" or " User" )
in which the error occurred
If no error occurred and the contents of an ASCII Log are selected to be displayed,
where
TBD
If no error occurred and the number of unused log bytes is being displayed,
where
"Log e Starting System Area LBA = ffffffff" (for a Disc Log or)
"Log e Starting Buffer Addr = gggggggg" (for a Buffer Log)
where
Examples:
Example #1:
To create a new user-defined error log as log 10 with 64KB of memory, display
information about it, enable it as the active error log, and display the actual
contents of the log:
Revision History:
Availability:
Level 2 , 'H'
Level 3 , 'H'
Level 4 , 'H'
Level 7 , 'H'
Quick Help:
Select Logical Head, H[Hd],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified logical head address. If no
address is specified, this command will seek to the next logical head in the Test Space.
Input Parameters:
Range: 0 to 0xFF
Default: None
1 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write
or write header track follow position.
Range: 0 to 0xFF
2 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
"Hd h"
where
h is selected head
Revision History:
Availability:
Level 2 , 'K'
Level 4 , 'K'
Quick Help:
Set Tracking Offset, K[OffsetValue],[PersOrTempOpt],[UnitsOpt],[ChanReload]
Description:
This command applies an offset to the servo system and then performs a seek to the
specified offset for the current track and head. The type of seek (Read, Write or
Write Header) will be the same as the last seek performed.
Input Parameters:
Default: 0
Range: 0 or 1
This parameter specifies the units of the Track Follow Offset value.
If this bit is equal to 0, the Track Follow Offset value specified in the
Parameter 0 will be in data track width.
If this bit is equal to 1, the Track Follow Offset value specified in the
Parameter 0 will be in servo track width.
Range: 0 to 0xFF
This parameter enables or disables reloading the channel parameters after the
track offset is set. If this parameter is equal to 0, the channel parameters
will not be reloaded into the channel registers. If this parameter is equal
to 1, the channel parameters will be reloaded into the channel registers.
Range: 0 or 1
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To persistently apply the servo tracking offset in the amount of 256/256th of data track width
in positive direction
F3 2>A0
F3 2>S1000
F3 2>K100,1
Example #2:
To persistently apply the servo tracking offset in the amount of 100% of data track width
in negative direction
F3 2>A0
F3 2>S1000
F3 2>KFC18,1,1
Example #3:
To persistently apply the servo tracking offset in the amount of 256/256th of servo track width
in negative direction
F3 2>A0
F3 2>S1000
F3 2>KFF00,1,2
Example #4:
To persistently apply the servo tracking offset in the amount of 100% of a servo track width
in positive direction
F3 2>A0
F3 2>S1000
F3 2>K3E8,1,3
Revision History:
Availability:
Level 4 , 'O'
Quick Help:
Display Micro Jog for Logical Cylinder and Head, O[LogCyl],[Hd],[Opts],[SysAreaOpt]
Description:
The Display Micro Jog Value for Logical CHS commmand seeks to the specified logical
track, gets the track's micro jog value and displays it. If no address is specified,
this command will seek to the next logical track in the Test Space and display its
micro jog value.
Input Parameters:
Range: 0 to 0xFFFFFFFF
Default: None
This parameter is the address of the Logical Head for which the micro jog value
is to be displayed. If both Parameter 0 and 1 are not entered, the micro jog
value will be displayed for the next logical track in the Test Space.
Range: 0 to 0xFF
Default: None
Range: 0 to 0xFFFF
If any value is entered then Parameter 0 specifies a System Area logical cylinder,
else it specifies a User Area logical cylinder.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Availability:
Level 2 , 'S'
Level 3 , 'S'
Level 4 , 'S'
Level 7 , 'S'
Level 8 , 'S'
Level H , 'S'
Quick Help:
Seek to Logical Cylinder and Head, S[Cyl],[Hd],[Offset],[OffsetUnitsOpt],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified User or System Area logical
cylinder and logical head address. If no address is specified, this command will
seek to the next logical track in the Test Space.
Input Parameters:
If Parameter 4 is not entered, this parameter is the address of the User Area
logical cylinder to which the seek is to be performed. If Parameter 4 is
entered, this parameter is the address of the System Area logical cylinder to
which the seek is to be performed. If both Parameter 0 and 1 are not entered,
a seek will be performed to the next logical track in the Test Space.
Range: 0 to 0xFFFFFFFF
Default: None
If entered, this parameter contains the address of the logical head to which the
seek is to be performed. If both Parameter 0 and 1 are not entered, a seek will
be performed to the next logical track in the Test Space.
Range: 0 to 0xFF
Default: None
Default: 0
This parameter specifies the units of the Track Follow Offset value. If this
parameter is equal to 0, the specified offset will be in units of 1/256th of the
servo track width. If this parameter is equal to 1, the specified offset will
be in units of 0.1% of the data track width.
Range: 0 or 1
4 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write
or write header track follow position.
Range: 0 to 0xFF
5 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, the width of the destination track will be displayed
in Q14 servo counts.
If this bit is set, the channel parameters will not be reloaded into the
channel registers with the seek, else the channel parameters will be
reloaded into the channel registers.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
If a seek mode was specified, the Elapsed Time for the seek operation will be displayed.
The data displayed will be formatted as shown above, under Bit 6 of verbose mode.
Some commands use an output control bit flag (specified in the input parameters above).
If "Output Control Flag- Data Track Width" is set, the following information will be displayed:
where
wwww is the width of a data track in hex and in units of servo position. Q14 scaling,
so 0x4000 is the width of a data track at nominal TPI (before VTPI and warping).
Examples:
Example #1:
To seek to a logical cylinder and head at the read track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1
Example #2:
To seek to a logical cylinder and head at the write track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,1
Example #3:
To seek to a logical cylinder and head at the write header track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,2
Example #4:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in servo counts
(in this case logical cylinder 45 head 1 at an offset of plus 100/256ths of
the servo track width)
F3 2>S45,1,64
Example #5:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in percent of data track width
(in this case logical cylinder 45 head 1 at an offset of -10% of the data track
width)
F3 2>S45,1,FFF6,1
Example #6:
To seek to a logical cylinder and head at the read track follow position and
display the data track width in Q14 servo counts
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,4
Example #7:
To seek to a logical cylinder and head at the read track follow position and
disable reloading of the channel parameters by the seek
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,2
Example #8:
To seek to a system logical cylinder and head at the read track follow position
(in this case logical system cylinder 54 head 0)
F3 2>S54,0,,,,1
Revision History:
Availability:
Level 4 , 'U'
Quick Help:
Servo Batch Test sub commands, U[SubCmd],[SubCmdParm0],[SubCmdParm1],[SubCmdParm2]
Description:
The Servo Batch Test command executes the specified servo batch tests
function.
Input Parameters:
0 - Sub-command ID.
This parameter specifies the sub-command ID of the Servo Batch Test command
to be executed.
Range: 0 to 0xFFFF
Default: None
Range: 100D
Default: None
1 - Revs to collect for RRO calculation.
This parameter specifies the revs to collect the PES data for RRO calculation.
If this parameter is not entered, the default value is 100 revs.
Range: 0 to 0xffff
Default: 100
This parameter specifies the revs to collect the PES data for NRRO calculation.
If this parameter is not entered, the default value is 100 revs.
Range: 0 to 0xffff
Default: 100
Output Data:
If Parameter 0 is equal to 100D (Plot PES on Screen)
"DiagError aaaaaaaa"
where
where
ffff is the minimum PES value measured for servo wedge eee in servo counts
per track.
gggg is the average PES value measured for servo wedge eee in servo counts
per track.
hhhh is the maximum PES value measured for servo wedge eee in servo counts
per track.
xx..xx is a graphical display of the center of the track, the minimum PES
value, the average PES value, and maximum PES value. These four
things are illustrated using the following characters.
Revision History:
Availability:
Level 4 , 'c'
Quick Help:
Find Min Or Max Cylinders c[Head],[Mode],[RangeMultiplier],[RetryCountLimit],[FilterTimeConstant]
Description:
This command performs the Find Min Or Max Cylinders operation.
The head will be moved towards the OD (or ID) while looking for either a seek failure or an
abrupt change (avalanche) in a measured parameter called Test Data. The measured parameter
may be Acff Magnitude or Bias Current, depending on the type of drive under test. Avalanche
detection is complicated by the fact that the Test Data will have some statistical variation
(range) around an average value, and that the average value will vary over the cylinder stroke
of the drive.
Before hunting for the avalanche cylinder, the statistical variation and average must be
characterized. To do this, the head is moved to a safe starting location, which is well
away from the likely avalanche cylinder, and the average and range of the Test Data are
measured over a band of cylinders. To estimate the average value, a low-pass filter is used
to reject the statistical variation and only track the average value. Range is estimated by
capturing the min and max values of Test Data over the that band of cylinders.
The test limit used for avalanche detection is recalculated for each cylinder tested based
on the estimated average value and a scaled estimate of the statistical variation.
K1 = ( 1 / FilterTimeConstant )
K2 = ( 1 - K1 )
At each cylinder tested, the Cylinder Number, TestData, Average, and Limit data are collected
into a circular buffer (pointed to by *TestData). After the Min (or Max) Cylinder has been
located, the buffer will be rotated so that the Min (or Max) Cylinder is the last entry in
the buffer.
Input Parameters:
0 - Test Head.
If entered, this parameter is the address of the head to use for the test.
Default: 0
1 - Operation Type.
Default: 0x00
2 - Range Multiplier.
If entered, this parameter specifies the range multiplier, which is used during
the determination of the test limit.
Default: 0.5
If entered, this parameter specifies the retry count limit used during determination
of the avalanche point.
Default: 0x0A
If entered, this parameter specifies time constant in samples of the tracking filter.
Default: 0x20
Output Data:
"DiagError aaaaaaaa"
where
where
bbb is the test data for that cylinder (Acff Magnitude Squared or Bias Current).
NOTE: the last cylinder number displayed is the Min (or Max) cylinder found.
Examples:
Example #1:
To find Min Cylinder and Max Cylinder using default values:
F3 4>c
Example #2:
To find Min Cylinder using Head 1, with a range gain of 0.75:
F3 2>c1,,0.75
Revision History:
Availability:
Level 4 , 'd'
Quick Help:
Display Servo Disc Slip
Description:
This command displays the servo disc slip coefficients.
This command calls RW that will read the disc slip coefficients SIM file and then
return that to diag. Diag would then displaythose coefficients.
Input Parameters:
None
Output Data:
Number Of Heads = a
Number Of Recals
Hd 0 : bb
Hd 1 : cc
Hd Skew DC Error
Hd 1 with respect to head 0 : gggg gggg gggg gggg
Hd 0 with respect to head 1 : gggg gggg gggg gggg
Where
a is the number of heads
bb, cc is the number of recals for each head
dddd is the sin component of the Timing Mod FFT coefficients for each head
eeee is the cos component of the Timing Mod FFT coefficients for each head
ffff is the radial timing coefficients for each head
gggg is the DC head skew error for each head
Example #1:
To display the Servo Disc Slip Coefficients
F3 4>d
Revision History:
1.0 Intial Revision
Availability:
Level 4 , 'e'
Quick Help:
Enable / Disable PES Output, e[PesLeftShiftCnt],[DisablePesOut]
Description:
This command is used to enable / disable PES Output. When PES Output is enabled, real
time PES signal will be outputted to AMUX test pin. A Left Shift Number is used to
control the signal's resolution. First, the 16-bit PES value (Bit 15: sign bit,
Bits 14 - 12: number of full tracks, Bits 11 - 0: fraction of one track. So 1000h means
a full track and 800h is half of a track) is left shifted by the number specified in this
command, and then the high byte of the shifted result is sent out to AMUX.
Input Parameters:
This parameter specifies the number of bits the PES value is to be shifted left
before it is outputted.
Range: 0 to 0x000E
Default: None.
1 - Disable PES Output.
If this parameter is entered, PES output will be disabled. If this parameter is not
entered and Parameter 0 is entered, PES output will be enabled. If this parameter
is not entered and Parameter 0 is not entered, the current PES output state will be
displayed.
Range: 0 to 0xFFFF
Default: None.
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Availability:
Level 4 , 'g'
Quick Help:
Display Servo Sector Error Log, g
Description:
This command will display the Servo Sector Error Log data.
Input Parameters:
None.
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the output of this command will be displayed as follows:
Examples:
Example #1:
To display the Servo Sector Error Count data:
F3 4>g
Revision History:
Availability:
Level 4 , 'l'
Quick Help:
Scan Track for Servo Defects and ZAP, l[RdPositionOpt]
Description:
This command scans the target track for servo defects and ZAPs.
Input Parameters:
If this parameter is entered, the scan will be performed at the read position,
else the scan will be performed at the write position.
Range: 0 to 0xFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level 4 , 'q'
Quick Help:
Display Servo Event Log, q
Description:
This command will display the Servo Event Log data.
Input Parameters:
None.
Output Data:
"DiagError aaaaaaaa"
where
aaaaaaaa is the Diagnostic Error Code
where
Examples:
Example #1:
To display the Servo Event Log data:
F3 4>q
Revision History:
Availability:
Level 4 , 's'
Quick Help:
Display Servo Sector Error Count, s
Description:
This command will display the Servo Sector Error Count data.
Input Parameters:
None.
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the output of this command will be displayed as follows:
where
xxxx indicates the number of the errors of the indicated type for the indicated head.
NOTE: If servo does not support a listed error count type, then the value 'FFFF' will be
used to indicate an invalid count.
Examples:
Example #1:
To display the Servo Sector Error Count data:
F3 4>s
Revision History:
Availability:
Level 4 , 't'
Quick Help:
Display / Modify ZAP Table, t[EntryNum],[EntryValue]
Description:
This command displays or modifies the RAM ZAP table.
Input Parameters:
This parameter specifies the number of the ZAP Table entry to be modified.
If this parameter and / or Parameter 1 are not entered, the ZAP table will
be displayed.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the value to be written to the specified ZAP table entry.
If this parameter and / or Parameter 0 are not entered, the ZAP table will be
displayed.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
"Row 000 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx"
"Row 001 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx"
.
.
.
where
xxxx is the ZAP data at the specified index position of the ZAP table
Revision History:
Availability:
Level 4 , 'u'
Quick Help:
Set Seek Speed, u[Opts],[SkSpeed]
Description:
This command sets the JIT seek speed to be used for future diagnostic seek, read and
write operations.
Input Parameters:
0 - Options.
This parameter specifies options for modifying the Diagnostic Seek Speed.
Selecting this option will display the current Diagnostic Seek Speed
status.
Selecting this option will enable the Seek Speed specified by Parameter 1
for future diagnostic seek, read and write operations.
Range: 0 to 2
Range: 0 to FFh
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the results of the Set Seek Speed command will be displayed as
follows.
where
Revision History:
Availability:
Level 4 , 'v'
Quick Help:
Butterfly Seek Test, v[StartPhyCyl0],[StartPhyCyl1],[NumSkPairs],[NumSeconds],[Hd]
Description:
The Butterfly Seek Test commmand performs the following seeks on the specified head:
Input Parameters:
Range: 0 to 0xFFFFFFFF
Range: 0 to 0xFFFFFFFF
Default: Maximum ( ID ) physical cylinder for current head
Range: 0 to 0xFFFFFFFF
Default: 5 ( Seconds )
Range: 0 to 0xFFFF
Range: 0 to 0xFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level 5 , 'B'
Quick Help:
Servo Bode Plot, B[BodeType],[InjAmp],[Fmin],[Fmax],[NumFreq],[NumSamples],[EnableTracing]
Description:
This command implements the Servo Bode Plot diagnostic. It is implemented as a
single-frequency DFT with an injected sine-wave distrubance, which is either a current or
position disturbance, depending on the selected measurement.
It has the ability to perform a single frequency measurement or loop through a range of
frequencies to create a swept-sine frequency response measurement.
A special 'Trace Mode' is supported which will return the raw time-domain data for Signal1
and Signal2. The data for only one frequency will be returned. If swept-sine measurement
is done, then time-domain data will be returned for only the last frequency used.
Input Parameters:
Note: for the following measurements, Signal1 is the 'output', Signal2 is the 'input',
and the transfer function is output/input = Signal1/Signal2. The labels specified for
Signal1, Signal2, and Injection for each of the Bode plot types are the actual variables
being sampled from the servo firmware.
Range:
Default: 400
Parameter 2 specifies lowest frequency in Hertz to be used for the servo bode
measurement.
Default: 10 Hz
Parameter 3 specifies highest frequency in Hertz to be used for the servo bode
measurement. This frequency must be greater than Parameter 2. Entering any value
larger than the Nyquist frequency will default to the Nyquist frequency.
Range: 1 .. 1024
Default: 200
Range: 1 .. 32768
Default: 4096
6 - Enable Tracing
Parameter 7 is used to enable a trace-mode that will return the raw time-domain
data of the last frequency to be analyzed. If Parameter 6 equals 0, then the
trace-mode is disabled. If Parameter 6 equals 1, the the trace-mode is enabled.
Range: 0 or 1
"DiagError aaaaaaaa"
where
If no error occurred, then the results of the servo Bode command will be displayed as
follows.
"ssssssssssssssssssssss"
where
ss..ss is a string to indicate the type of Bode plot that was performed. It may
be one of the following.
Examples:
Example #1:
The following command will measure the open loop frequency response using the
defaults parameters.
F3 5>B
Example #2:
This command will measure the open loop frequency response with a
TrackingDemodDisturbancePosition amplitude of 100, in the range of 2000Hz
to 3000Hz, with a linear spacing of 20Hz=(3000-2000)/50, and a time record
of 5000 samples per frequency.
F3 5>B3,100,2000,3000,50,5000
Example #3:
This example uses the default bode type and injection amplitude, starting frequency
of 5000, ending frequency of 5010, using only 1 frequency only do 5000Hz), collect 264
samples, and use Trace Mode. Trace mode will return the servo sector number, and the
raw time-domian data for Signal1 and Signal2.
F3 5>B,,5000,5010,1,264,1
Revision History:
Availability:
Level 5 , 'C'
Quick Help:
Generic Servo Command, C[CmdNum],[Parm1],...[Parm7]
Description:
The Generic Servo command executes the servo command user specified and displays all
result data returned by Servo, which includes Servo Command Status, Servo Diagnostic Reg,
and Servo Data Response. Please note that it is the user's responsibility to enter the
correct internal servo command number and the parameters associated with this servo
command. This command itself does not verify the command number and parameters. It simply
accepts what user entered and then passes them to the servo code.
NOTE: For more information about the servo command interface, please refer to the Lotus
Notes database linked here: I/O To Servo Command Protocol
Input Parameters:
Range: 0 to 0xFFFF
Default: None
This parameter specifies the the 1st parameter following the Servo Command number.
Range: 0 to 0xFFFF
Default: 0
This parameter specifies the the 2nd parameter following the Servo Command number.
Range: 0 to 0xFFFF
Default: 0
This parameter specifies the the 3rd parameter following the Servo Command number.
Range: 0 to 0xFFFF
Default: 0
This parameter specifies the the 4th parameter following the Servo Command number.
Range: 0 to 0xFFFF
Default: 0
This parameter specifies the the 5th parameter following the Servo Command number.
Range: 0 to 0xFFFF
Default: 0
This parameter specifies the the 6th parameter following the Servo Command number.
Range: 0 to 0xFFFF
Default: 0
This parameter specifies the the 7th parameter following the Servo Command number.
Range: 0 to 0xFFFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the Servo Command Response information will be displayed as follows.
"Status aaaa, Diagnostic bbbb, Response cccc1 ccc2 ... ccc15 ccc16"
where
ccc1 ... ccc16 is the servo data response values of the command
NOTE: For more information about servo's response information as shown by this command,
please refer to the Lotus Notes database linked here: I/O To Servo Command Protocol
Revision History:
Availability:
Level 5 , 'D'
Quick Help:
Read / Unlock DDR Buffer, B[OperateCode]
Description:
This command is used to either read the entire DDR data from DDR buffer, or unlock DDR
buffer to resume DDR data collection.
Input Parameters:
When this parameter is entered as the value of 0FFFFh, it is an Unlock DDR Buffer
command. The purpose is to resume DDR data collection in servo.
When this parameter is not entered or entered as a valid value other than 0FFFFh,
it is a Read Entire DDR Data from DDR Buffer command.
Range: 0 to 0xFFFF
Default: 0.
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and the option to read the entire DDR Buffer is selected, then the
following information will be displayed as follows.
where
bbbbb is the total revs of data stored in DDR buffer (in decimal).
ccccc is the revs of data after the DDR event (in decimal).
ddddd is the number of DDR data per servo wedge (in decimal).
ffff is the actual DDR data (in hex). The DDR data is displayed so that all DDR
data from the same wedge is on the same line. So the total number of lines
of actual DDR data = Total Revs (bbbbb) * Servos per Rev (eeee).
Revision History:
Availability:
Level 5 , 'E'
Quick Help:
Measure Disc Eccentricity
Description:
This command performs the Measure Disc Eccentricity operation.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the following will be displayed for each supported head:
where
b.bbbbb is the magnitude in microinches complex eccentricity for the designated head
c.ccccc is the real component in microinches of the complex eccentricity for the
designated head
Examples:
Example #1:
To measure disc eccentricity on all heads:
F3 5>E
Revision History:
Availability:
Level 5 , 'G'
Quick Help:
Select Servo Controller, G[Head],[Controller],[InputShift]
Description:
This command allows for one of serveral different servo controllers to be selected.
The servo controllers available have been pre-designed with dynamic characteristics
which have been optimized for particular operating conditions.
Input Parameters:
If parameter 0 is specified,
And either or both parameter 1 and parameter 2 are specified:
The "controller" for the specified head is changed to the
specified values and/or
the "input shift" will be set to the specified value.
Then the command will display the current "controller" for the
specified head.
Then the "input shift" will be displayed.
Default: None
1 - Controller
Default: None
Default: None
Output Data:
"DiagError aaaaaaaa"
where
"Head Controller"
"AA BB"
.
.
.
where
Note: Controller Data will be either for a single head or for all heads depending on
parameters selections when the diag is executed.
Revision History:
Availability:
Level 5 , 'K'
Quick Help:
Servo Disc Slip, K [OperationSelectId]
Description:
This command executes the Servo Disc Slip diagnostic.
Input Parameters:
This parameter specifies the ID of the type of operation that the Servo Disc Slip
diagnostic will perform.
Range: 0 to 0xFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
where:
j is the sense status returned by the R/W subsystem for the last operation.
RW_STATUS_CODES
kkkkkkkk is the error code returned by the R/W subsystem for the last operation.
RW_SENSE_ERROR_CODES
If no error occurred, then the output of this command will be displayed as follows:
Recal Pending = h
Recal Performed = i
where:
Revision History:
Availability:
Level 5 , 'R'
Quick Help:
Read Servo RAM at Address, R[Addr],[NumBytes]
Description:
The Read Servo RAM at Address command reads and displays the data contained in the
specified Servo RAM locations.
Input Parameters:
This parameter specifies the address of the first servo RAM byte to be read.
Range: 0 to 0xFFFFFFFF
Default: None
1 - Number of Bytes.
This parameter specifies the number of servo RAM bytes to be read and displayed.
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the servo data will be displayed in one of the following three ways.
where
cccccccc is the address of the first servo memory byte that was read.
Revision History:
Availability:
Level 5 , 'S'
Quick Help:
Enter Servo Matlab Shell, S
Description:
This command enters servo matlab shell and never returns. It also spins down the drive
first before entering the servo matlab shell.
Input Parameters:
None
Output Data:
None
Revision History:
Availability:
Level 5 , 'U'
Quick Help:
Enable / Disable Servo Updates, U[VcmDacUpdateOpt],[AToDUdateOpt]
Description:
This command enables or disables servo VCM DAC and / or A to D updates.
Input Parameters:
If this parameter is equal to 0, servo updates of the VCM DAC will be disabled,
else servo updates of the VCM DAC will be enabled.
Range: 0 to 0xFF
Default: 1
Range: 0 to 0xFF
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Availability:
Level 5 , 'W'
Quick Help:
Write Servo RAM at Address, W[Addr],[NumBytes],[Data]
Description:
The Write Servo RAM at Address command writes the specified Servo RAM locations
with the specified data.
Input Parameters:
This parameter specifies the address of the first servo RAM byte to be written.
Range: 0 to 0xFFFFFFFF
Default: None
1 - Number of Bytes.
Default: 2
This parameter specifies that data with which the specified servo RAM location
is to be written.
Range: 0 to 0xFFFFFFFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Availability:
Level 5 , 'Z'
Quick Help:
Read Zap from Disc to Table, Z
Description:
The Read Zap from Disc to Table command reads ZAP data from disc into ZAP table in Servo
ZAP Table.
Input Parameters:
None
Output Data:
None
Revision History:
Availability:
Level 5 , 'd'
Quick Help:
Disable / Enable Servo ZAP coefficients and ZAP read, d[ZapControlMode]
Description:
This command disables / enables the servo from using the coefficients in the ZAP table.
Input Parameters:
If this parameter is not entered, the command will display the current ZAP control
mode only without changing it.
If this parameter is entered, the ZAP control mode will be set to this value with
the meaning as the following:
0: Disable ZAP coefficients
1: Enable Write ZAP coefficients only with ZAP data from disk
2: Enable both Read and Write ZAP coefficients with ZAP data from ZAP table
3: Reserved for future use
4: Enable Read ZAP coefficients only with ZAP data from disk
5: Enable both Read and Write ZAP coefficients with ZAP data from disk
Range: 0 to 5
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the Servo ZAP Control Status will be displayed as follows.
where
"No"
"Write ZAP from disc"
"Read/Write ZAP from table"
"Reserved"
"Read ZAP from disc"
"Read/Write ZAP from disc"
Revision History:
Availability:
Level 5 , 'e'
Quick Help:
Enable / Disable Shock Sensor, e[Operation]
Description:
This command will enable or disable the shock sensor and get its current status.
Input Parameters:
0 - Operation.
Range: 0..2
Default: 2
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and the shock sensor is disabled, the following message will be displayed:
If no error occurred and the shock sensor is enabled, the following message will be displayed:
Examples:
Example #1:
To display the current status of the shock sensor:
F3 5>e
Example #2:
To disable the shock sensor:
F3 5>e0
Revision History:
Availability:
Level 5 , 'i'
Quick Help:
Read Servo Symbol Table at Index, i[Index]
Description:
The Read Servo Symbol Table at Index command reads and displays the Servo Symbol Table
entry at the specified index.
Input Parameters:
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the following servo symbol table information will be displayed as
follows.
where
cccc is the index of the servo symbol table entry that was read.
dddddddd is the data that was read from the servo symbol table.
Revision History:
Availability:
Level 5 , 'r'
Quick Help:
Read Servo RAM at Index, r[Index],[NumBytes],[ByteOffset]
Description:
The Read Servo RAM at Index command reads and displays data contained in Servo RAM.
The base address of the Servo RAM location to be read is retrieved from the Servo Symbol
Table at the specified index and an optional byte offset is added to it.
Input Parameters:
This parameter specifies the index of the Servo Symbol Table entry that contains
the base address of the Servo RAM location to be read.
Range: 0 to 0xFFFF
Default: None
1 - Number of Bytes.
This parameter specifies the number of servo RAM bytes to be read and displayed.
Default: 2
This parameter is an optional byte offset which will be added to the address of the
servo RAM location to be read.
Range: 0 to 0xFFFFFFFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the servo data will be displayed in one of the following three ways.
where
cccc is the index of the Servo Symbol Table entry that contains the address
of the servo memory location to be read.
Revision History:
Availability:
Level 5 , 'w'
Quick Help:
Write Servo RAM at Index, w[Index],[NumBytes],[Data],[ByteOffset]
Description:
The Write Servo RAM at Index command writes Servo RAM with the specified data.
The base address of the Servo RAM location to be written is retrieved from the Servo
Symbol Table at the specified index and an optional byte offset is added to it.
Input Parameters:
This parameter specifies the index of the Servo Symbol Table entry that contains
the base address of the Servo RAM location to be written.
Range: 0 to 0xFFFF
Default: None
1 - Number of Bytes.
Default: 2
This parameter specifies that data with which the servo RAM is to be written.
Range: 0 to 0xFFFFFFFF
Default: 0
This parameter is an optional byte offset which will be added to the address of the
servo RAM location to be written.
Range: 0 to 0xFFFFFFFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level 6 , 'B'
Quick Help:
Run Batch File, B[BatchFileNum],[DisplayOpt]
Description:
This command runs the specified Diagnostic Batch File. A Batch File is sequence
of Diagnostic Commands entered by the user via the serial port interface.
The drive's firmware is created with a number of built-in batch files. Descriptions
of these built-in batch files are available at the following link:
Input Parameters:
Range: 0 to 0xFF
Default: 0
1 - Options Mask.
This parameter is a bit significant value that selects the following options:
Execute the batch file one command at a time, pausing and waiting
for a character to be input between commands.
Range: 0 to 0x01
Output Data:
None
Revision History:
Availability:
Level 6 , 'D'
Quick Help:
Display Batch File, D[BatchFileNum]
Description:
This command displays the contents of the specified Diagnostic Batch File. A Batch
File is sequence of ASCII Diagnostic Commands entered by the user via the serial port
interface.
The drive's firmware is created with a number of built-in batch files. Descriptions
of these built-in batch files are available at the following link:
Input Parameters:
Range: 0 t0 0xFF
Default: 0
Output Data:
Displays the ASCII Serial Port Command sequence contained in the Batch File.
Revision History:
Availability:
Level 6 , 'E'
Quick Help:
Enter Batch File, E[BatchFileNum]
Description:
This command inputs the specified Diagnostic Command Batch File. A Batch File is
sequence of Diagnostic Commands entered by the user via the serial port interface.
The user terminates the Batch File by entering the '|' character.
A Batch File may contain both Diagnostic Mode and Online commands.
Input Parameters:
Range: 0 to 2
Default: 0
Output Data:
None
Revision History:
Buffer Display
Availability:
Level 1 , 'B'
Level 2 , 'B'
Level 7 , 'B'
Level F , 'B'
Level H , 'B'
Quick Help:
Buffer Display, B[DisplayBlk],[RefBlk],[NumBlks],[Opts],[SymBits]
Description:
The Buffer Display command reads and displays the contents of the specified buffer
blocks. Optionally, the buffer data being displayed can be compared to a specified
compare buffer blocks, with miscomparing bytes displayed as highlighted text.
Input Parameters:
Default: If this parameter is not entered, the First block of Diagnostic Read
Buffer will be displayed.
This parameter specifies the number of the first buffer block that will be
compared to the blocks being displayed. Bytes that miscompare will be
displayed as highlighted text.
Default: If this parameter is not entered and the Display Buffer Block is
located in the Diagnostic Read Buffer, the corresponding block in
the Diagnostic Write Buffer will be used as the Reference Buffer
Block.
2 - Number of Blocks.
Default: 1
3 - Options.
If this bit is cleared, the display will pause after each block
and wait for the user to enter a character.
Range: 0 to 0xFFFFFFFF
4 - Symbol Size.
Range: 1 to 32
Default: 8
Output Data:
"DiagError aaaaaaaa"
where
where
dddd if the number of the Buffer Block to which the displayed block is
being compared.
If the memory data is being displayed as bytes, the following information will be
displayed following the header.
where
ffffffff is the buffer address of the first byte in the row.
If the memory data is being displayed as non-8-bit symbols, the following information
will be displayed following the header.
where
jj is the buffer symbol. The number of characters displayed for each symbol
will vary depending on the symbol size.
If the displayed data is being compared to a reference buffer block, the bytes or
symbols that are not equal to the reference will be displayed as highlighted text.
Revision History:
Buffer Copy
Availability:
Level 2 , 'C'
Level 7 , 'C'
Level F , 'C'
Quick Help:
Buffer Copy, C[SrcBlk],[DestBlk],[NumBlks]
Description:
The Buffer Copy command copies the contents of the specified source buffer block(s)
to the specified destination buffer block(s).
Input Parameters:
If this parameter is entered, it specifies the number of the first buffer block
that contains the source data to be copied.
Default: If this parameter is not entered, the first block of the Diagnostic
Read Buffer will be the first source block.
If this parameter is entered, it specifies the number of the first buffer block
to which the source data is to be copied.
Default: If this parameter is not entered, the first block of the Diagnostic
Write Buffer will be the first destination block.
Default: If Parameters 0, 1 and 2 are not entered, the entire Diagnostic Read
Buffer will be copied to the Diagnostic Write Buffer. If Parameter 2
is not entered and either Parameter 0 or 1 is entered, a single buffer
block will be copied.
Output Data:
"DiagError aaaaaaaa"
where
Display Temperature
Availability:
Level 7 , 'D'
Quick Help:
Display Temperature, D,[DevSelect]
Description:
This commmand displays the temperature of the specified device (preamp or thermistor).
Input Parameters:
0 - not used.
This parameter is not currently used. For the legacy ST10 code, entering
this parameter forced the cert temperature to be equal the current temperature.
Type: None
Range: None
Default: None
1 - Device Select.
This parameter selects the device for which the temperature is to be displayed.
Range: 0 to 0xFF
2 - not used.
This parameter is not currently used. For the legacy ST10 code, if this
parameter was equal to 0x22, the temperature value was written to the disk with
the Adaptive parameters.
Type: None
Range: None
Default: None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and the Channel temperature was returned, the following message
will be displayed.
where
If no error occurred and the Preamp temperature was returned, the following message
will be displayed.
where
If no error occurred and the Thermistor temperature was returned, the following
message will be displayed.
"Ref voltage dddd Thermistor voltage eeee Thermistor temp in degrees C ffff, FFd"
where
Revision History:
Availability:
Level 2 , 'E'
Level 3 , 'E'
Level 4 , 'E'
Level 7 , 'E'
Level A , 'E'
Level T , 'E'
Quick Help:
Display / Edit Log, E[LogNum],[ErrCodeOrSpecialFuncKey],[SpecialFunc]
Description:
This command displays or modifies the specified Log File.
Input Parameters:
0 - Log Number.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Range: 0 to 0xFFFF
If Parameter 2 is equal to 8, 20 hex, 100 hex, 200 hex or 400 hex, this parameter
must be equal to AA hex to enable the special error log operation specified by
Parameter 2. If Parameter 2 is not equal to 8, 20 hex, 100 hex, 200 hex or 400 hex,
only log entries with the Error Code specified by this parameter will be displayed.
Range: 0 to 0xFFFF
Default: None
If Parameter 2 is equal to 8, the ASCII log will be cleared and ASCII data
entered from the serial port will be stored in the ASCII log. When a
carriage return is entered, the ASCII log will be stored to the log number
specified by Parameter 0.
If Parameter 2 is equal to 10 hex, ASCII data entered from the serial port
will be appended to the end of the ASCII log. Entering a carriage return
terminates the ASCII data to be appended.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
where
kkkkkkkk is the number of symbols from index at which the error occurred
tttttttt is an ASCII String that indicates the partition ( "System" or " User" )
in which the error occurred
If no error occurred and the contents of an ASCII Log are selected to be displayed,
where
TBD
If no error occurred and the number of unused log bytes is being displayed,
where
"Log e Starting System Area LBA = ffffffff" (for a Disc Log or)
"Log e Starting Buffer Addr = gggggggg" (for a Buffer Log)
where
Examples:
Example #1:
To create a new user-defined error log as log 10 with 64KB of memory, display
information about it, enable it as the active error log, and display the actual
contents of the log:
Revision History:
Availability:
Level 2 , 'H'
Level 3 , 'H'
Level 4 , 'H'
Level 7 , 'H'
Quick Help:
Select Logical Head, H[Hd],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified logical head address. If no
address is specified, this command will seek to the next logical head in the Test Space.
Input Parameters:
Range: 0 to 0xFF
Default: None
1 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write
or write header track follow position.
Range: 0 to 0xFF
Default: Seek to the read track follow position
2 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
a is minutes
b is seconds
c is milliseconds
d is microseconds
"Hd h"
where
h is selected head
Revision History:
Availability:
Level 2 , 'I'
Level 7 , 'I'
Quick Help:
Display / Modify Adaptive Parameter, I,[GroupId]
Description:
This command is used to invoke the Display / Modify Adaptive Parameter subcommands.
Input Parameters:
0 - Not Used.
Please see the other Display / Modify Adaptive Parameters commands for details
regarding the use of this parameter.
Type: N/A
Range: N/A
Default: None
This parameter specifies the ID of the Adaptive Parameter Group that contains
the value to be displayed or modified.
Range: 0 to 0xFFFFFFFF
Default: 0
Output Data:
Please see each individual Display / Modify Adaptive Parameter subcommand for more
details regarding its output data format.
Examples:
The following will present the Display/Modify Adaptives command's Table of Contents:
F3 2>I,FF
Revision History:
Availability:
Level 7 , 'K'
Quick Help:
Set Track Format, K[UserAreaTrkFormatType],[SysAreaTrkFormatType]
Description:
This command configures the track layout based on the specified track format type.
Input Parameters:
Range: 0, 1, or 2
Default: 0
Range: 0, 1, or 2
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the Set Track Format output will be displayed as follows.
where
aa..aa is a string that represents the track format type (see below).
bb..bb is a string that represents the track format type (see below).
cccc is the number of sectors on the track.
The following are the possible strings used to represent the track format type:
Revision History:
Availability:
Level 2 , 'P'
Level 7 , 'P'
Level F , 'P'
Level H , 'P'
Quick Help:
Set Buffer Pattern, P[PatternSelOrPatternLow],[PatternHi],[PatternBits],[Opts],[BlkNum],[NumBlks]
Description:
This command loads the specified data buffer blocks with the specified data pattern.
This command supports both the legacy ST-10 mode and a new mode that allows the user to
enter data patterns of up to 16-bytes (128-bits in length). The Legacy ST-10 mode only
allowed the user to enter 4-byte (32-bit) patterns.
In legacy ST-10 mode Parameter 0 selects either a pre-defined pattern (i.e. If Parameter 0
is equal to 0x1212, random data will be selected) or it contains the lower 16-bits of a
user specified pattern. In this mode Parameter 1 contains the upper 16-bits of a user
specified pattern, Parameter 2 specifies the pattern length, in bits, and the pattern
is assumed to be right justified. For example if Parameter 0 is equal to 0x5678,
Parameter 1 is equal to 0x1234 and Parameter 2 is equal to 0x14, the buffer will be
filled with the repeating 20-bit pattern 0100 0101 0110 0111 1000 which are the least
significant 4-bits of Parameter 1 followed by the 16-bits of Parameter 0 (45678).
The new 16-byte user pattern mode is selected by entering 0x1818 for Parameter 0. In
this mode Parameter 1 contains the 16-byte pattern to be used, Parameter 2 specifies
the pattern length, in bits, and the pattern is assumed to be left justified. The
pattern should be entered as a 1 to 32 character hexadecimal value with no spaces or
commas separating the bytes. For example if Parameter 0 is equal to 0x1818,
Parameter 1 is equal to 0x123456789ABC and Parameter 2 is equal to 0x24, the buffer
will be filled with the repeating 36-bit pattern 0001 0010 0011 0100 0101 0110 0111
1000 1001 which are the most significant 36-bits of Parameter 1 (123456789).
Input Parameters:
Note: When loading the buffer with the repeating 127-bit pattern, each
byte will be flipped end to end. So when displayed, the filled buffer
will actually contain the following data.
The buffer will be filled with the following 15-byte repeating pattern.
F0 F3 F3 C3 03 03 03 0F 3F 3F 3F 3C 30 30 F0 hex
If Parameter 3 bit 1 is set or Parameter 0 is not equal to any of the values listed
above, Parameter 0 will specify the least significant 16-bits of the data pattern
with which the buffer is to be loaded. In this case Parameter 1 will specify the
most significant 16-bits of the data pattern, the maximum pattern length will be
32-bits and the specified pattern will be assumed to be right justified.
Range: 0 to 0xffff,
If Parameter 3 bit 1 is set or Parameter 0 does not select one of the pre-defined
data patterns (0x1111, 0x1212, etc.), Parameter 1 specifies the most significant
16-bits of the data pattern with which the buffer is to be loaded. In this case
Parameter 0 will specify the least significant 16-bits of the data pattern, the
maximum pattern length will be 32-bits and the specified pattern will be assumed
to be right justified.
Range: 0 to 0xffffffffffffffffffffffffffffffff
Default: 0
This parameter specifies the length, in bits, of the fill pattern specified by
parameters 0 and 1.
Range: 0 to 0x80
3 - Options.
Range: 0 to 0xFFFFFFFF
This parameter specifies the number of the first buffer block to be filled.
Default: If this parameter is not entered, the first block of Diagnostic Write
Buffer will be the first buffer block filled.
Default: If this parameter is not entered and Parameter 4 was not entered, the
entire Diagnostic Write Buffer will be filled. If this parameter is
not entered and Parameter 4 was entered, only the buffer block specified
by Parameter 4 will be filled.
Output Data:
"DiagError aaaaaaaa"
where
Examples:
The following commands will load the Diagnostic Write Buffer with pre-defined patterns:
F3 2>P1111 (Incrementing Pattern - 1st block 0x0000, 2nd block 0x0001, etc.)
F3 2>P1212 (Random Pattern)
F3 2>P1313 (Alternating Pattern - 0x1313 and Random Data)
F3 2>P1414 (Isolated Pulse Pattern - 0xFFFF0000)
F3 2>P1515 (Incrementing 2-Byte Pattern - 0x0000000100020003...)
F3 2>P1616 (Pre-Defined 127-bit Pattern - 0x13175B06...)
F3 2>P1717 (Pre-Defined 15 byte 6T Pattern - 0xF0F3F3C303...)
The following commands will load the Diagnostic Write Buffer with user defined patterns:
The following commands will load the specified buffer blocks with a user defined pattern:
Revision History:
Write
Availability:
Level 2 , 'Q'
Level 7 , 'Q'
Quick Help:
Write, Read, Read CHS, Q[Sec],[NumSecs],,[PhyOpt],[Opts]
Description:
This command performs a disk write, read, read operation starting at the specified
sector on the target track for the specified number of sectors. The sectors are
written with the data contained in the Diagnostic Write Buffer and they are read into
the Diagnostic Read Buffer.
Input Parameters:
If any value is entered for Parameter 3, this parameter contains the physical
sector address of the first sector to write and read else this parameter contains
the User Area logical sector address of the first sector to write and read.
Default: 0
1 - Transfer Length.
This parameter specifies the number of consecutive sectors to write and read.
Range: 0 to 0xFFFFFFFF
Default: If the Sector Address was entered and the Transfer Length was not entered,
then only the specified sector will be written and read.
If both the Sector Address and Transfer Length are not entered, then the
Transfer Length will be set based on the Test Space that is selected.
If the Random Transfer Length option is selected, a random value will be
used that is less than or equal to the number of sectors remaining on the
track. If the Random Transfer Length option is not selected, the number
of sectors remaining on the track will be written and read.
2 - not used.
Type: None
Range: None
Default: None
If any value is entered for this parameter, then Parameter 0 specifies a physical
sector address, else Parameter 0 specifies a User Area logical sector address.
Range: 0 to 0xFFFF
Default: None
4 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the sectors in the Test Space will be
written and read, else only the sectors specified by Parameters 0
and 1 will be written and read.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the write and read operations
will continue and attempt to write and read all of the requested
sectors. Each error encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To write and read a single logical sector
(in this case logical sector 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>Q23
Example #2:
To write and read multiple logical sectors
(in this case logical sectors 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>Q23,4
Example #3:
To write and read all of the logical sectors on a track
(in this case all logical sectors on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>Q
Example #4:
To write and read all of the logical sectors on multiple tracks
(in this case all logical sectors on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be written and read.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>Q
Example #5:
To write and read all of the logical sectors on a track and continue on error
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0
F3 2>Q,,,,1
Example #6:
To write and read all of the logical sectors in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 2>Q,,,,11
Example #7:
To write and read a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>Q32,,,1
Example #8:
To write and read multiple physical sectors
(in this case physical sectors 32 to 35 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>Q32,4,,1
Example #9:
To write and read all of the physical sectors on a track
(in this case all physical sectors on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>Q,,,1
Example #10:
To write a single logical sector with data at a specific sector offset in the
diagnostic write buffer and read it to the sector offset in the diagnostic read buffer
(in this case logical sector 23 on logical cylinder 45 head 1,
write with data at the sector offset of 5 in the diagnostic write buffer,
read to the sector offset of 5 in the diagnostic read buffer)
F3 2>A0
F3 2>AF,5
F3 2>S45,1
F3 2>Q23
Example #11:
To rotate the buffer sector offset by 1, write a single logical sector with data at
the rotated sector offset in the diagnostic write buffer, then read it to the rotated
sector offset in the diagnostic read buffer
(This example assumes user ran the Example #10 above right before this example,
in this case logical sector 24 on logical cylinder 45 head 1,
write with data at the sector offset of 6 in the diagnostic write buffer,
read to the sector offset of 6 in the diagnostic read buffer)
F3 2>Q24,,,,4
Revision History:
Read CHS
Availability:
Level 2 , 'R'
Level 7 , 'R'
Quick Help:
Read CHS, R[Sec],[NumSecs],,[PhyOpt],[Opts]
Description:
This command reads data from the disk starting at the specified sector on the target
track for the specified number of sectors. The data is read into the Diagnostic Read
Buffer.
Input Parameters:
If any value is entered for Parameter 3, this parameter contains the physical
sector address of the first sector to read, else this parameter contains the
User Area logical sector address of the first sector to read.
Default: 0
1 - Transfer Length.
This parameter specifies the number of consecutive sectors to read.
Range: 0 to 0xFFFFFFFF
Default: If the Sector Address was entered and the Transfer Length was not entered,
then only the specified sector will be read.
If both the Sector Address and Transfer Length are not entered, then the
Transfer Length will be set based on the Test Space that is selected.
If the Random Transfer Length option is selected, a random value will be
used that is less than or equal to the number of sectors remaining on the
track. If the Random Transfer Length option is not selected, the number
of sectors remaining on the track will be read.
2 - not used.
Type: None
Range: None
Default: None
If any value is entered for this parameter, then Parameter 0 specifies a physical
sector address, else Parameter 0 specifies a User Area logical sector address.
Range: 0 to 0xFFFF
Default: None
4 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the sectors in the Test Space will be
read, else only the sectors specified by Parameters 0 and 1 will
be read.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the read operation will
continue and attempt to read all of the requested sectors. Each
error encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To read a single logical sector
(in this case logical sector 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>R23
Example #2:
To read multiple logical sectors
(in this case logical sectors 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>R23,4
Example #3:
To read all of the logical sectors on a track
(in this case all logical sectors on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>R
Example #4:
To read all of the logical sectors on multiple tracks
(in this case all logical sectors on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be read.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>R
Example #5:
To read all of the logical sectors on a track and continue on error
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0
F3 2>R,,,,1
Example #6:
To read all of the logical sectors in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 2>R,,,,11
Example #7:
To read a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>R32,,,1
Example #8:
To read multiple physical sectors
(in this case physical sectors 32 to 35 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>R32,4,,1
Example #9:
To read all of the physical sectors on a track
(in this case all physical sectors on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>R,,,1
Example #10:
To read a single logical sector to a specific sector offset in the diagnostic read
buffer
(in this case logical sector 23 on logical cylinder 45 head 1,
to the sector offset of 5 in the diagnostic read buffer)
F3 2>A0
F3 2>AF,5
F3 2>S45,1
F3 2>R23
Example #11:
To rotate the buffer sector offset by 1 and read a single logical sector to the
rotated sector offset in the diagnostic read buffer.
(This example assumes user ran the Example #10 above right before this example,
in this case logical sector 24 on logical cylinder 45 head 1,
to the sector offset of 6 in the diagnostic read buffer)
F3 2>R24,,,,4
Revision History:
Availability:
Level 2 , 'S'
Level 3 , 'S'
Level 4 , 'S'
Level 7 , 'S'
Level 8 , 'S'
Level H , 'S'
Quick Help:
Seek to Logical Cylinder and Head, S[Cyl],[Hd],[Offset],[OffsetUnitsOpt],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified User or System Area logical
cylinder and logical head address. If no address is specified, this command will
seek to the next logical track in the Test Space.
Input Parameters:
If Parameter 4 is not entered, this parameter is the address of the User Area
logical cylinder to which the seek is to be performed. If Parameter 4 is
entered, this parameter is the address of the System Area logical cylinder to
which the seek is to be performed. If both Parameter 0 and 1 are not entered,
a seek will be performed to the next logical track in the Test Space.
Range: 0 to 0xFFFFFFFF
Default: None
If entered, this parameter contains the address of the logical head to which the
seek is to be performed. If both Parameter 0 and 1 are not entered, a seek will
be performed to the next logical track in the Test Space.
Range: 0 to 0xFF
Default: None
Default: 0
This parameter specifies the units of the Track Follow Offset value. If this
parameter is equal to 0, the specified offset will be in units of 1/256th of the
servo track width. If this parameter is equal to 1, the specified offset will
be in units of 0.1% of the data track width.
Range: 0 or 1
4 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write
or write header track follow position.
Range: 0 to 0xFF
5 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, the width of the destination track will be displayed
in Q14 servo counts.
If this bit is set, the channel parameters will not be reloaded into the
channel registers with the seek, else the channel parameters will be
reloaded into the channel registers.
Range: 0 to 0xFFFF
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
If a seek mode was specified, the Elapsed Time for the seek operation will be displayed.
The data displayed will be formatted as shown above, under Bit 6 of verbose mode.
Some commands use an output control bit flag (specified in the input parameters above).
If "Output Control Flag- Data Track Width" is set, the following information will be displayed:
wwww is the width of a data track in hex and in units of servo position. Q14 scaling,
so 0x4000 is the width of a data track at nominal TPI (before VTPI and warping).
Examples:
Example #1:
To seek to a logical cylinder and head at the read track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1
Example #2:
To seek to a logical cylinder and head at the write track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,1
Example #3:
To seek to a logical cylinder and head at the write header track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,2
Example #4:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in servo counts
(in this case logical cylinder 45 head 1 at an offset of plus 100/256ths of
the servo track width)
F3 2>S45,1,64
Example #5:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in percent of data track width
(in this case logical cylinder 45 head 1 at an offset of -10% of the data track
width)
F3 2>S45,1,FFF6,1
Example #6:
To seek to a logical cylinder and head at the read track follow position and
display the data track width in Q14 servo counts
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,4
Example #7:
To seek to a logical cylinder and head at the read track follow position and
disable reloading of the channel parameters by the seek
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,2
Example #8:
To seek to a system logical cylinder and head at the read track follow position
(in this case logical system cylinder 54 head 0)
F3 2>S54,0,,,,1
Revision History:
Availability:
Level 7 , 'U'
Quick Help:
Channel Temperature Adjust, U[TweakTemperature],[Partition],[Hd],[Zone],[Opts],[Preht],[WrtHt],[RdHt]
Description:
This command tweaks the write power and fly height values based on the specified
temperature value.
Input Parameters:
This parameter specifies the temperature (in degrees Celsius) with which the
write power and fly height are to be tweaked.
Range: 0 to 0xFF
Default: None. If this parameter is not entered, the current thermistor
temperature will be used.
1 - Partition
This parameter specifies the media partition on which the write power and
fly height will be tweaked with the temperature.
Default: 0
2 - Head
This parameter specifies the head or heads to tweak the write power and fly
height. If parameter 2 is 0xFF, the write current and fly heigth will be
tweaked on all heads in the zone or zones specified by parameter 3. If
parameter 2 is not entered, the write current and fly height values will be
tweaked on the current head in the zone or zones specified by parameter 3.
Default: None
3 - Zone
This parameter specifies the zone or zones to tweak the write power and fly
height. If parameter 3 is 0xFF, the write current and fly height will be
tweaked in all zones on the head or heads specified by parameter 2. If
parameter 3 is not entered, the write current and fly height values will be
tweaked in the current zone on the head or heads specified by parameter 2.
Default: None
This parameter is a bit significant value that specifies how the channel
temperature adjustment are to be applied. The bits are defined as follows:
If this bit is equal to 1, the read heat, write heat and preheat
will not be tweaked with the temperature. However the heat values
in the working memory will be updated with the value from the RAP
in the memory. If this bit is equal to 0, the heat values will be
tweaked with the tmeperature.
Range: 0 to 0xFFFF
5 - Preheat
Default: None
6 - Write Heat
This parameter specifies the write heat to apply for temperature tweaking.
This parameter is only valid if bit 1 of parameter 4 is entered.
This parameter is only valid if parameters 5, 6, 7 are all entered.
Default: None
7 - Read Heat
This parameter specifies the read heat to apply for temperature tweaking.
This parameter is only valid if bit 1 of parameter 4 is entered.
This parameter is only valid if parameters 5, 6, 7 are all entered.
Default: None
Output Data:
"DiagError aaaaaaaa"
where
where
"DiagError aaaaaaaa"
where
"WL = a.bbbbbbsEscc"
"dCT = d.ffffffsEsgg"
"Read Fly Height = h.iiiiiisEsjj"
"Write Fly Height = k.llllllsEsmm"
"Preheat = hh, Write heat = hh, Read heat = hh"
where
hh are heater DAC values for preheat, write heat, and read heat.
Revision History:
Write CHS
Availability:
Level 2 , 'W'
Level 7 , 'W'
Quick Help:
Write CHS, W[Sec],[NumSecs],,[PhyOpt],[Opts]
Description:
This command writes data to the disk starting at the specified sector on the target
track for the specified number of sectors. The sectors are written with the data
contained in the Diagnostic Write Buffer.
Input Parameters:
If any value is entered for Parameter 3, this parameter contains the physical
sector address of the first sector to write, else this parameter contains the
User Area logical sector address of the first sector to write.
Default: 0
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the Sector Address was entered and the Transfer Length was not entered,
then only the specified sector will be written.
If both the Sector Address and Transfer Length are not entered, then the
Transfer Length will be set based on the Test Space that is selected.
If the Random Transfer Length option is selected, a random value will be
used that is less than or equal to the number of sectors remaining on the
track. If the Random Transfer Length option is not selected, the number
of sectors remaining on the track will be written.
2 - not used.
Type: None
Range: None
Default: None
If any value is entered for this parameter, then Parameter 0 specifies a physical
sector address, else Parameter 0 specifies a User Area logical sector address.
Range: 0 to 0xFFFF
Default: None
4 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the sectors in the Test Space will be
written, else only the sectors specified by Parameters 0 and 1 will
be written.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the write operation will
continue and attempt to write all of the requested sectors. Each
error encountered will be displayed.
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To write a single logical sector
(in this case logical sector 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>W23
Example #2:
To write multiple logical sectors
(in this case logical sectors 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>W23,4
Example #3:
To write all of the logical sectors on a track
(in this case all logical sectors on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>W
Example #4:
To write all of the logical sectors on multiple tracks
(in this case all logical sectors on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be written.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>W
Example #5:
To write all of the logical sectors on a track and continue on error
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0
F3 2>W,,,,1
Example #6:
To write all of the logical sectors in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 2>W,,,,11
Example #7:
To write a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>W32,,,1
Example #8:
To write multiple physical sectors
(in this case physical sectors 32 to 35 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>W32,4,,1
Example #9:
To write all of the physical sectors on a track
(in this case all physical sectors on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 2>W,,,1
Example #10:
To write a single logical sector with data at a specific sector offset in the
diagnostic write buffer
(in this case logical sector 23 on logical cylinder 45 head 1,
with data at the sector offset of 5 in the diagnostic write buffer)
F3 2>A0
F3 2>AF,5
F3 2>S45,1
F3 2>W23
Example #11:
To rotate the buffer sector offset by 1 and write a single logical sector with data at
the rotated sector offset in the diagnostic write buffer
(This example assumes user ran the Example #10 above right before this example,
in this case logical sector 24 on logical cylinder 45 head 1,
with data at the sector offset of 6 in the diagnostic write buffer)
F3 2>W24,,,,4
Revision History:
Quick Help:
Display Preamp Head Resistance
Description:
This command measures and displays the resistance of all heads.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the Head Resistance information for each head will be displayed
as follows.
where
Revision History:
Availability:
Level 2 , 'Y'
Level 7 , 'Y'
Level A , 'Y'
Level F , 'Y'
Quick Help:
Set Retries - DERP, Y[Mode],[MaxRdRetries],[MaxWrtRetries],[OtcTLevel],[Options]
Description:
This command allows the user to specify the error recovery parameters that will be used
for subsequent diagnostic commands. (This version of the Set Retries command is only
available if the drive supports DERP! To know whether your drive supports DERP, issue
the Online "^L" command to see a list of features supported by the drive.)
Input Parameters:
This parameter specifies the error recovery mode to be used. The following
error recovery modes are available:
0 = Maximum Normal
1 = Maximum Full
2 = Default Normal
3 = Default Full
4 = Minimum Normal
5 = Minimum Full
6 = Simple Retries
7 = Mini-Cert / Data Scrub
The Maximum Error Recovery Modes (0 and 1) are typically used for system
information recovery.
The Default Error Recovery Modes (2 and 3) are typically used by the native
interface.
The Minimum Error Recovery Modes (4 and 5) are typically used for diagnostic
and media certification operations.
The Normal Error Recovery Modes (0, 2 and 4) should be used for multiple sector
transfers. The retry steps for these modes employ less extreme tweaks to recover
the data. This increases the chance of successfully reading subsequent sectors
without resetting tweaks.
The Full Error Recovery Modes (1, 3 and 5) should be used for single sector
transfers. The retry steps for these modes employ more extreme tweaks to
recover the data. The tweaks used by these modes would make it difficult to
read subsequent sectors without error.
The Simple Error Recovery Mode (6) is a "Normal" type error recovery mode but with
no additional options enabled. Essentially, this is free retries applied during
DERP Reads.
The Mini-Cert / Data Scrub Recovery Mode (7) is used during the reallocation
operation to perform defect verification of the target block, typically performing
a reduced set of read or write retries.
Error Recovery Mode 2 (Default Normal) is the default configuration used by the
native interface (aka, "Interface Level Retries")
TIP: Setting the Error Recovery Mode without setting any other parameters will
restore the default settings for the specified Error Recovery Mode.
Range: 0 to 7
Default: If this parameter is not entered, the current error recovery mode
will not be changed.
If entered, this parameter specifies the maximum allowed read retry count. NOTE:
Specifying this parameter will cause the corresponding Error Recovery Options bit
to be set that enables the use of this value.
Range: 0 to 0xFFFF
Default: If this parameter is not entered, the maximum allowed read retry count
for the specified error recovery mode will not be changed.
If entered, this parameter specifies the maximum allowed write retry count. NOTE:
Specifying this parameter will cause the corresponding Error Recovery Options bit
to be set that enables the use of this value.
Range: 0 to 0xFFFF
Default: If this parameter is not entered, the maximum allowed write retry count
for the specified error recovery mode will not be changed.
If entered, this parameter specifies the ECC T-Level to be used for on-the-fly
correction. Although any value from 0x00 to 0xFF may be entered, the diagnostic
will automatically round down to the nearest available value from the entered
value. NOTE: Specifying this parameter will cause the corresponding Error Recovery
Options bit to be set that enables the use of this value.
Range: 0 to 0xFF
Default: If this parameter is not entered, the on-the-fly correction ECC T-Level
for the specified error recovery mode will not be changed.
If entered, this parameter specifies the options that are allowed to be set for
the Error Recovery system. The definition of each bit is specified below:
If set, restrict servo flaw coasting during a read only if one of the
following conditions applies:
1) The failed block is not associated with a known grown servo flaw
2) New servo flaws are detected on the target track
3) Forced servo coast tweaks
If set, restrict servo flaw coasting during a write only if one of the
following conditions applies:
1) The failed block is not associated with a known grown servo flaw
2) New servo flaws are detected on the target track
3) Forced servo coast tweaks
If set, error recovery will terminate when the retry step is equal
to the early exit retry step.
If set, all retry tweak steps will be disabled for normal error recovery
modes.
If set, the hidden retry steps will be disabled for the full error
recovery modes. The first 9 steps of the full error recovery modes
are defined as hidden retries.
If set, all retry steps will be disabled for the full error recovery
modes.
If set, the retry tweaks will not be undone after the retry completes.
Bit 11: Disable on-the-fly ECC correction - normal retry tweak steps.
Bit 12: Disable on-the-fly ECC correction - full-hidden retry tweak steps.
Bit 13: Disable on-the-fly ECC correction - full retry tweak steps.
If this bit is set and Mode Options Bit 15 is also set, a specified
error recovery step will be used for the initial sector access.
Bit 22: Enable selected maximum retry counts in non-User media partition.
If set, the maximum read and write retry counts that have been enabled
by Bits 20 and 21 will be applied to retries in non-user partitions.
Range: 0 to 0xFFFFFFFF
Default: If this parameter is not entered, the Error Recovery Options for the
specified error recovery mode will not be changed.
Output Data:
"DiagError aaaaaaaa"
where
" B23: (f) gggggg P3: Selected OTF ECC T-level = jj"
" B22: (f) gggggg Max Retries In Non-User Partition"
" B21: (f) gggggg P1: Max Write Retries = hh"
" B20: (f) gggggg P2: Max Read Retries = ii"
" B03: (f) gggggg Restricted Servo Flaw Coasting during Read"
" B02: (f) gggggg xfer of Uncorrectable Sectors"
" B01: (f) gggggg Min OTF ECC Correction"
" B00: (f) gggggg Max OTF ECC Correction"
where
eeeeee are the Error Recovery Options that are selected for the current Error
Recovery Mode
gggggg is a string indicating whether the feature controlled by the options bit is
enabled or disabled
hh is the maximum number of allowable write retries for the current Error
Recovery Mode
ii is the maximum number of allowable read retries for the current Error
Recovery Mode
jj is the ECC T-Level to be used for On-The-Fly Correction for the current
Error Recovery Mode
kk is the Selected Error Retry Step for the current Error Recovery Mode
Revision History:
Availability:
Level 2 , 'Z'
Level 3 , 'Z'
Level 7 , 'Z'
Level 8 , 'Z'
Level F , 'Z'
Quick Help:
Spin Down Drive, Z
Description:
This command spins the drive down.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
In addition, one of the following strings will be output to indicate the current Spin
State.
The elapsed time for the spin operation will be displayed as follows.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
where
If a spin error occurred and the Verbose Formatted ASCII Data Output Mode is selected,
the Verbose Mode option bits will enable the following data to be output when set.
Bit 0-6: NA
Bit 7: Enable the Servo Event Log to be displayed
Bits 31-8: NA
If Bit 7 is set, the contents of the Servo Event Log will be displayed as follows.
where
Revision History:
Erase Track
Availability:
Level 7 , 'b'
Quick Help:
Erase Track, b[AdjacentTrkCnt],[EraseCntPerTrk],[AcEraseOpt]
Description:
This command erases the target track and the specified number of tracks on each side
of the target track.
Input Parameters:
This parameter specifies the number of adjacent tacks on each side of the target
track to be erased.
Range: 0 to 0xFFFF
Default: 0
This parameter specifies the number of times each track should be erased.
Range: 0 to 0xFFFF
Default: 1
2 - AC Erase Option.
If any value is entered for this parameter, an AC erase will be performed, else a
DC erase is performed.
Default: None
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level 7 , 'c'
Quick Help:
Off Track Capability, c[Sec],[NumSecs],[SecIncrement],[Offset]
Description:
This command is used to test the drive's ability to read offtrack.
Input Parameters:
0 - Starting Sector
Range: 0 to 0xFFFFFFFF
Default: None
1 - Sector Count
Range: 0 to 0xFFFFFFFF
Default: None
2 - Sector Increment
Range: 0 to 0xFFFF
Default: None
This input specifies how far offtrack the test will start
and finish.
Range: 0 to 0x200
Default: None
Output Data:
"DiagError aaaaaaaa"
where
"88889999AAAABBBBCCCCDDDDEEEEFFFF000011112222333344445555666677778"
"wedge log (phy) 048C048C048C048C048C048C048C048C048C048C048C048C048C048C048C048C0"
"aaa bbbb(cccc) xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx dddd ee ffff" (repeated)
...
"Average gggg hh iiii"
where
8888... these are two lines of hex digits representing offset information. The offset is
048C... read from up to down. The example to the left shows 80, 84, 88, and 8C.
ee is the midpoint between the left and right edges of the bathtub.
xx..xx represents the results of each sector being tested. The results are shown
with the following character codes.
. -> Read OK
* -> Read error
| -> Read OK at track centerline
+ -> Read error at track centerline
Examples:
Example #1:
To test offtrack capability on the current track, starting at sector 1B and testing 5
sectors, with a sector increment of 1, and an offset range of -80 to 80.
F3 7>c1B,5,1,80
Revision History:
Availability:
Level 7 , 'g'
Quick Help:
Sector Based BER, g[sctr],[len],[option]
Description:
This routine measures the bit error rate for each sector in the range
specified.
Rap Interaction:
This command only works properly if the LBA INCREMENT ENABLE bit is cleared in RAP.
This bit will eventually be moved out of RAP, but if a drive has this bit in RAP
and set, it must be cleared manually.
To check the bit:
7> I,1,4,2
look at the second bit of 2D5
To clear the bit (example: register had 22)
7> I20,1,4,2,13
7> w2,,22 < saves adaptives to flash >
Input Parameters:
0 - Start sector
Range: 0 to FFFFFFFF
Default: 0
1 - Sector Count
Range: 0 to FFFFFFFF
Default: Whole track
2 - Loop Count
Range: 0 to FFFFFFFF
Output Data:
The following information will be displayed:
Where
Example #1:
To read sectors 0 - 0x7F each 0x100 times:
7> g0,80,100
"Suspicous LBA tag" occurs if the logging system reports an LBA that
has not been read. Retrying is recommended.
"Error code" reports any error experienced during execution of the command.
Revision History:
1.0 Intial Revision
Availability:
Level 7 , 'h'
Quick Help:
Mark Media Flaw, h[PhyCyl],[Hd],[PhySec],[UndisturbedRadius],[EraseBandTrks],[PtrLen],[WgSpec],[Od/Id]
Description:
This command marks tracks around an target area so that the target area may be found
after the disk is developed.
Input Parameters:
0 - Cylinder
This input specifies the physical cylinder to be marked. This cylinder will
not be written.
Range: 0 to 0xFFFFFFFF
Default: none
1 - Head.
Range: 0 to 0xFFFF
Default: none
Range: 0 to 0xFFFFFFFF
Default: none
3 - Undisturbed Radius
This input specifies how many tracks on each side of the defect are left undisturbed
before the erase tracks begin.
Range: 0 to 0xFFFFFFFF
Default: 0xF
This input specifies how many tracks wide the full track erase mark will be. This
value must be at least three because the erase operation affects a minimum of three
tracks.
Range: 3 to 0xFFFFFFFF
Default: 0x1E
5 - Pointer Length
This input specifies how many tracks wide the single wedge erase pointer
will be. This pointer appears both inside the inner erase bands and outside the
outer erase bands.
Range: 0 to 0xFFFFFFFF
Default: 0x3C
Range: 0 to 0xFFFFFFFF
7 - OD / ID Specifier
This input indicates whether to mark the OD, the ID, or both.
Range: 0 to 0xFFFFFFFF
Output Data:
"DiagError aaaaaaaa"
where
Example #1:
To mark the wedge holding sector 17h of physical track 90, head 0:
F3 7>h90,0,17
or
F3 7>h90,0,17,,,,0
Example #2:
To mark the wedge containing 7300h symbols from index of physical track 90, head 0:
F3 7>h90,0,7300,,,,1
Example #3:
To mark wedge 8 of physical track 90, head 0:
F3 7>h90,0,8,,,,2
Example #4:
To mark wedge 5 of physical track 90, head 0, leaving 0xC tracks undisturbed on either
side of the defect, erasing 0x20 tracks on each side, and making pointers 0x55
tracks long:
F3 7>h90,0,5,C,20,55,2
Example #5:
To mark the wedge holding sector 5 of physical track 20h, head 1, using only tracks
toward the ID from the defect:
F3 7>h20,1,5,,,,,2
Revision History:
Availability:
Level 1 , 'G'
Level 7 , 'i'
Quick Help:
Generic Read/Write Request, G[Parm0],[Parm1],[Parm2],...[Parm9]
Generic Read/Write Request, i[Parm0],[Parm1],[Parm2],...[Parm9]
Description:
The Generic Read/Write Request commmand provides a pass through to the Read/Write
subsystem. The command parameters are passed to the Read/Write subsystem without
being interpreted.
Input Parameters:
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Range: 0 to 0xffffffff
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level 7 , 'm'
Quick Help:
Display Single Track Directed Offline Scan Information, m[clr,min scn]
Description:
This command is used to display Single Track Directed Offline Scan information.
If "7> m?" shows a revision less than 8000.0000, please see "Display And Modify
Directed Offline Scan Information".
Input Parameters:
This parameter indicates whether to clear the single track DOS write counters.
If this value is 0x100, the table will be cleared and written to disk, and no
values will be displayed. Any other value is ignored.
Default: 0
Range: 0 - 0xFFFFFFFF
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the following information will be displayed. More than one
line may be displayed.
where
aaa - Index of table entry. The entries are shown in oldest (top) to newest (bottom)
order. The index is useful only for identifying a table entry to track how
it is reused.
eeeeeeee - Flags:
0x01 DOS WRITE COUNTER ATI1 Adjacent track scan due on one side
0x02 DOS WRITE COUNTER ATI2 Adjacent track scan due on the other side
0x04 DOS WRITE COUNTER STE1 Multiple track scan due on one side
0x08 DOS WRITE COUNTER STE2 Multiple track scan due on the other side
0x10 DOS_ATI_OUGHT_TO_SCAN ATI Ought To scan is pending or running
0x20 DOS_ATI_MUST_SCAN ATI Must scan is pending or running
0x40 DOS_STE_OUGHT_TO_SCAN STE Ought To scan is pending or running (Not Supported Yet)
0x80 DOS_STE_MUST_SCAN STE Must scan is pending or running
0x200 DOS_WRITE_FAULT_OUGHT_ATI_SCAN Write Fault ATI Ought To scan perfomed, pending or running
0x400 DOS_WRITE_FAULT_OUGHT_ATI_SCAN Write Fault ATI Must scan perfomed, pending or running
0x01 DOS WRITE COUNTER RETAIN Retain this entry
0x02 DOS WRITE COUNTER RECALC_LBA serpent calculation done
0x01 DOS WRITE COUNTER ATI1 Adjacent track scan due on one side
0x02 DOS WRITE COUNTER ATI2 Adjacent track scan due on the other side
0x04 DOS WRITE COUNTER STE1 Multiple track scan due on one side
0x08 DOS WRITE COUNTER STE2 Multiple track scan due on the other side
0x10 DOS_WRITE_FAULT_OUGHT_ATI_SCAN Write Fault ATI Ought To scan perfomed, pending or running
0x20 DOS_WRITE_FAULT_OUGHT_ATI_SCAN Write Fault ATI Must scan perfomed, pending or running
0x10 DOS_ATI_OUGHT_TO_SCAN ATI Ought To scan is pending or running
0x20 DOS_ATI_MUST_SCAN ATI Must scan is pending or running
0x10 DOS_ATI_OUGHT_TO_SCAN ATI Ought To scan is pending or running
0x20 DOS_ATI_MUST_SCAN ATI Must scan is pending or running
0x10 DOS_ATI_OUGHT_TO_SCAN ATI Ought To scan is pending or running
0x20 DOS_ATI_MUST_SCAN ATI Must scan is pending or running
0x10 DOS_ATI_OUGHT_TO_SCAN ATI Ought To scan is pending or running
0x20 DOS_ATI_MUST_SCAN ATI Must scan is pending or running
0x40 DOS_STE_OUGHT_TO_SCAN STE Ought To scan is pending or running (Not Supported Yet)
0x80 DOS_STE_MUST_SCAN STE Must scan is pending or running
xxxxxxxx - Minimum LBA written for this write count and range. THIS FIELD NOT PRESENT IN
ALL FIRMWARE.
yyyyyyyy - Maximum LBA written for this write count and range. THIS FIELD NOT PRESENT IN
ALL FIRMWARE.
LBAs: The LBAs are set when a serpent is about to be scanned and are set to
F's when the scan is complete. A user is very unlikely to see anything
but 0 ( has not been scanned since power up ) or FFFF ( scan complete )
in these fields.
hhhhhhhh - The first LBA of the region to be scanned on one side of the writes
iiiiiiii - The last LBA of the region to be scanned on one side of the writes
kkkkkkkk - The first LBA of the region to be scanned on the other side of the writes
mmmmmmmm - The last LBA of the region to be scanned on the other side of the writes
Examples:
Example #1:
To display all non-zero counter values:
F3 7>m
Example #2:
To display counter values greater than 8:
F3 7>m,9
Example #3:
To clear the DOS table and write it to disk:
F3 7>m100
Revision History:
NOTE: The high bit of the revision being set indicates this is single track DOS,
not original DOS.
Availability:
Level 7 , 'r'
Level T , 'R'
Quick Help:
Read Non-Volatile Adaptive Parameters, r[Opts]
Description:
This command reads the specified adaptive parameters from non-volatile memory.
Input Parameters:
If this bit is set the Servo Adaptive Parameters (SAP) will be read
from non-volatile memory.
Range: 0 to 0xffffffff,
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level 7 , 's'
Level F , 't'
Quick Help:
Write Peripheral Register - channel or preamp, s[OpType],[RegAddr],[RegValue],[RegMask],[RegPagAddr]
Write Peripheral Register - channel or preamp, t[OpType],[RegAddr],[RegValue],[RegMask],[RegPagAddr]
Description:
This command writes the specified value to the specified register in the specified
peripheral device.
Input Parameters:
0 - Operation Type.
Range: 0 to 7
Range: 0 to 0xFFFF
Default: None
2 - Register Value.
This parameter specifies the value with which the specified register is to be
written.
Range: 0 to 0xFFFF
Default: 0
3 - Register Mask.
This parameter specifies the bit mask with which the specified value is to be
written into the register.
Range: 0 to 0xFFFF
Default: 0xFFFF
Range: 0 to 0xFFFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
"Channel Locked"
If the Read Channel was unlocked, the following message will be displayed.
"Channel Unlocked"
If no error occurred and the Preamp was locked, the following message will be
displayed.
"Preamp Locked"
If no error occurred and the Preamp was unlocked, the following message will be
displayed.
"Preamp Unlocked"
where
If a Read Channel register was written, the following information will be displayed.
where
Revision History:
Availability:
Level 7 , 't'
Quick Help:
Read Peripheral Register - channel or preamp, t[OpType],[RegAddr],[NumRegs],[RegMask],[RegPagAddr]
Description:
This command reads and displays the contents from the specified register(s) from the
specified peripheral device.
Input Parameters:
0 - Operation Type.
Range: 0 or 1
Range: 0 to 0xFFFF
Default: 0
Range: 0 to 0xFFFF
Default: 1
3 - Register Mask.
This parameter specifies the bit mask with which the specified field of the
register value is to be read from the register, when Parameter 3, Number of
Registers to Read, is equal to one.
Range: 0 to 0xFFFF
Default: 0xFFFF
Range: 0 to 0xFFFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
If a single Preamp register was read, the following information will be displayed.
where
If multiple Preamp registers were read, the following information will be displayed.
"Preamp"
" 0 1 2 3 4 5 6 7 8 9 A B C D E F"
"cc: dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd"
where
If a single Read Channel register was read, the following information will be displayed.
where
If multiple Read Channel registers were read, the following information will be
displayed.
"Read Channel"
" 0 1 2 3 4 5 6 7 8 A B C D E F"
"cccc: dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd"
where
Revision History:
Availability:
Level 7 , 'u'
Quick Help:
Enable/Disable Write Fault, u[Op]
Description:
This command enables or disables Write Fault errors.
Input Parameters:
0 - Operation.
If Parameter 0 is not set, toggle the current state (not currently supported)
If Parameter 0 is set to 0, turn write faults off
If Parameter 0 is set to non-0, turn write faults on
Range: 0 to 1
Output Data:
If no error occurred and write faults were disabled, the following message will be
displayed.
If no error occurred and write faults were enabled, the following message will be
displayed.
If the user tried to use the deprecated toggle mode, an error will be set and the
following message will also be displayed.
Revision History:
Availability:
Level 7 , 'w'
Level T , 'W'
Quick Help:
Save Adaptives To Flash, w[Seg],,22
Description:
The Save Adaptives To Flash command writes the adaptives currently in memory to flash.
This command takes about 10 seconds to complete.
Input Parameters:
NOTE: If you specifiy an adaptive set that the drive does not have in its flash,
the drive will flash LED.
NOTE: This command will only work once per power cycle.
Range: 0 to 0xFFFFFFFF
Default: 0
1 - Not used.
Range: 0x22
Default: None
Output Data:
"DiagError aaaaaaaa"
where
Examples:
Example #1:
To save current RAP values to flash:
F3 7>w2,,22
or F3 T>W2,,22
Example #2:
To save current CAP values to flash:
F3 7>w0,,22
or F3 T>W0,,22
Revision History:
Availability:
Level 2 , 'x'
Level 7 , 'x'
Quick Help:
Display Zone Information, x[Partition],[Hd],[Zone],[Options]
Description:
This command displays information about the media partitions (System and User) and
data zones.
Input Parameters:
0 - Partition.
This parameter specifies the partition for which the zone information is to
be displayed.
Range: 0 or 0xFF
Default: If this parameter is not entered, the information will be displayed for
the User and System Partition.
1 - Head.
This parameter specifies the head for which the zone information is to be displayed.
Range: 0 to 0xff
Default: If this parameter is not entered, the zone information will be displayed
for all heads.
2 - Zone.
This parameter specifies the zone for which the zone information is to be displayed.
Range: 0 to 0xff
Default: If this parameter is not entered, the zone information will be displayed
for all zones.
3 - Options.
This parameter is a bit significant value that selects the following options:
Range: 0 to 0xffffffff
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and the Display Zone Tables option (Parameter 3 bit 1) or the
Display Zone Tables with Wedge Operation NRZ Symbols option (Parameter 3 bit 0) was
selected, the following information will be displayed.
"User Partition"
" LBAs CCCCCCCC-DDDDDDDD"
" PBAs EEEEEEEE-FFFFFFFF"
" HdSkew GGGG CylSkew HHHH"
" ZonesPerHd II"
"System Partition"
" LBAs cccccccc-dddddddd"
" PBAs eeeeeeee-ffffffff"
" HdSkew gggg CylSkew hhhh"
" ZonesPerHd ii"
where
CCCCCCCC is the first Logical Block Address (LBA) of the User Partition.
DDDDDDDD is the last Logical Block Address (LBA) of the User Partition.
EEEEEEEE is the first Physical Block Address (PBA) of the User Partition.
FFFFFFFF is the last Physical Block Address (PBA) of the User Partition.
GGGG is the Head Skew in data wedges for the User Partition.
HHHH is the Cylinder Skew in data wedges for the User Partition.
J is the Logical Head Address of the User Partition zone information to follow.
RRRRRR is the starting physical cylinder address of the User Partition
data zone.
UUUU is the number of physical sectors per track in the User Partition data
zone.
VVVV is the size of a data wedge in NRZ Symbols for the User Partition data zone.
WWWWWWWW is the size of a track in NRZ Symbols for the User Partition data zone.
cccccccc is the first Logical Block Address (LBA) of the System Partition.
dddddddd is the last Logical Block Address (LBA) of the System Partition.
eeeeeeee is the first Physical Block Address (PBA) of the System Partition.
ffffffff is the last Physical Block Address (PBA) of the System Partition.
gggg is the Head Skew in data wedges for the System Partition.
hhhh is the Cylinder Skew in data wedges for the System Partition.
j is the Logical Head Address of the System Partition zone information to follow.
uuuu is the number of physical sectors per track in the System Partition data
zone.
vvvv is the size of a data wedge in NRZ Symbols for the System Partition data zone.
wwwwwwww is the size of a track in NRZ Symbols for the System Partition data zone.
If the Display Zone Tables with Wedge Operation NRZ Symbols option (Parameter 3 bit 0)
was selected, the following additional information will be displayed for each User and
System partition zone.
where
YYYY is the number of NRZ Symbols for an Unformatted Direct Wedge Write operation
in the zone.
ZZZZ is the number of NRZ Symbols for an Unformatted Direct Wedge Read operation
in the zone.
%%%% is the number of NRZ Symbols for an Formatted Direct Wedge Write operation
in the zone.
$$$$ is the number of NRZ Symbols for an Formatted Direct Wedge Read operation
in the zone.
Note: The terms zone group and minizone are used in the description of the command
output. The following is an attempt to define these terms.
A zone group is a collection of zones, one from each head. The zone group boundary
is defined to be at a point where one or more heads encounters a frequency switchpoint
(zone boundary). Therefore, by definition, all minizones in a zone group have the
same capacity in PBAs.
The term minizone and serpent are used interchangeably in the code. "Serpent"
originates from our serpentine format. If you view the direction of increasing PBAs,
it looks like a snake or a "serpent". A minizone is equivalent, and is the
fundamental building block of a zone group. Stated another way, a zone group is
created from a collection of minizones.
If no error occurred and the Display R/W Zone Group Information option (Parameter 3
bit 2) was selected, the following information will be displayed.
"NumPBAs: jjjjjjjj"
"NumLBAs: kkkkkkkk"
where
CCCC is the Dependent User Partition zone group number. The information that
follows on the line is for this zone group. The display will contain a
line for each zone group in the User Partition.
DDDDDDDD is the first PBA in the User Partition zone group. In the PBA-to-CHS
translation, the first step is to determine which zone group contains
the target PBA, so this is the key field that is searched when finding
the greatest less than or equal Dependent User Partition Zone Group Table
entry.
EEEEEEEE is the cumulative slip that corresponds to the first LBA in the User
Partition zone group. It is used to determine the first LBA in the zone
group (PBA = LBA + CSlip) when it is requested.
FFFFFFFF is not part of the Dependent User Partition Zone Group Table but is
reported here for convenience as we typically want to associate an
LBA with a zone group. The StLba is simply the StPba minus the CSlip.
GGGGGGGG is the accumulation of sectors per track times tracks per minizone for
all heads on the drive in the User Partition zone group. Inorder to
calculate the target minizone for a target PBA, we first subtract the
Zone Group Start PBA from the target PBA and then divide by SecPerMZ.
Note that each minizone in the zone group has the exact same capacity
as the zone group boundary is defined to occur when one or more heads
changes zones (frequencies). This results in a different track capacity
(sectors per track) and therefore a unique number of PBAs per minizone.
HHHHHHHH is the first minizone index in the User Partition zone group. Once we
find the zone group that contains the target PBA, we need to try to
associate that PBA with a position (CHS). Finding the target minizone
is the first step in that process.
IIII to KKKK
is an array of User Partition target zones on a per-head basis. When we
translate to an LBA in a particular zone group and that LBA exists on
a particular head, we reference the target head's offset in this array
to determine the channel zone for the target head. This essentially tells
us which set of channel and preamp parameters to assert when configuring
the hardware for the target LBA. Note that as you look down the column
for each head, the index will range from zero to number of zones per head.
LLLLLL to NNNNNN
is an array of User Partition zone group starting R/W logical track
numbers on a per-head basis. It is valid for both Variable TPI by Head
Zone configurations and Non-Variable TPI by Head Zone configurations.
For the Non-Variable TPI by Head Zone configuration, this field is not
part of the R/W Dependent User Zone Group Table structure, but is given
here for consistency and convenience. In this case, the value is simply
the product of the StartMZ for the zone group and the TPI scaling factor
(logical tracks per minizone) for the head. For the Variable TPI by Head
Zone configuration, this value is the accumulation of all logical tracks
in previous zone groups for the target head. In this configuration it is
part of the R/W Dependent User Zone Group Table for calculation efficiency
and convenience. When performing an LBA-to-CHS translation, the target
track starts with this track number, plus the tracks per minizone for this
zone times the minzone offset, plus the track offset into the target
minizone.
cccc is the System Partition zone group number. The information that follows
on the line is for this zone group. The display will contain a line for
each zone group in the System Partition.
ffffffff is the cumulative slip that corresponds to the first LBA in the System
Partition zone group.
gggggggg is the number of spare sectors in the System Partition zone group.
If no error occurred and the Display R/W Zone Information option (Parameter 3 bit 3)
was selected, the following information will be displayed.
where
DDDDDDDD is the number of sectors (PBAs) per track in the User Partition zone.
The track capacity (SPT) is determined based on zone frequency and
format budget overhead.
EEEEEEEE is the number of symbols (RClk) periods that are available in the wedge.
This parameter is primarily used for supersector operations and is the
"direct mode" value. For "normal" mode, this value should be muliplied
by the inverse of the channel coderate (60/61) to determine the number
of "gapped" symbols are available in the wedge. The number of symbols in
the wedge is typically the zone frequency applied to the SGATE-to-SGATE
time, minus the number of symbols that correspond to the SGATE time, minus
the sum of gaps (format budget gap after SGATE plus the gap before SGATE).
Revision History:
Availability:
Level 2 , 'y'
Level 7 , 'y'
Level A , 'y'
Level F , 'y'
Quick Help:
Set DERP Retry State, y[Type],[PathState],[RetryStateCnt],[LoopCnt1],[LoopCnt2]
Description:
This command allows the user to specify the DERP Retry State that will be used by the
Read/Write firmware subsystem's Error Recovery system during subsequent diagnostic
commands that access the disc. (This command is only available on drives that support
DERP! To know whether your drive supports DERP, issue the Online "^L" command to see a
list of features supported by the drive.)
Input Parameters:
This parameter specifies the type of error that the DERP Error Recovery system will
assume for subsequent diagnostic operations. Valid values for this parameter are
given below:
0 = UNDETERMINED
1 = DATA_ERROR
2 = SYNC
3 = TA
4 = DATAORTA
5 = SYNCTA
6 = SYNCORDATA
Default: None
This parameter specifies the path count from the current retry sequence that the DERP
Error Recovery system will assume for subsequent diagnostic operations. The meaning
of the Path State is dependent on the Error Type (parameter 0).
Range: 0 to 0xFF
Default: None
This parameter specifies the retry path count from the current retry sequence that
the DERP Error Recovery system will assume for subsequent diagnostic operations.
Range: 0 to 0xFF
Default: None
This parameter specifies the first loop counter that the DERP Error Recovery system
will assume for subsequent diagnostic operations.
Range: 0 to 0xFF
Default: None
This parameter specifies the second loop counter that the DERP Error Recovery system
will assume for subsequent diagnostic operations.
Range: 0 to 0xFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
If the Selected DERP Retry State is Enabled, then the following will also be displayed.
where
Revision History:
Availability:
Level 8 , 'C'
Quick Help:
Servo Diag Sub Cmds, C[SubCmd],[Parm0],[Parm1],[Parm2]
Description:
The Servo Diagnostic Sub Commands execute the following servo diagnostic sub commands:
8>C05: Set Seek Delay command. This command sets the seek delay, logical / physical
seek type, and write / read seek settle for other 8>C seek related commands
(such as 8>C08 and 8>C0C).
8>C08: Random Seeks command. This command performs random seeks across the entire disk
or just by switching heads only.
8>C0C: Seek Between 2 Physical Cylinders command. This command performs seeks between
2 physical tracks at the same head.
8>C15: Change Write Threshold command. This command changes write threshold.
Input Parameters:
This parameter specifies the ID of the servo diag sub command to be executed
Range: 0 to 0xFFFF
Default: None
Range: 05h
Default: None
1 - Seek Delay in the format of servo sectors
Range: 0 to 0xffff
Default: None
2 - Seek Type
This parameter specifies the new seek type. Its Bit 0 controls slow/fast settle
setting and the Bit 1 controls the logical/physical seek setting. If this
parameter is not entered, then the seek type is not going to be changed.
Range: 0 to 0xffff
Default: None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the Set Seek Delay results will be displayed as follows.
where
Input Parameters:
This parameter indicates if the seek destination is random head only. When this
parameter is not entered or entered as 0, both track number and head number are
generated randomly, otherwise, only head number changes randomly while the track
number stays the same.
Range: 0 to 0xffff
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, seek average time is displayed with the following format:
where
Note: The beginning and ending chars are rotating all the time to reflect the
fact that the command is running.
Input Parameters:
Range: 0 to 0xffffffff
Range: 0 to 0xffffffff
Default: Maximum physical cylinder at the current head
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, seek average time is displayed with the following format:
where
Note: The beginning and ending chars are rotating all the time to reflect the
fact that the command is running.
Input Parameters:
1 - Position Threshold
Range: 0 to 0xffff
Default: None
Range: 0 to 0xffff
Default: None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the Servo Write Fault Thresholds will be displayed as follows.
where
Revision History:
Availability:
Level 3 , 'R'
Level 8 , 'R'
Quick Help:
Read Current Servo Destination, R
Description:
This command will display the Current Servo Destination information. The firmware
components that make up the current position will also be displayed. These include:
Destination Track Id, Destination Position, Mr Jog Value, and Offset Value MrJog.
Input Parameters:
None.
Output Data:
"DiagError aaaaaaaa"
where
where
AAAAAAAA is a Q0 number (whole integer) that represents the servo track number.
BBBBBBBB is a Q12 number (12 bits of fractional position) that represents the
offset from DestinationTrackID. This offset includes the read-to-write
offset (aka microjog, reader/writer offset, MR jog, etc.) and any commanded
diagnostic offsets from all sources. It can also span many tracks (there
are 20 bits of whole track information).
EEEEE.EEE is the actual target track with fractional position information that servo
uses for its reference.
Revision History:
Availability:
Level 2 , 'S'
Level 3 , 'S'
Level 4 , 'S'
Level 7 , 'S'
Level 8 , 'S'
Level H , 'S'
Quick Help:
Seek to Logical Cylinder and Head, S[Cyl],[Hd],[Offset],[OffsetUnitsOpt],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified User or System Area logical
cylinder and logical head address. If no address is specified, this command will
seek to the next logical track in the Test Space.
Input Parameters:
If Parameter 4 is not entered, this parameter is the address of the User Area
logical cylinder to which the seek is to be performed. If Parameter 4 is
entered, this parameter is the address of the System Area logical cylinder to
which the seek is to be performed. If both Parameter 0 and 1 are not entered,
a seek will be performed to the next logical track in the Test Space.
Type: Unsigned 32-bit value
Range: 0 to 0xFFFFFFFF
Default: None
If entered, this parameter contains the address of the logical head to which the
seek is to be performed. If both Parameter 0 and 1 are not entered, a seek will
be performed to the next logical track in the Test Space.
Range: 0 to 0xFF
Default: None
Default: 0
This parameter specifies the units of the Track Follow Offset value. If this
parameter is equal to 0, the specified offset will be in units of 1/256th of the
servo track width. If this parameter is equal to 1, the specified offset will
be in units of 0.1% of the data track width.
Range: 0 or 1
4 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write
or write header track follow position.
Range: 0 to 0xFF
5 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, the width of the destination track will be displayed
in Q14 servo counts.
If this bit is set, the channel parameters will not be reloaded into the
channel registers with the seek, else the channel parameters will be
reloaded into the channel registers.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
If a seek mode was specified, the Elapsed Time for the seek operation will be displayed.
The data displayed will be formatted as shown above, under Bit 6 of verbose mode.
Some commands use an output control bit flag (specified in the input parameters above).
If "Output Control Flag- Data Track Width" is set, the following information will be displayed:
where
wwww is the width of a data track in hex and in units of servo position. Q14 scaling,
so 0x4000 is the width of a data track at nominal TPI (before VTPI and warping).
Examples:
Example #1:
To seek to a logical cylinder and head at the read track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1
Example #2:
To seek to a logical cylinder and head at the write track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,1
Example #3:
To seek to a logical cylinder and head at the write header track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,2
Example #4:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in servo counts
(in this case logical cylinder 45 head 1 at an offset of plus 100/256ths of
the servo track width)
F3 2>S45,1,64
Example #5:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in percent of data track width
(in this case logical cylinder 45 head 1 at an offset of -10% of the data track
width)
F3 2>S45,1,FFF6,1
Example #6:
To seek to a logical cylinder and head at the read track follow position and
display the data track width in Q14 servo counts
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,4
Example #7:
To seek to a logical cylinder and head at the read track follow position and
disable reloading of the channel parameters by the seek
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,2
Example #8:
To seek to a system logical cylinder and head at the read track follow position
(in this case logical system cylinder 54 head 0)
F3 2>S54,0,,,,1
Revision History:
Spin Up Drive
Availability:
Level 2 , 'U'
Level 3 , 'U'
Level 8 , 'U'
Level F , 'U'
Quick Help:
Spin Up Drive, U[HoldState],[Hd],[Cyl]
Description:
The command spins up the drive. Optionally, the spin up operation can be paused
in several intermediate states.
Input Parameters:
This parameter specifies the state in which the Spin Up operation is to be held.
0 = Spin up and attempt to track follow on the default cylinder and head.
2 = Release the Spin Hold State. If this option is selected the drive will
spin up to completion and attempt to track follow on the specified cylinder
and head.
4 = Spin up, unlatch the actuator and hold prior to attempting to synchronize
the demodulator to the data on the disk.
5 = Spin up, unlatch the actuator, synchronize the demodulator to the data on
the disk and hold prior to attempting to track follow.
Range: 0 to 0xFF
Default: 0
If the Spin Hold States are being used (Parameter 0 not equal to 0), this
parameter specifies the address of the logical head on which the spin up
operation will attempt to synchronize the demodulator and / or track follow.
If the Spin Hold States are not being used (Parameter 0 not entered or equal
to 0), this parameter specifies the address of the logical head to which a
seek will be performed after the drive is spun up.
Range: 0 to 0xFF
If the Spin Hold States are being used (Parameter 0 not equal to 0), this
parameter specifies the address of the physical cylinder on which the spin
up operation will attempt to track follow. If the Spin Hold States are not
being used (Parameter 0 not entered or equal to 0), this parameter specifies
the address of the physical cylinder to which a seek will be performed after
the drive is spun up.
Range: 0 to 0xFFFFFFFF
Output Data:
"DiagError aaaaaaaa"
where
In addition, one of the following strings will be output to indicate the current Spin
State.
The elapsed time for the spin operation will be displayed as follows.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
where
If a spin error occurred and the Verbose Formatted ASCII Data Output Mode is selected,
the Verbose Mode option bits will enable the following data to be output when set.
Bit 0-6: NA
Bit 7: Enable the Servo Event Log to be displayed
Bits 31-8: NA
If Bit 7 is set, the contents of the Servo Event Log will be displayed as follows.
where
Revision History:
Availability:
Level 2 , 'Z'
Level 3 , 'Z'
Level 7 , 'Z'
Level 8 , 'Z'
Level F , 'Z'
Quick Help:
Spin Down Drive, Z
Description:
This command spins the drive down.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
In addition, one of the following strings will be output to indicate the current Spin
State.
The elapsed time for the spin operation will be displayed as follows.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
where
If a spin error occurred and the Verbose Formatted ASCII Data Output Mode is selected,
the Verbose Mode option bits will enable the following data to be output when set.
Bit 0-6: NA
Bit 7: Enable the Servo Event Log to be displayed
Bits 31-8: NA
If Bit 7 is set, the contents of the Servo Event Log will be displayed as follows.
where
Revision History:
Availability:
Level 8 , 'd'
Quick Help:
Head Smash Test, d[HeadDirection],[AccelerationDuration],[DecelerationDuration],[AccelerationCurrent],[DecelerationCurrent]
Description:
This command is used to perform head smash test towards OD or ID with given acceleration
and deceleration currents / duration.
Input Parameters:
This parameter specifies the direction the head is going to be smashed to. Only 0 or
1 are valid input. The default value is 0 when not entered.
0: Smash head towards OD
1: Smash head towards ID
Range: 0 to 1
Default: 0
1 - Acceleration Duration.
This parameter specifies the duration (in 0.1 ms uint) to be used for head
acceleration. The default value is 10 ( = 10 * 0.1ms = 1ms) when not entered.
Range: 0 to 0xFFFF
2 - Deceleration Duration.
This parameter specifies the duration (in 0.1 ms uint) to be used for head
deceleration. The default value is 10 ( = 10 * 0.1ms = 1ms) when not entered.
Range: 0 to 0xFFFF
3 - Acceleration Current.
This parameter specifies the current (in mA unit) to be used for head acceleration.
The default value is 1000 ( = 1000mA = 1A) when not entered.
Range: 0 to 0xFFFF
4 - Deceleration Current.
This parameter specifies the current (in mA unit) to be used for head deceleration.
The default value is 0 when not entered.
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Examples:
Example #1:
Smash head towards OD with acceleration duration 8 ms (= 50h * 0.1ms), deceleration
duration 1.6 ms (= 10h * 0.1ms), acceleration current 32 mA (= 20h * 1mA), deceleration
current 16 mA (= 10h * 1mA)
F3 8>d,50,10,20,10
Example #2:
Smash head towards OD with acceleration duration 6.4 ms (= 40h * 0.1ms), deceleration
duration as default (= 1 ms), acceleration current 48 mA (= 30h * 1mA), deceleration
current as default (= 0 mA)
F3 8>d0,40,,30
Example #3:
Smash head towards ID with acceleration duration as default (= 1 ms), deceleration
duration 0.8 ms (= 8h * 0.1ms), acceleration current as default (= 1000 mA),
deceleration current 32 mA (= 20h * 1mA)
F3 8>d1,,8,,20
Example #4:
Smash head towards ID with acceleration duration as default (= 1 ms), deceleration
duration as default (= 1 ms), acceleration current as default (= 1000 mA),
deceleration current as default (= 0 mA)
F3 8>d1
Revision History:
QMON Stats
Availability:
Secondary Online , '$'
Quick Help:
QMON Stats
Description:
This command displays iterative channel statistics for each head and zone.
Related Commands:
any level Ctl-W - enables QMON statistics gathering and zeros out the error counters
level L i - L>iFFFA will zero out the error counters.
level L E - L>E,,0 will disable statistics gathering
- L>E,,1 will enable statistics gathering
- L>E,,2 will zero out the error counters
Input Parameters:
None
Output Data:
"Hd Zn Rbit Hard Soft OTF BER Wbit Whrd Wrty CWds Bits BadB itrs LLR syn era non"
" h zz XX.X XX.X XX.X XX.X XX.X XX.X XX.X XX.X XX.X XX.X XX.X XX.X XX.X XX.X XX.X XX.X"
Rbit: SECTOR BASED The number of BITS drive successfully read. This counter
increments by (bytes per sector) * 8 for each sector
successfully read.
Hard: SECTOR BASED Bits successfully read divided by sectors that could not be read.
The count of sectors not read increments by one per set of retries.
Soft: SECTOR BASED Bits successfully read divided by errors that required one or more
retries, including errors that could not be read. The error counter
increments by one per set of retries.
OTF: SECTOR BASED Bits successfully read divided by number of errors that caused the
disk sequencer to stop. The error counter increments by one for each
separate retry.
Wbit: SECTOR BASED The number of BITS drive succesfully written. This counter
increments by (bytes per sector) * 8 once for each sector
successfully written.
Whrd: SECTOR BASED Number of bits successfully written divided by number of write
hard errors. The error counter increments by one each time
the drive fails to write a sector, and it only
increments once per set of retries.
Wrty: SECTOR BASED Number of bits successfully writen divided by errors that
required one or more retries to write or failed to write. The
error counter increments by one per set of retries.
CWds: CODEWORD BASED Number of codewords that read from media. Note
that codewords are not sectors. A codeword is a unit
of user data and correction information. A 4x1K
drive might have four codewords per sector.
BadB: BIT BASED Number of bits read from media divided by number
of bits channel reported in error before correction.
itrs: BIT BASED Iterations: Number of bits read from media divided by
number of extra iterations (beyond one iteration for each
codeword) that the channel used.
LLR: BIT BASED Number of bits read from media divided by Low
Logarithmic Likelihood Ratio count reported by channel.
syn: SECTOR BASED Sync errors: The number of sectors (not codewords) read
from media divided by the number of sync failures.
era: CODEWORD BASED Erasures: Number of codewords read from media divided by the
number of erasures reported by the channel.
BIT BASED means the value is based on the number of bits transferred.
SECTOR BASED means the value is based on the number of user data sectors transferrred.
CODEWORD BASED means the value is based on the number of codewords transferred. Note
that a single user sector may have several codewords.
Revision History:
QMON Counters
Availability:
Secondary Online , '`'
Quick Help:
QMON Counters
Description:
This command displays iterative channel counters for each head and zone.
Related Commands:
any level Ctl-W - enables RW statistics gathering and zeros out the error counters
level L i - L>iFFFD will zero out the error counters.
level L E - L>E,,0 will disable statistics gathering
- L>E,,1 will enable statistics gathering
- L>E,,2 will zero out the error counters
Input Parameters:
None
Output Data:
"Hd Zn Sectors Hard Er Firm Er Soft Er Iters WSectors
WHard WSoft CodeWrds BadB LowLLR syn era non"
" h zz XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXX XXXXXX XXX"
SECTOR BASED means the value is related to the number of user data
sectors transferrred.
Revision History:
Translate PBA
Availability:
Level A , 'C'
Quick Help:
Translate PBA, C[PbaHi],[PbaLow],[NumPbas]
Description:
This command translates the specified Physical Block Address (PBA) to the following:
Note: PBA translations are currently only supported for sectors in the User Area.
Input Parameters:
If Parameter 1 is not entered, then this parameter contains the 32-bit Physical
Block Address to be translated. If Parameter 1 is entered, then this parameter
contains the upper 16-bits of the Physical Block Address to be translated.
Default: 0
1 - PBA Low.
This parameter contains the lower 16-bits of the Physical Block Address to be
translated.
Range: 0 to 0xffff
2 - PBA Count.
Range: 0 to 0xffffffff
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI "
"cccccccc dddddddd eeee ffff gggg hhhhhhhh"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Availability:
Level A , 'D'
Quick Help:
Translate Symbols From Index, D[PhyCyl],[Hd],[Sfi],[NumSfis]
Description:
This function translates the specified Physical Cylinder, Logical Head, Starting Symbol
Offset from Index and Symbol Length to the following:
- LBA (Logical Block Address)
- PBA (Physical Block Address)
- LLL CHS (Logical Cylinder, Logical Head and Logical Sector)
- PLP CHS (Physical Cylinder, Logical Head and Physical Sector)
- Sector Span
- Wedge Address
- Wedge Span
- Zone Number
Input Parameters:
Range: 0 to 0xFFFFFFFF
Default: 0
Range: 0 to 0xFF
Default: 0
Range: 0 to 0xFFFFFFFF
Default: 0
2 - Length In Symbols.
Range: 0 to 0xFFFFFFFF
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI SymLen SecLen WdgLen"
"cccccccc dddddddd eeee ffff gggg hhhhhhhh iiiiiiii jjjjjj kkkkkk"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
kkkkkk is the number of consecutive data wedges that contain one or more
of the specified symbols.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Availability:
Level 2 , 'E'
Level 3 , 'E'
Level 4 , 'E'
Level 7 , 'E'
Level A , 'E'
Level T , 'E'
Quick Help:
Display / Edit Log, E[LogNum],[ErrCodeOrSpecialFuncKey],[SpecialFunc]
Description:
This command displays or modifies the specified Log File.
Input Parameters:
0 - Log Number.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Range: 0 to 0xFFFF
If Parameter 2 is equal to 8, 20 hex, 100 hex, 200 hex or 400 hex, this parameter
must be equal to AA hex to enable the special error log operation specified by
Parameter 2. If Parameter 2 is not equal to 8, 20 hex, 100 hex, 200 hex or 400 hex,
only log entries with the Error Code specified by this parameter will be displayed.
Range: 0 to 0xFFFF
Default: None
If Parameter 2 is equal to 8, the ASCII log will be cleared and ASCII data
entered from the serial port will be stored in the ASCII log. When a
carriage return is entered, the ASCII log will be stored to the log number
specified by Parameter 0.
If Parameter 2 is equal to 10 hex, ASCII data entered from the serial port
will be appended to the end of the ASCII log. Entering a carriage return
terminates the ASCII data to be appended.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
where
kkkkkkkk is the number of symbols from index at which the error occurred
tttttttt is an ASCII String that indicates the partition ( "System" or " User" )
in which the error occurred
If no error occurred and the contents of an ASCII Log are selected to be displayed,
where
TBD
If no error occurred and the number of unused log bytes is being displayed,
where
"Log e Starting System Area LBA = ffffffff" (for a Disc Log or)
"Log e Starting Buffer Addr = gggggggg" (for a Buffer Log)
where
Example #1:
To create a new user-defined error log as log 10 with 64KB of memory, display
information about it, enable it as the active error log, and display the actual
contents of the log:
Revision History:
Translate LBA
Availability:
Level A , 'F'
Quick Help:
Translate LBA, F[LbaHi],[LbaLo],[SysAreaOpt],[NumLbas]
Description:
This command translates the specified Logical Block Address (LBA) to the following:
Input Parameters:
If Parameter 1 is not entered, then this parameter contains the 32-bit Logical
Block Address to be translated. If Parameter 1 is entered, then this parameter
contains the upper 16-bits of the Logical Block Address to be translated.
Default: 0
1 - LBA Low.
This parameter contains the lower 16-bits of the Logical Block Address to be
translated.
Range: 0 to 0xffff
If any value is entered for this parameter, then the Logical Block Address
specified by Parameters 0 and 1 is located in the System Area, else it is located
in the User Area.
Range: 0 to 0xffff
Default: None
3 - LBA Count.
Range: 0 to 0xffffffff
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI "
"cccccccc dddddddd eeee ffff gggg hhhhhhhh"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Availability:
Level A , 'M'
Quick Help:
Set Controller Test Port, M[Port],[Value]
Description:
This command is used to set the controller test port mux.
Input Parameters:
0 - Test Port.
Range: 0 to 0xFF
Default: None
This input specifies the Value to set to the Test port. If this input is set
to 0xFF then the test port will be disabled.
Range: 0 to 0xFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level A , 'P'
Quick Help:
Merge Alt List into Slip List, P
Description:
The Merge Alt List Into Slip List command merges all defects from the G list into the
P list and then regenerates the alt and slip lists. This in effect changes alternated
sectors to slipped sectors.
Input Parameters:
None
Output Data:
The Merge Alt List Into Slip List output information will be displayed as follows.
"DiagError aaaaaaaa"
where
where
Note that the word "done" will be displayed upon completion of the command, which may
require 10's of seconds.
Revision History:
Write
Availability:
Level A , 'Q'
Quick Help:
Write, Read, Read LBA, Q[Lba],[NumLbas],[Opts]
Description:
This command performs a write, read, read operation starting at the specified LBA
(Logical Block Address) for the specified number of LBAs. The LBAs are written
with the data contained in the Diagnostic Write Buffer and they are read into the
Diagnostic Read Buffer.
Input Parameters:
0 - LBA.
If Parameter 2 bit 5 is set, then this parameter specifies the address of the
first System Area LBA to be written and read, else it specifies the address of
the first User Area LBA to be written and read.
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the LBA (Parameter 0) was entered and the Transfer Length (Parameter 1)
was not entered, then only the specified LBA will be written and read.
If both the LBA (Parameter 0) and Transfer Length (Parameter 1) are not
entered, then the Transfer Length will be set based on the Test Space
that is selected. If the Random Transfer Length option is selected, a
random value will be used that is less than or equal to the number of LBAs
remaining in the Test Space. If the Random Transfer Length option is not
selected, the number of LBAs remaining on the track containing the current
Target LBA will be written and read.
2 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the LBAs in the Test Space will be
written and read, else only the LBAs specified by Parameters 0
and 1 will be written and read.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set, sectors containing media defects that meet the
failure criteria will be spared.
If this bit is set and an error occurs, the write and read operations
will continue and attempt to write and read all of the requested
sectors. Each error encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To write and read a single LBA
(in this case LBA 51237)
F3 A>Q51237
Example #2:
To write and read multiple LBAs
(in this case LBAs 51237 to 51247)
F3 A>Q51237,11
Example #3:
To write and read all of the LBAs remaining on the track containing the target LBA
(in this case all LBAs remaining on the cylinder that contains LBA 51237)
F3 A>S51237
F3 A>Q
Example #4:
To write and read all of the LBAs remaining on the track containing the target LBA
and continue on error
(in this case all LBAs remaining on the cylinder that contains LBA 51237)
F3 A>S51237
F3 A>Q,,1
Example #5:
To write and read all of the LBAs in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each LBA in error.
F3 A>Q,,11
Example #6:
To write and read a single system LBA
(in this case system LBA 1237)
F3 A>Q1237,,20
Example #7:
To write and read multiple system LBAs
(in this case system LBAs 1237 to 1247)
F3 A>Q1237,11,20
Example #8:
To write and read all of the LBAs remaining on the track containing the target
system LBA
(in this case all LBAs remaining on the cylinder that contains LBA 1237)
F3 A>S1237,,,,,1
F3 A>Q,,20
Example #9:
To write a single LBA with data at a specific sector offset in the diagnostic write
buffer and read it to the sector offset in the diagnostic read buffer
(in this case LBA 51237,
write with data at the sector offset of 5 in the diagnostic write buffer,
read to the sector offset of 5 in the diagnostic read buffer)
F3 A>AF,5
F3 A>Q51237
Example #10:
To rotate the buffer sector offset by 1, write a single LBA with data at the rotated
sector offset in the diagnostic write buffer, then read it to the rotated sector
offset in the diagnostic read buffer
(This example assumes user ran the Example #9 above right before this example,
in this case LBA 51238,
write with data at the sector offset of 6 in the diagnostic write buffer,
read to the sector offset of 6 in the diagnostic read buffer)
F3 A>Q51238,,4
Revision History:
Read LBA
Availability:
Level A , 'R'
Quick Help:
Read LBA, R[Lba],[NumLbas],,[Opts]
Description:
This command reads data from the disk starting at the specified LBA (Logical Block
Address) for the specified number of LBAs. The data is read into the Diagnostic Read
Buffer.
Input Parameters:
0 - LBA.
If Parameter 3 bit 5 is set, then this parameter specifies the address of the first
System Area LBA to be read, else it specifies the address of the first User Area LBA
to be read.
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the LBA (Parameter 0) was entered and the Transfer Length (Parameter 1)
was not entered, then only the specified LBA will be read.
If both the LBA (Parameter 0) and Transfer Length (Parameter 1) are not
entered, then the Transfer Length will be set based on the Test Space
that is selected. If the Random Transfer Length option is selected, a
random value will be used that is less than or equal to the number of LBAs
remaining in the Test Space. If the Random Transfer Length option is not
selected, the number of LBAs remaining on the track containing the current
Target LBA will be read.
2 - not used.
In the legacy ST10 code, entering this parameter enables a 512-byte block to be
read even if it is marked as alternated or pending. This feature was added
as part of the support for block sizes greater than 512-bytes. This feature is
not currently supported by the platform architecture.
Type: None
Range: None
Default: None
3 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the LBAs in the Test Space will be
read, else only the LBAs specified by Parameters 0 and 1 will
be read.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the read operation will
continue and attempt to read all of the requested LBA. Each error
encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To read a single LBA
(in this case LBA 51237)
F3 A>R51237
Example #2:
To read multiple LBAs
(in this case LBAs 51237 to 51247)
F3 A>R51237,11
Example #3:
To read all of the LBAs remaining on the track containing the target LBA
(in this case all LBAs remaining on the cylinder that contains LBA 51237)
F3 A>S51237
F3 A>R
Example #4:
To read all of the LBAs remaining on the track containing the target LBA
and continue on error
(in this case all LBAs remaining on the cylinder that contains LBA 51237)
F3 A>S51237
F3 A>R,,,1
Example #5:
To read all of the LBAs in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each LBA in error.
F3 A>R,,,11
Example #6:
To read a single system LBA
(in this case system LBA 1237)
F3 A>R1237,,,20
Example #7:
To read multiple system LBAs
(in this case system LBAs 1237 to 1247)
F3 A>R1237,11,,20
Example #8:
To read all of the LBAs remaining on the track containing the target system LBA
(in this case all LBAs remaining on the cylinder that contains LBA 1237)
F3 A>S1237,,,,,1
F3 A>R,,,20
Example #9:
To read a single LBA to a specific sector offset in the diagnostic read buffer
(in this case LBA 51237 to the sector offset of 5 in the diagnostic read buffer)
F3 2>AF,5
F3 A>R51237,,,4
Example #10:
To rotate the buffer sector offset by 1 and read a single LBA to the rotated sector
offset in the diagnostic read buffer
(This example assumes user ran the Example #9 above right before this example,
in this case LBA 51238 to the sector offset of 6 in the diagnostic read buffer)
F3 A>R51238,,,4
Revision History:
Seek to LBA
Availability:
Level A , 'S'
Quick Help:
Seek to LBA, S[LbaHi],[LbaLo],[Offset],[OffsetUnitsOpt],[SkType],[Options]
Description:
This command performs a seek to the specified User or System Area LBA (Logical Block
Address). If no address is specified, this command will seek to the next Test Space
LBA.
Input Parameters:
If Parameter 1 is not entered, then this parameter contains the 32-bit LBA to
which the seek is to be performed. If Parameter 1 is entered, then this parameter
contains the upper 16-bits of the LBA to which the seek is to be performed.
1 - LBA Low.
This parameter contains the lower 16-bits of the LBA to which the seek is to be
performed.
If Parameter 4 is entered, then the specified LBA is located in the System Area,
else it's located in the User Area.
Range: 0 to 0xffff
Default: 0
Range: 0 or 1
4 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write
or write header track follow position.
Range: 0 to 0xFF
5 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
If a seek mode was specified, the Elapsed Time for the seek operation will be displayed.
The data displayed will be formatted as shown above, under Bit 6 of verbose mode.
Some commands use an output control bit flag (specified in the input parameters above).
If "Output Control Flag- Data Track Width" is set, the following information will be displayed:
where
wwww is the width of a data track in hex and in units of servo position. Q14 scaling,
so 0x4000 is the width of a data track at nominal TPI (before VTPI and warping).
Revision History:
Write LBA
Availability:
Level A , 'W'
Quick Help:
Write LBA, W[Lba],[NumLbas],,[Opts]
Description:
This command writes data to the disk starting at the specified LBA (Logical Block
Address) for the specified number of LBAs. The data is written from the Diagnostic
Write Buffer.
Input Parameters:
0 - LBA.
If Parameter 3 bit 5 is set, then this parameter specifies the address of the first
System Area LBA to be written, else it specifies the address of the first User Area
LBA to be written.
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the LBA (Parameter 0) was entered and the Transfer Length (Parameter 1)
was not entered, then only the specified LBA will be written.
If both the LBA (Parameter 0) and Transfer Length (Parameter 1) are not
entered, then the Transfer Length will be set based on the Test Space
that is selected. If the Random Transfer Length option is selected, a
random value will be used that is less than or equal to the number of LBAs
remaining in the Test Space. If the Random Transfer Length option is not
selected, the number of LBAs remaining on the track containing the current
Target LBA will be written.
2 - not used.
Type: None
Range: None
Default: None
3 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the LBAs in the Test Space will be
written, else only the LBAs specified by Parameters 0 and 1 will
be written.
If this bit is set and an error occurs, the write operation will
continue and attempt to write all of the requested LBA. Each error
encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To write a single LBA
(in this case LBA 51237)
F3 A>W51237
Example #2:
To write multiple LBAs
(in this case LBAs 51237 to 51247)
F3 A>W51237,11
Example #3:
To write all of the LBAs remaining on the track containing the target LBA
(in this case all LBAs remaining on the cylinder that contains LBA 51237)
F3 A>S51237
F3 A>W
Example #4:
To write all of the LBAs remaining on the track containing the target LBA
and continue on error
(in this case all LBAs remaining on the cylinder that contains LBA 51237)
F3 A>S51237
F3 A>W,,,1
Example #5:
To write all of the LBAs in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each LBA in error.
F3 A>W,,,11
Example #6:
To write a single system LBA
(in this case system LBA 1237)
F3 A>W1237,,,20
Example #7:
To write multiple system LBAs
(in this case system LBAs 1237 to 1247)
F3 A>W1237,11,,20
Example #8:
To write all of the LBAs remaining on the track containing the target system LBA
(in this case all LBAs remaining on the cylinder that contains LBA 1237)
F3 A>S1237,,,,,1
F3 A>W,,,20
Revision History:
Availability:
Level 2 , 'Y'
Level 7 , 'Y'
Level A , 'Y'
Level F , 'Y'
Quick Help:
Set Retries - DERP, Y[Mode],[MaxRdRetries],[MaxWrtRetries],[OtcTLevel],[Options]
Description:
This command allows the user to specify the error recovery parameters that will be used
for subsequent diagnostic commands. (This version of the Set Retries command is only
available if the drive supports DERP! To know whether your drive supports DERP, issue
the Online "^L" command to see a list of features supported by the drive.)
Input Parameters:
This parameter specifies the error recovery mode to be used. The following
error recovery modes are available:
0 = Maximum Normal
1 = Maximum Full
2 = Default Normal
3 = Default Full
4 = Minimum Normal
5 = Minimum Full
6 = Simple Retries
7 = Mini-Cert / Data Scrub
The Maximum Error Recovery Modes (0 and 1) are typically used for system
information recovery.
The Default Error Recovery Modes (2 and 3) are typically used by the native
interface.
The Minimum Error Recovery Modes (4 and 5) are typically used for diagnostic
and media certification operations.
The Normal Error Recovery Modes (0, 2 and 4) should be used for multiple sector
transfers. The retry steps for these modes employ less extreme tweaks to recover
the data. This increases the chance of successfully reading subsequent sectors
without resetting tweaks.
The Full Error Recovery Modes (1, 3 and 5) should be used for single sector
transfers. The retry steps for these modes employ more extreme tweaks to
recover the data. The tweaks used by these modes would make it difficult to
read subsequent sectors without error.
The Simple Error Recovery Mode (6) is a "Normal" type error recovery mode but with
no additional options enabled. Essentially, this is free retries applied during
DERP Reads.
The Mini-Cert / Data Scrub Recovery Mode (7) is used during the reallocation
operation to perform defect verification of the target block, typically performing
a reduced set of read or write retries.
Error Recovery Mode 2 (Default Normal) is the default configuration used by the
native interface (aka, "Interface Level Retries")
TIP: Setting the Error Recovery Mode without setting any other parameters will
restore the default settings for the specified Error Recovery Mode.
Range: 0 to 7
Default: If this parameter is not entered, the current error recovery mode
will not be changed.
If entered, this parameter specifies the maximum allowed read retry count. NOTE:
Specifying this parameter will cause the corresponding Error Recovery Options bit
to be set that enables the use of this value.
Range: 0 to 0xFFFF
Default: If this parameter is not entered, the maximum allowed read retry count
for the specified error recovery mode will not be changed.
If entered, this parameter specifies the maximum allowed write retry count. NOTE:
Specifying this parameter will cause the corresponding Error Recovery Options bit
to be set that enables the use of this value.
Range: 0 to 0xFFFF
Default: If this parameter is not entered, the maximum allowed write retry count
for the specified error recovery mode will not be changed.
If entered, this parameter specifies the ECC T-Level to be used for on-the-fly
correction. Although any value from 0x00 to 0xFF may be entered, the diagnostic
will automatically round down to the nearest available value from the entered
value. NOTE: Specifying this parameter will cause the corresponding Error Recovery
Options bit to be set that enables the use of this value.
Range: 0 to 0xFF
Default: If this parameter is not entered, the on-the-fly correction ECC T-Level
for the specified error recovery mode will not be changed.
If entered, this parameter specifies the options that are allowed to be set for
the Error Recovery system. The definition of each bit is specified below:
If set, restrict servo flaw coasting during a read only if one of the
following conditions applies:
1) The failed block is not associated with a known grown servo flaw
2) New servo flaws are detected on the target track
3) Forced servo coast tweaks
If set, restrict servo flaw coasting during a write only if one of the
following conditions applies:
1) The failed block is not associated with a known grown servo flaw
2) New servo flaws are detected on the target track
3) Forced servo coast tweaks
If set, error recovery will terminate when the retry step is equal
to the early exit retry step.
If set, all retry tweak steps will be disabled for normal error recovery
modes.
If set, the hidden retry steps will be disabled for the full error
recovery modes. The first 9 steps of the full error recovery modes
are defined as hidden retries.
If set, the retry tweaks will not be undone after the retry completes.
Bit 11: Disable on-the-fly ECC correction - normal retry tweak steps.
Bit 12: Disable on-the-fly ECC correction - full-hidden retry tweak steps.
Bit 13: Disable on-the-fly ECC correction - full retry tweak steps.
If this bit is set and Mode Options Bit 15 is also set, a specified
error recovery step will be used for the initial sector access.
Bit 22: Enable selected maximum retry counts in non-User media partition.
If set, the maximum read and write retry counts that have been enabled
by Bits 20 and 21 will be applied to retries in non-user partitions.
Bit 24: Disable the extended retries applied to Write Unsafe error.
Range: 0 to 0xFFFFFFFF
Default: If this parameter is not entered, the Error Recovery Options for the
specified error recovery mode will not be changed.
Output Data:
"DiagError aaaaaaaa"
where
" B23: (f) gggggg P3: Selected OTF ECC T-level = jj"
" B22: (f) gggggg Max Retries In Non-User Partition"
" B21: (f) gggggg P1: Max Write Retries = hh"
" B20: (f) gggggg P2: Max Read Retries = ii"
" B03: (f) gggggg Restricted Servo Flaw Coasting during Read"
" B02: (f) gggggg xfer of Uncorrectable Sectors"
" B01: (f) gggggg Min OTF ECC Correction"
" B00: (f) gggggg Max OTF ECC Correction"
where
eeeeee are the Error Recovery Options that are selected for the current Error
Recovery Mode
f is the state of the options bit
gggggg is a string indicating whether the feature controlled by the options bit is
enabled or disabled
hh is the maximum number of allowable write retries for the current Error
Recovery Mode
ii is the maximum number of allowable read retries for the current Error
Recovery Mode
jj is the ECC T-Level to be used for On-The-Fly Correction for the current
Error Recovery Mode
kk is the Selected Error Retry Step for the current Error Recovery Mode
Revision History:
Availability:
Level A , 'c'
Quick Help:
Translate Logical Cylinder, Logical Head and Logical Sector, c[Cyl],[Hd],[Sec],[SysAreaOpt],[NumSecs]
Description:
This command translates the specified LLL CHS (Logical Cylinder, Logical Head and
Logical Sector) address to the following:
Input Parameters:
Range: 0 to 0xFFFFFFFF
Default: 0
Range: 0 to 0xFF
Default: 0
Default: 0
Range: 0 to 0xFFFF
Default: None
4 - Logical Sector Count.
This value will specify the number of consecutive Logical Sectors to be translated.
(Note: The value entered will be limited to the Logical Sectors remaining on the
track.)
Range: 0 to 0xffffffff
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI "
"cccccccc dddddddd eeee ffff gggg hhhhhhhh"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Availability:
Level A , 'd'
Quick Help:
Translate Physical Cylinder, Logical Head and Physical Sector, d[Cyl],[Hd],[Sec],[NumSecs]
Description:
This command translates the specified PLP CHS (Physical Cylinder, Logical Head and
Physical Sector) address to the following:
Input Parameters:
Range: 0 to 0xFFFFFFFF
Default: 0
Range: 0 to 0xFF
Default: 0
Default: 0
Range: 0 to 0xffffffff
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI "
"cccccccc dddddddd eeee ffff gggg hhhhhhhh"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Availability:
Level A , 'e'
Quick Help:
Translate Nominal Cylinder and Logical Head, e[Cyl],[Hd],[Sec],[SysAreaOpt]
Description:
This command translates the specified Nominal cylinder and logical head address to the following:
Input Parameters:
Range: 0 to 0xFFFFFFFF
Default: 0
Range: 0 to 0xFF
Default: 0
Default: 0
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI "
"cccccccc dddddddd eeee ffff gggg hhhhhhhh"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Availability:
Level A , 'f'
Quick Help:
Translate Physical Cylinder, Logical Head and Physical Wedge, f[Cyl],[Hd],[Wdg],[NumWdgs]
Description:
This command translates the specified PLP CHW (Physical Cylinder, Logical Head and
Physical Wedge) address to the following:
Input Parameters:
Range: 0 to 0xFFFFFFFF
Default: 0
Range: 0 to 0xFF
Default: 0
Default: 0
3 - Wedge Count.
This value will specify the number of consecutive Wedges to be translated. (Note:
The value entered will be limited to the Wedges remaining on the track.)
Type: Unsigned 32-bit value
Range: 0 to 0xffffffff
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
"LBA PBA LogSec PhySec Wdg SFI "
"cccccccc dddddddd eeee ffff gggg hhhhhhhh"
where
cccccccc is the Logical Block Address (LBA) of the sector within the
User or System Area. All non-defective, non-spare User Area
sectors are numbered consecutively starting with zero.
Defective sectors do not have a valid LBA and will be skipped
when accessing consecutive LBAs. System Area sectors are
number similarly starting with 0.
dddddddd is the Physical Block Address (PBA) of the sector within the
User or System Area. All User Area sectors (including spare
and defective sectors) are numbered consecutively starting
with zero. System Area sectors are number similarly starting
with 0.
eeee is the Logical Sector address where Logical Sectors do not
include defective sectors that have been slipped or unused
spares.
gggg is the number of the Servo Burst preceding the data wedge
that contains the sector.
where
rrrrrr is the number of the servo burst that splits the sector.
Revision History:
Availability:
Level A , 'l'
Quick Help:
Display Track Information, l[LogCyl],[Hd],[SysAreaOpt],[Opts],[RowsPerPage]
Description:
This command displays information about the specified track. If no track address is
specified, this command will display information about the current Target Track.
Input Parameters:
If Parameter 2 is not entered, this parameter is the User Area logical cylinder
address of the track for which information is to be displayed. If Parameter 2
is entered, this parameter is the System Area logical cylinder address of the
track for which information is to be displayed.
Range: 0 to 0xFFFFFFFF
This parameter is the logical head address of the track for which information
is to be displayed.
Range: 0 to 0xFF
If any value is entered for this parameter, then Parameter 0 specifies a System
Area logical cylinder address, else it specifies a User Area logical cylinder
address.
Range: 0 to 0xFFFF
Default: None
If this parameter is equal to 0, the specified tracks sector information will not
be displayed, else the specified tracks sector information will be displayed.
Default: For Level 2 'X' the default is 1 (Display track's Sector Information)
For Level A 'l' the default is 0 (Don't display track's Sector Information)
Range: 0 to 0xFFFF
Output Data:
"DiagError aaaaaaaa"
where
"Track Info:"
"Partition PhyCyl LogCyl NomCyl Radius_mils LogHd Zn
FirstLba FirstPba LogSecs PhySecs WdgSkw SecPerFrm WdgPerFrm"
"bbbbbb cccccccc dddddddd nnnnnnnn o.ooooooEoo ee ff
gggggggg hhhhhhhh iiii jjjj kkkk llll mmmm"
where
"Sector Info:"
cccc, gggg, kkkk and pppp are the Physical Sector Address.
dddd, hhhh, llll and qqqq are the Logical Sector Address.
eee, iii, mmm and rrr are the number of the Servo Burst that preceeds the sector.
ffffffff, jjjjjjjj, nnnnnnnn, tttttttt are the number of NRZ Symbols from Index
to the start of the sector.
qqq is the number of bytes before the servo burst that splits the sector for all
sectors in the row.
rrr is the number of bytes after the servo burst that splits the sector for all
sectors in the row.
Revision History:
Availability:
Level 2 , 'y'
Level 7 , 'y'
Level A , 'y'
Level F , 'y'
Quick Help:
Set DERP Retry State, y[Type],[PathState],[RetryStateCnt],[LoopCnt1],[LoopCnt2]
Description:
This command allows the user to specify the DERP Retry State that will be used by the
Read/Write firmware subsystem's Error Recovery system during subsequent diagnostic
commands that access the disc. (This command is only available on drives that support
DERP! To know whether your drive supports DERP, issue the Online "^L" command to see a
list of features supported by the drive.)
Input Parameters:
This parameter specifies the type of error that the DERP Error Recovery system will
assume for subsequent diagnostic operations. Valid values for this parameter are
given below:
0 = UNDETERMINED
1 = DATA_ERROR
2 = SYNC
3 = TA
4 = DATAORTA
5 = SYNCTA
6 = SYNCORDATA
Default: None
This parameter specifies the path count from the current retry sequence that the DERP
Error Recovery system will assume for subsequent diagnostic operations. The meaning
of the Path State is dependent on the Error Type (parameter 0).
Range: 0 to 0xFF
Default: None
This parameter specifies the retry path count from the current retry sequence that
the DERP Error Recovery system will assume for subsequent diagnostic operations.
Default: None
This parameter specifies the first loop counter that the DERP Error Recovery system
will assume for subsequent diagnostic operations.
Range: 0 to 0xFF
Default: None
This parameter specifies the second loop counter that the DERP Error Recovery system
will assume for subsequent diagnostic operations.
Range: 0 to 0xFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
If the Selected DERP Retry State is Enabled, then the following will also be displayed.
where
Revision History:
DisplayChannelStatusListDataCmd
Availability:
Level C , 'B'
Quick Help:
DisplayChannelStatusListDataCmd
Description:
This command retrieves and displays channel Status List Entries.
Input Parameters:
None
Output Data:
"Iteratn Bad Bit Erasure Low LLR Sum LLR Stat Tag Entry count zz"
" aaa bbb ccc ddd eee ff e"
Where
zz is the number of entries in the list
aaa is the iteration count for the entry
bbb is the bad bit count for the entry
ccc is the erasure count for the entry
ddd is the Low Logrithmic Likelihood Ratio count for the entry
eee is the Logrithmic Likelihood Ratio Soft Sum for the entry
ff is the status field for the entry, with bits as defined below:
SLE_FIFO_OVERFLOW 0x01
SLE_THERMAL_ASPERITY 0x02
SLE_FSB_EVENT 0x04
SLE_CODE_VIOLATION 0x08
SLE_LLI_STATUS_MASK 0xF0
e is the LBA tag and sync status for the entry
LBA_TAG_MASK 0x3FFF
SYNC_MRG 0x4000
SYNC_MISS 0x8000
Example #1:
To display all Status List Entries:
F3 C>B
Revision History:
1.0 Intial Revision
Availability:
Level C , 'D'
Quick Help:
Display Bonanza Memory, D[MemorySelect],[StartAddress],[NumberOfSymbols],[BufferSelect]
Description:
This diagnostic will display the contents of the specified Bonanza internal memory.
Input Parameters:
0 - Memory Select.
Range: 0 to 0xFF
Default: None
1 - Start Address.
Range: 0 to 0xFFFF
Default: 0
Range: 0 to 0xFFFF
Default: 0
3 - Buffer Select.
Range: 0 to 0xFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the output of this command will be displayed as follows depending
on the memory type specified:
Where:
XXXXXXX is either 'ENCODER' or 'DECODER' to indicate the source of the memory being displayed.
aaaa represents the address of the buffer data
bbbbb represents data returned from the buffer
Where:
xxxxx is INPUT or OUTPUT to indicate which erasure buffer is being displayed
aaaa represents the address of the buffer data
bbbb represents data returned from the buffer
c represent the buffer number
EXTRINSIC BUFFER
Addr: 0 1 2
aaaa bbbbbb bbbbbb bbbbbb
.
.
.
aaaa bbbbbb bbbbbb bbbbbb
Where:
aaaa represents the address of the buffer data
bbbbbb represents data returned from the buffer
Sample Buffer Data
Where:
aaaa represents the address of the buffer data
bbb represents data returned from the buffer
c represent the buffer number
Where:
a represents the address of the buffer data
b represents data returned from the buffer
c represent the buffer number
.
.
aaaa bbbbbb bbbbbb bbbbbb
Where:
a represents the address of the buffer data
b represents data returned from the buffer
c represent the buffer number
Where:
a represents the address of the buffer data
b represents data returned from the buffer
c represent the buffer number
Examples:
Example #1:
To display the entire contents of the Sample Buffer 2:
F3 C>D5,,,2
Example #2:
To display the first 10 entries in the Small Buffer:
F3 C>D6,0,A
Revision History:
Availability:
Level C , 'E'
Quick Help:
Display Bonanza Memory Size, E
Input Parameters:
None.
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the output of this command will be displayed as follows:
where:
aaaa is the number of ADC samples in the Sample Buffer
bbbb is the number of LLRs in the Soft Read Buffer
cccc is the number of Symbols in the Soft Write Buffer
dddd is the number of Symbols in the Small Buffer
eeee is the number of Words in the Erasure Input Buffer
ffff is the number of Words in the Erasure Output Buffer
gggg is the number of Values in the Extrinsic Buffer
hhhh is the number of Instructions in the Decoder Microcode Memory
iiii is the number of Instructions in the Encoder Microcode Memory
jjjj is the user sector size in symbols
kkkk is the media sector size in symbols
llll is the user codeword size in symbols
mmmm is the media codeword size in symbols
Revision History:
SetChannelStatusListThresholdsCmd
Availability:
Level C , 'H'
Quick Help:
SetChannelStatusListThresholdsCmd
Description:
This command retrieves and displays channel Status List status information.
Input Parameters:
8 Wrap mode:
Parm 1 = 0, wrapping disabled
Parm 1 <> 0, wrapping enabled
Output Data:
Where
BBBB is the minimum number of bad bits to enable a log entry.
LLLL is the minimum number of low LLR values to enable a log entry.
YY is the minimum Sync threshold value. Note that the lower bit is the
marginal missed sync bit, and the upper bit is the missed sync bit.
Example #1:
To disabled logging by setting all thresholds to maximum:
F3 C>H8
Example #2:
To set the iterations threshold to 3:
F3 C>H1,3
Example #3:
To view threshold settings:
F3 C>H
Example #4:
To take BCI logging offline (and therefore enable diags):
F3 C>HA,0
Revision History:
1.0 Intial Revision
SetChannelStatusListTriggersCmd
Availability:
Level C , 'I'
Quick Help:
SetChannelStatusListTriggersCmd
Description:
This command retrieves and displays channel Status List status information.
Input Parameters:
0 - Trigger mask.
This parameter sets and clears triggers. The trigger masks are
as follows:
01 Thermal asperity
02 Code violation
04 Flaw scanbus
If no value is input, the masks will not be changed. Note that these
masks are listed in the output as shown below.
Output Data:
"Triggers set:"
"01 TA MM"
"02 Code violation MM"
"04 Flaw scan bus MM"
Where
MM is either "ON" or "off" to indicate whether the trigger is armed.
The numbers starting each line are reminders of what input parameter
to use to set the trigger.
Example #1:
To display current trigger states without altering them:
F3 C>I
Example #2:
To set the TA and code violation triggers and clear the flaw scan bus trigger:
F3 C>I3
Revision History:
1.0 Intial Revision
Availability:
Level C , 'Q'
Quick Help:
Display ASCII Command Information, Q[CmdLevel],[Cmd]
Description:
This command displays the revision of the specified ASCII serial port diagnostic
command.
Input Parameters:
This parameter specifies the Diagnostic Command Level of the ASCII Serial Port
Diagnostic Command for which the revision is to be displayed. Entering a value
of '0' selects the All Level commands. Entering a value of '^' selects the
Online commands.
Default: None. If this parameter is not entered, the revision of all supported
ASCII commands in all supported command levels will be displayed.
1 - Diagnostic Command.
This parameter specifies the ASCII Diagnostic Command for which the revision
is to be displayed.
If the Online commands are selected by entering a '^' for Parameter 0 and an
upper or lower case alphabetic character is entered for this parameter, it
will be interpreted as a control character. For example, if '^' is entered for
Parameter 0 and 'C' is entered for Parameter 1, the revision of the online
Control-C command will be displayed.
Default: None. If this command is not entered, the revision of all supported
ASCII commands in the level specified by Parameter 0 will be displayed.
Output Data:
For each command specified, the ASCII command information is displayed as follows.
where
Examples:
Example #1:
To display the ASCII command information for all commands supported by the drive.
F3 C>Q
Example #2:
To display the ASCII command informatin for all the commands on Level 2.
F3 C>Q2
Example #3:
To display the ASCII command information for all the online commands.
F3 C>Q^
Example #4:
To display the ASCII command information for the Level 2 'S' (Seek To CHS) command.
(Both commands will perform the same action.)
F3 2>S?
F3 C>Q2,S
Example #5:
To display the ASCII command information for the Online ^A (Display Firmware Revision)
command.
F3 C>Q^,A
Revision History:
DisplayChannelStatusListStatusCmd
Availability:
Level C , 'S'
Quick Help:
DisplayChannelStatusListStatusCmd
Description:
This command retrieves and displays channel Status List status information.
Input Parameters:
0 - Clear log
Output Data:
"Wrap [on or off] [Log overflow] [FIFO overflow]"
"Wrap count = XX"
"Entry count = CC Current entry = EE"
"Codeword size = W Buffer bytes = BB"
Where
"Wrap on" indicates entries will resume filling at the top
of the list when status list is full. "Wrap off" indicates
new entries will be discarded once the list is full.
XX is the number of times wrapping occurred.
CC is the number of entries in the list.
EE is the zero based number of the next entry in the list to be written.
W is the number of codewords in one disk sector.
BB is the number of bytes in the status list entry log.
Example #1:
To display channel status list status:
F3 C>S
Example #2:
To clear the channel status list:
F3 C>S1
Revision History:
1.0 Intial Revision
Goop Plot
Availability:
Level C , 'T'
Quick Help:
Goop Plot, T[Hd],[StartTrk],[EndTrk],[ECCLvl],[NoFrcSync],[SkipCnt]
Description:
This function runs a goop plot. It reads the specified tracks, putting each
sector into a category based on the ECC correction required to read it:
perfect
not perfect but equal to or less than user specified threshold
requires more correction than user specified threshold (includes sync errors and
unreadable sectors)
Input Parameters:
0 - Head.
If FF entered, test all heads
If FE entered, test current head
Range: 0 to 0xFF
1 - Starting Track
This input indicates the first logical track to be tested. 0 means first track
of drive.
Range: 0 to 0xFFFFFFFF
2 - Ending Track
This input indicates the last logical track to be tested. 0 means last track
of drive.
Range: 0 to 0xFFFFFFFF
This input indicates the T-level for the less than T versus greater than T split.
Range: 0 to MaxECC
Default: 2
Range: 0 to 0xFFFFFFFF
Default: None
5 - Skip Count
This input indicates how many tracks are skipped between those tracks that are scanned.
Range: 0 to 0xFFFFFFFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
F3 C>T0,20,40,,,8
Cyl Hd #Sec T=0 02
20 0 1456d 1451d 4d 1d
29 0 1456d 1452d 4d 0d
32 0 1456d 1452d 3d 1d
3B 0 1456d 1448d 8d 0d
Examples:
Example #1:
To scan tracks 80 - 84 with correction threshold 6 on the current head:
F3 C>T,80,84,6
Example #2:
To scan every 4th track (that is, skipping three tracks) from C0 to D0 on head 0 with
threshold 2 (default):
F3 C>T0,c0,d0,,,3
Revision History:
Write Wedge
Availability:
Level 2 , 'z'
Level E , 'B'
Quick Help:
Write Wedge, z[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opt],[RegAddr0],...,[RegAddr13],[TSpacing]
Write Wedge, B[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opt],[RegAddr0],...,[RegAddr13],[TSpacing]
Description:
This command writes data to the disk starting at the specified data wedge on the
target track for the specified number of data wedges. The wedges are written with
either the data contained in the Diagnostic Write Buffer or the data generated by
Channel Pattern Generator if the channel hardware supports this feature. If register
addresses are specified, channel registers are sampled during the write.
Input Parameters:
0 - Wedge Address.
Range: 0 to 0xFFFF
Default: 0
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the Wedge Address is entered and the Transfer Length is not
entered, then only the specified wedge will be written.
If both the Wedge Address and Transfer Length are not entered,
then the Transfer Length will be set based on the Test Space
that is selected. If the Random Transfer Length option is
selected, a random value will be used that is less than or
equal to the number of wedges remaining on the track. If the
Random Transfer Length option is not selected, the number of
wedges remaining on the track will be written.
2 - Skipped Wedges.
This parameter specifies the number of wedges to skip after each wedge written.
Range: 0 to 0xFFFF
Range: 0 to 0xFFFFFFFF
4 - Options.
This parameter is a bit significant value that selects the following options:
Bit 6 - Use only the first Buffer Sector.
If this bit is set, this diagnostic command will use only the first
Buffer Sector by limiting the number of Buffer Sector to 1.
This allows the user to pre-fill only the first Buffer Sector with the
desired pattern and the diagnostic command will use the pattern for
writing all the wedges requested.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is equal to 0, NRZ symbol data on NRZ bus will be swapped.
If this bit is equal to 1, NRZ symbol data on NRZ bus won't be swapped.
Bit 1 - Reserved
Range: 0 to 0xFFFFFFFF
This parameter specifies the address of the 1st Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 2nd Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 3rd Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 4th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 5th Read Channel register
to be read for data collection.
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 6th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 7th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 8th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 9th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 10th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 11th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 12th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 13th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 14th Read Channel register
to be read for data collection.
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
Default: None
Range: 1 to 0x10
Default: None
Output Data:
If no error occurred and one or more read channel register was specified for data
collection, the following information will be displayed.
where
bbbbbbbb is the minimum value that was read from the channel register
cccccccc is the maximum value that was read from the channel register
dddddddd is the mean of the values read from the channel register
eeeeee.ee is the standard deviation of the values read from the channel register
If no error occurred, one or more read channel register was specified for data
collection and Raw ASCII output mode is selected, the following additional
information will be displayed for each wedge and channel register for which data
was collected.
where
00 = No Error
04 = Sync Error
If no error occurred, no read channel registers were specified for data collection
and the Continue On Sync Error option was selected, the following additional
information will be displayed.
where
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To write a single wedge
(in this case wedge 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>z23
Example #2:
To write multiple wedges
(in this case wedges 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>z23,4
Example #3:
To write all of the wedges on a track
(in this case all wedges on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>z
Example #4:
To write all of the wedges on multiple tracks
(in this case all wedges on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be written.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>z
Revision History:
Availability:
Level 2 , 'j'
Level E , 'C'
Quick Help:
Read Wedge, j[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opts],[RegAddr0],...,[RegAddr13]
Read Wedge, C[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opts],[RegAddr0],...,[RegAddr13]
Description:
This command reads data from the disk starting at the specified data wedge for the
specified number of data wedges. The data is read into the Diagnostic Read Buffer.
At meanwhile the channel registers are sampled, if the register address are
specified.
Input Parameters:
0 - Wedge Address.
Default: 0
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the Wedge Address is entered and the Transfer Length is not
entered, then only the specified wedge will be read.
If both the Wedge Address and Transfer Length are not entered,
then the Transfer Length will be set based on the Test Space
that is selected. If the Random Transfer Length option is
selected, a random value will be used that is less than or
equal to the number of wedges remaining on the track. If the
Random Transfer Length option is not selected, the number of
wedges remaining on the track will be read.
2 - Skipped Wedges.
This parameter specifies the number of wedges to skip after each wedge read.
Range: 0 to 0xFFFF
Range: 0 to 0xFFFFFFFF
4 - Options.
This parameter is a bit significant value that selects the following options:
Bit 3 - Reserved
If this bit is equal to 0, NRZ symbol data on NRZ bus will be swapped.
If this bit is equal to 1, NRZ symbol data on NRZ bus won't be swapped.
If this bit is equal to 1, the wedge read operation will not stop when
a sync error occurs.
Range: 0 to 0xFFFFFFFF
Default: 0x00000001 (Stop on Sync Error, Formatted Wedge Read, Swap NRZ data)
This parameter specifies the address of the 1st Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 2nd Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 3rd Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 4th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 5th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 6th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 7th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 8th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
13 - Channel Register Address.
This parameter specifies the address of the 9th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 10th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 11th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 12th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 13th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the address of the 14th Read Channel register
to be read for data collection.
Range: 0 to 0xFFFF
Default: None
Output Data:
If no error occurred and one or more read channel register was specified for data
collection, the following information will be displayed.
where
bbbbbbbb is the minimum value that was read from the channel register
cccccccc is the maximum value that was read from the channel register
dddddddd is the mean of the values read from the channel register
eeeeee.ee is the standard deviation of the values read from the channel register
If no error occurred, one or more read channel register was specified for data
collection and Raw ASCII output mode is selected, the following additional
information will be displayed for each wedge and channel register for which data
was collected.
where
ffff is the wedge address
00 = No Error
04 = Sync Error
If no error occurred, no read channel registers were specified for data collection
and the Continue On Sync Error option was selected, the following additional
information will be displayed.
where
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To read a single wedge
(in this case wedge 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>j23
Example #2:
To read multiple wedges
(in this case wedges 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>j23,4
Example #3:
To read all of the wedges on a track
(in this case all wedges on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 2>j
Example #4:
To read all of the wedges on multiple tracks
(in this case all wedges on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be read.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 2>j
Example #5:
To read all of the wedges on a track and continue on sync errors
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0
F3 2>j,,,,2
Revision History:
HeadDegradation
Availability:
Level E , 'G'
Quick Help:
HeadDegradation, G[OperationControlOptions],[MeasurementControlOptions]
Description:
This command performs all sort of operations related to the Head Degradation feature
in the code. These operations include running any or all of the current Head Degradation
measurements, logging results, and reading the existing logs.
Input Parameters:
Bit 3, 0x0008: NYI If this bit is set, output the log results to the serial port.
Bit 2, 0x0004: NYI If this bit is set, output measurement results to the log.
(Bit 0 must be set)
Bit 1, 0x0002: If this bit is set, output measurement results to the serial port.
(Bit 0 must be set; some measurements will output results regardless)
Range: 0 to 0xffff
This parameter specifies the measurements that this call of the diagnostic will
operate on.
Bits marked NYI are Not Yet Implemented: they may perform some operation, but
the test and its results are not finalized
Bit 15, 0x8000: Initialize tracks for nominally read-only tests performed
Bit 4, 0x0010: Channel statistics test (MSE, VGAR, VGAS), read only
Range: 0 to 0xffff
Output Data:
"DiagError aaaaaaaa"
where
If serial port output is requested, it is formatted as follows for each measurement point.
where
cccccccc is the base cylinder for this measurement set. No measurements are actually
taken at this cylinder, but rather at fixed offsets from the base cylinder.
where
ttt is the temperature in degrees Celsius. If an error occurred during the test, this
will read -300.
If "Head Resistance Measurement" bit is set, the following information will be displayed:
where
If "ECC usage, read-only" bit is set, the following information will be displayed:
where
If "ECC usage, write/read" bit is set, the following information will be displayed:
If "Channel statistics, read-only" bit is set, the following information will be displayed:
"Read only channel statistics results"
"MSE Mean mmmmmmmm Stdev ss.sssEss"
"VGAR Mean mmmmmmmm Stdev ss.sssEss"
"VGAS Mean mmmmmmmm Stdev ss.sssEss"
where
If "Channel statistics, write/read" bit is set, the following information will be displayed:
If "Harmonic detector, read-only" bit is set, the following information will be displayed:
where
If "Harmonic detector, write/read" bit is set, the following information will be displayed:
Head stability is not yet fully implemented, and so may produce unspecified output if those
bits are set.
Examples:
Example #1:
Perform head resistance and read-only harmonic detector tests. Output results to serial port.
F3 E>G3,41
Example #2:
Initialize the read-only harmonic detector test tracks. Perform write/read and read-only
harmonic detector tests. Output results to serial port.
F3 E>G3,8060
Example #3:
Perform all tests, including those under development. Output results to serial port.
F3 E>G3,7fff
Example #4:
Perform all tests, including those under development. Initialize all read-only
tests before running them.Output results to serial port.
F3 E>G3,ffff
Revision History:
Availability:
Level E , 'm'
Quick Help:
Fast MSESER Measurement, m[]
Description:
This command collects hardware data while reading sector data from the disk.
Statistic analysis will be conducted for collected hardware data and results
will be displayed.
Input Parameters:
0 - Start Sector.
Default: 0
Default: 0
Bit 1: If this bit is set, will collect MSE, VGAR, and a controller register.
Higher priority than bit 0
Bit 0: If this bit is set, will collect MSE, VGAR, and a channel register.
Range: 0 to 0xFFFF
Default: 0 ( MSE, VGAR, and rotate through all FIR Taps and NLFR registers )
3 - Register Address
Range: 0 to 0xFFFFFFFF
Default: 0
This parameter specifies the bit mask that will be bit-AND'ed with
data read from the register specified by parameter 3.
Range: 0 to 0xFFFF
5 - Sectors to Ignore.
Default: 0
6 - Percentage to trim.
Range: 0 to 32h
Default: 0
7 - Display Options.
Bit 0: If this bit is set, will display the raw data of the
measured values in Hex format
Range: 0 to 0xFFFF
Output Data:
"DiagError aaaaaaaa"
where
aaaaaaaa is the Diagnostic Error Code
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
There are prerequisites for issuing this diag command.
First, user should issue a diag command to set the next target location to where the
Fast MSE measurement should occur. A simple seek command would do the job.
Second, user should issue a Set Track Format (Level 7 'K') command to set the track
format to single-sector-per-wedge format.
Typical example of usage is like following.
F3 T>A0 (Select User Area and not to update cylinder and head)
F3 T>/7 (Change diagnostic command level to 7)
F3 7>S1000,0 (Seek to the target track)
F3 7>K2 (Set track format to single sector per wedge format)
F3 7>W,,,1 (Write the track with physical sector address flag on)
F3 7>/E (Change diagnostic command level to E)
F3 E>m (issue the Fast MSESER Measurement command)
Revision History:
Dibit Extraction
Availability:
Level E , 'n'
Quick Help:
Dibit Extraction, n[sctr],[cnt],[dibit],[dibit],[dibit],[skip],[trim],[dsply]
Description:
This command collects dibit data ( QM mode 6 ) in a single disk revolution. The
user may specifiy up to three dibit indices to collect, or collect one sample of
each dibit.
Input Parameters:
0 - Start Sector.
Default: 0
Default: 0
First dibit index indicates which of the 127 dibit samples should be returned.
If FFFF is entered, increment the index seed at each wedge. Note that if
FFFF is entered, the statistical results will be meaningless.
Default: none
Dibit index indicates which of the 127 dibit samples should be returned.
Range: 0 - 127
Dibit index indicates which of the 127 dibit samples should be returned.
Range: 0 - 127
5 - Sectors to Ignore.
Default: 0
6 - Percentage to trim.
If this value is too large, too few untrimmed values will remain, causing
an "Invalid Parameter" error.
Type: Unsigned 8-bit value
Range: 0 to 32h
Default: 0
7 - Display Options.
Range: 0 to 0xFFFF
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the output of this command will be displayed as follows:
where
bbbb is the average of the dibit values read for this register in decimal. This
average excludes sectors ignored ( input paramter 5 ) and values trimmed
( input parameter 6 ).
cccc is the lowest dibit value read for this register in decimal. This minimum
excludes sectors ignored ( input parameter 5 ) but does include values
trimmed ( input parameter 6 ).
dddd is the greatest dibit value read for this register in decimal. This
maximum excludes sectors ignored ( input parameter 5 ) but does
include values trimmed ( input parameter 6 ).
eeee is the standard deviation of the dibit values read for this register in
decimal. The values used for this calculation exclude both sectors
ignored ( input paramter 5 ) and values trimmed ( input parameter 6 )
If the raw data display is requested ( input paramter 7 ), the following information
will be displayed:
where
ssss is the raw value read from the channel. This is the raw value. No
normalization or DC correction has been applied.
Note that the statistics are meaningless when 'incrementing seed index' is selected
in parameter 2.
Examples:
Example #1:
To get dibit values at index 7 on the current track and head:
E> n,,7
Example #2:
To get dibit values at indices 7, 22h, and 35h on the current track and head:
E> n,,7,22,35
Example #3:
To get dibit value at index 52h and exclude the lowest 8% and the largest 8% values read:
E> n,,52,,,,8
Example #4:
To get dibit values at index 14h but not use the first 20h values read:
E> n,,14,,,20
Example #5:
To get dibit value at index 7Ah and display both statistical results and counter values:
E> n,,7A,,,,,3
"Invalid Parameter" can also occur if the number of sectors to read is low and the trim percentage
( parameter 6 ) is large.
Revision History:
Availability:
Level E , 'o'
Quick Help:
Fine RW Offset Measurement, o[NumAvgs],[TrkStepSize],[NumGuardTrks]
Description:
This command measures the Fine Reader/Writer Offset at the current track.
The algorithm used here to measure the offset, a.k.a. micro-jog or MR offset,
was basically ported from ST-10 code. Please see Pete Harllee for more detail about it.
The algorithm used here can be divided into two big steps.
However, the alogorithm used here uses a different approach to find the coarse tub.
Assuming the real offset should be fairly close to the current default, it scans one
direction from the current default with a coarse increment of the offset. It then repeats
the same process, alternating the direction, until a valid tub is found. If three
measurements with finding good sync marks at more than half number of wedges in a track,
it's regarded as having found a valid tub. This method is very fast especially if the
real offset is close to the current default because the code would find the coarse tub
after even a few measurements.
The algorithm used here does this job differently from the conventional method.
Once the coarse tub is found, the code tried to balance two sides of the tub since it's
assumed that the MSE tub is bowl shaped and it is. If the code finds it's at the left
side of the tub, it'll move to right direction and vice versa. When the code changes the
scanning direction, it reduces the increment. If the increment becomes to zero or the MSE
curve is so well balanced at both ends, the code calculates the fine rw offset that gives
the same off-track margin(read capability) at both sides.
Input Parameters:
0 - Number of averages.
This parameter specifies the number of target tracks to measure fine rw offset then
average the measurement results to filter out any possible outliers.
Type: Unsigned 16-bit value
Range: 1 to 0xFFFF
Default: 5
This parameter specifies the number of tracks between the sample tracks where
the measurements occur.
Range: 0 to 0xFFFF
Default: 4
This parameter specifies the number of guard tracks at each side, ID and OD, of the
sample tracks. These areas will be erased.
Range: 0 to 0xFFFF
Default: 10
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the Fine R/W Offset information will be displayed as follows.
where
cccccc is the physical cylinder number where the fine RW Offset measurement occurred
d is the logical head number where the fine RW Offset measurement occurred
eeeee is the RW Offset amount value for a data track at the target track
ffffff is the measured RW offset difference(delta) from the current default offset
sh.iiiEsj is the floating point value for the RW offset delta value, in percentage,
over the Offset amount value for a data track
Revision History:
Availability:
Level E , 'w'
Quick Help:
Slow Write CHS, w[Sec],[NumSecs],[ConSec],[Skip],[UnitOfSkip]
Description:
This command writes data to the disk starting at the specified sector on the target
track for the specified number of sectors. The sectors are written consecutively
with the specified number of sectors and then followed by the skip of the specified
number of sectors to cool down the head. The sectors are written with the data
contained in the Diagnostic Write Buffer.
Input Parameters:
If any value is entered for Parameter 5, this parameter contains the physical
sector address of the first sector to write, else this parameter contains the
User Area logical sector address of the first sector to write.
Default: 0
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the Sector Address was entered and the Transfer Length was not
entered, then only the specified sector will be written.
If both the Sector Address and Transfer Length are not entered, then
the Transfer Length will be set based on the Test Space that is
selected. If the Random Transfer Length option is selected, a random
value will be used that is less than or equal to the number of sectors
remaining on the track. If the Random Transfer Length option is not
selected, the number of sectors remaining on the track will be written.
Range: 0 to 0xFFFFFFFF
Default: 1
3 - Skip.
This parameter specifies the amount of skip after the specified consecutive
sector are written. Its unit is decided by Parameter 4.
Range: 0 to 0xFFFF
Default: 1
4 - Unit of Skip.
Range: 0 to 0xFFFF
If any value is entered for this parameter, then Parameter 0 specifies a physical
sector address, else Parameter 0 specifies a User Area logical sector address.
Range: 0 to 0xFFFF
Default: None
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To write a single logical sector
(in this case logical sector 23 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 E>w23
Example #2:
To write multiple logical sectors
(in this case logical sectors 23 to 26 on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 E>w23,4
Example #3:
To write all of the logical sectors on a track
(in this case all logical sectors on logical cylinder 45 head 1)
F3 2>A0
F3 2>S45,1
F3 E>w
Example #4:
To write all of the logical sectors on multiple tracks
(in this case all logical sectors on logical cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be written.
F3 2>A3
F3 2>S44,0
F3 2>L,5
F3 E>w
Example #5:
To write a single physical sector
(in this case physical sector 32 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 E>w32,,,,,1
Example #6:
To write multiple physical sectors
(in this case physical sectors 32 to 35 on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 E>w32,4,,,,1
Example #7:
To write all of the physical sectors on a track
(in this case all physical sectors on physical cylinder 54 head 0)
F3 2>A0
F3 2>s54,0,22
F3 E>w,,,,,1
Revision History:
Buffer Display
Availability:
Level 1 , 'B'
Level 2 , 'B'
Level 7 , 'B'
Level F , 'B'
Level H , 'B'
Quick Help:
Buffer Display, B[DisplayBlk],[RefBlk],[NumBlks],[Opts],[SymBits]
Description:
The Buffer Display command reads and displays the contents of the specified buffer
blocks. Optionally, the buffer data being displayed can be compared to a specified
compare buffer blocks, with miscomparing bytes displayed as highlighted text.
Input Parameters:
This parameter specifies the number of the first buffer block to be displayed.
Default: If this parameter is not entered, the First block of Diagnostic Read
Buffer will be displayed.
This parameter specifies the number of the first buffer block that will be
compared to the blocks being displayed. Bytes that miscompare will be
displayed as highlighted text.
Default: If this parameter is not entered and the Display Buffer Block is
located in the Diagnostic Read Buffer, the corresponding block in
the Diagnostic Write Buffer will be used as the Reference Buffer
Block.
2 - Number of Blocks.
Default: 1
3 - Options.
If this bit is cleared, the display will pause after each block
and wait for the user to enter a character.
Range: 0 to 0xFFFFFFFF
4 - Symbol Size.
Range: 1 to 32
Default: 8
Output Data:
"DiagError aaaaaaaa"
where
where
dddd if the number of the Buffer Block to which the displayed block is
being compared.
If the memory data is being displayed as bytes, the following information will be
displayed following the header.
where
If the memory data is being displayed as non-8-bit symbols, the following information
will be displayed following the header.
where
jj is the buffer symbol. The number of characters displayed for each symbol
will vary depending on the symbol size.
If the displayed data is being compared to a reference buffer block, the bytes or
symbols that are not equal to the reference will be displayed as highlighted text.
Revision History:
Buffer Copy
Availability:
Level 2 , 'C'
Level 7 , 'C'
Level F , 'C'
Quick Help:
Buffer Copy, C[SrcBlk],[DestBlk],[NumBlks]
Description:
The Buffer Copy command copies the contents of the specified source buffer block(s)
to the specified destination buffer block(s).
Input Parameters:
If this parameter is entered, it specifies the number of the first buffer block
that contains the source data to be copied.
Default: If this parameter is not entered, the first block of the Diagnostic
Read Buffer will be the first source block.
If this parameter is entered, it specifies the number of the first buffer block
to which the source data is to be copied.
Default: If this parameter is not entered, the first block of the Diagnostic
Write Buffer will be the first destination block.
Default: If Parameters 0, 1 and 2 are not entered, the entire Diagnostic Read
Buffer will be copied to the Diagnostic Write Buffer. If Parameter 2
is not entered and either Parameter 0 or 1 is entered, a single buffer
block will be copied.
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level 1 , 'D'
Level F , 'D'
Quick Help:
Memory Block Display, D[AddrHi],[AddrLo],[CompVal],[NumBytes],[Opts],[SizeInBytes]
Description:
The Memory Block Display command reads and displays the contents of memory starting
at the specified address. Optionally, the memory data being displayed can be compared
to a specified value, with miscomparing bytes displayed as highlighted text. This
command also optionally supports specifying the size of the memory unit to be addressed.
It can support reading and displaying 8-bit, 16-bit, 32-bit, and 64-bit memory unit
sizes.
Input Parameters:
If parameter 1 is not entered, this parameter contains the 32-bit address of the
first memory location to be read and displayed. If parameter 1 is entered, this
parameter contains the upper 16-bits of the address of the first memory location
to be read and displayed.
Default: 0
If entered, this parameter contains the lower 16-bits of the address of the first
memory location to be read and displayed.
Type: Unsigned 16-bit value
Range: 0 to 0xffff
If entered, this parameter specifies a value that will be compared to the contents
of the specified memory locations. If the contents of the memory location are
different than the specified value, they will be displayed in high-intensity mode,
If the contents of the memory location are equal to the specified value, they will
be displayed in low-intensity mode. The value passed in this parameter must not be
larger than number of bytes specified in parameter 5.
Default: None
Range: 1 to 0xFFFFFFFF
Default: 0x200
4 - Options.
Previously this bit was used to disable validation of the memory address.
Address validation is no longer performed by this command so there is no
longer a need to disable it.
If this bit is cleared, the display will pause after each 512-byte block
and wait for the user to enter a character.
If this bit is set, all of the requested bytes will be displayed without
pausing.
Range: 0 to 0x00000001
Default: 0
This parameter indicates to the diagnostic command what memory unit size in bytes to
use when reading the memory block. The only valid values for this parameter are
8, 4, 2, and 1.
Default: 1
Output Data:
"DiagError aaaaaaaa"
where
where
If the memory data is being displayed as bytes, the following information will be
displayed following the header.
" Addr 0 1 2 3 4 5 6 7 8 9 A B C D E F"
"eeeeeeee ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff" (repeated)
If the memory data is being displayed as words (4 bytes), the following information
will be displayed following the header.
where
If a displayed data is being compared to a reference byte, the bytes or symbols that
are not equal to the reference will be displayed as highlighted text.
Examples:
Example #1: Display 512 bytes of memory starting at address 0 in 8-bit chunks
F3 1>D
F3 1>D0,,,200
F3 1>D0,0,,200
Example #2: Display 1024 bytes of memory starting at 04000000 in 16-bit chunks
F3 1>D04000000,,,400,,2
F3 1>D0400,0000,,400,,2
Example #3: Display 512 bytes of memory from address 0 in 64-bit chunks and compare each
element to the value 0xE580C000E12CC38E
F3 1>D,,E580C000E12CC38E,,,8
Revision History:
Availability:
Level F , 'E'
Quick Help:
Symbol Error Map, E[trk],[hd],[srt sctr],[sctr cnt],[action],[mx err]
Description:
This command determines what symbols on a track are in error.
Related Commands:
level L i L> iFFFB will zero out the symbol error map log
level L D L> DFFFB will display the symbol error map log
level L I L> IFFFB will display information about the symbol
error log, including the maximum entry count.
Input Parameters:
0 - Logical Cylinder
1 - Head
Default: 0
3 - Sector Count
4 - Log Control
Range: 0 - 8
This is the maximum number of sectors that detect an error before the command
aborts.
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and the log control parameter is 0, then the output of this command
will be as follows:
Sectors m Symbols p
Where:
m is the number of sectors that had errors.
Cyl aaaa Hd b
Sctr ccc sym ddd len e cnt ff
Sctr ccc sym ddd len e cnt ff
...
Sctr ccc sym ddd len e cnt ff
gg valid entries
hh overflow Merging JJJ
Where:
aaaa is the cylinder number where the errors were detected.
ddd is the first symbol of the range of symbols within the sector where
the errors were detected.
e is the length in symbols of the range of symbols where the errors were detected.
ff is the number of errors that were found within the range of symbols.
gg is the number of entries ( not errors ) in the symbol error map list.
hh is the number of errors that could not be added to list because this list
was full.
If no error occurred and the log control parameter is 3, then the output of this command
will be as follows:
Where:
rr is the minimum number of hits to be considered a defect. Each defect location
is counted as one defect regardless of the number of hits.
uuu is the number of errors found below the specified threshold. Multiple hits
on a single location will add to the random error count as long as the hit
count at that location is below the specified threshold.
wwww is the number of defects found at or above the specified threshold. Each
defect location is counted as one defect regardless of the number of hits.
xxx is the overflow count. This value does not contribute to either the random
error count or the defect count.
If no error occurred and the log control parameter is 6, then the output of this command
will be as follows:
Cyl ccccc Hd d
Length: lll Hits: hhh
...
Length: lll Hits: hhh
Where:
ccccc is the cylinder number tested
hhh is the number of times a defect with the list length appears in the symbol
error map log.
If no error occurred and the log control parameter is 8, then the output of this command
will be as follows:
Sctrs Sym
aaa bbb
...
aaa bbb
Sectors m Symbols p
Where:
aaa is the number of sectors that have exactly bbb symbols in error.
Example #1:
To scan all sectors on track 8017h head 0:
F> E8017,0
Example #2:
To scan sectors 0 through 36h on track 100h head 1:
F> E100,1,0,37
Example #3:
To clear the symbol error map log ( necessary if moving
to a new track ):
F> E,,,,2 ( four commas )
Example #4:
To view to the symbol error map log:
F> E,,,,1 ( four commas )
Example #5:
To scan all sectors on track 2000h head 0 and stop after 48h sectors
are found to have errors:
F> E2000,0,,,,48
Example #6:
To scan all sectors on a track without allowing merging
F> E,,,,2 ( clear out log )
F> E,,,,5 ( turn off symbol error merging )
F> E ( run test )
F> E,,,,1 ( see results )
Example #7:
To view all locations with 7 or more hits as errors:
F> E7,,,,3
Example #8:
To view a histogram of symbol error lengths:
F> E,,,,6
7> K2 ( go to single sector per track mode )
7> /FE,,8000 ( run in physical mode )
Example #9:
To run the command in physical mode:
2> S200
2> A0 ( go to a track and stay there )
2> /7K2 ( switch to single sector per wedge mode )
7> /2W,,,1 ( write the track in new mode )
2> /FE,,8000
Example #10:
To generate a histogram of symbols in error per sector:
F> E,,,,8
Revision History:
Availability:
Level 2 , 'P'
Level 7 , 'P'
Level F , 'P'
Level H , 'P'
Quick Help:
Set Buffer Pattern, P[PatternSelOrPatternLow],[PatternHi],[PatternBits],[Opts],[BlkNum],[NumBlks]
Description:
This command loads the specified data buffer blocks with the specified data pattern.
This command supports both the legacy ST-10 mode and a new mode that allows the user to
enter data patterns of up to 16-bytes (128-bits in length). The Legacy ST-10 mode only
allowed the user to enter 4-byte (32-bit) patterns.
In legacy ST-10 mode Parameter 0 selects either a pre-defined pattern (i.e. If Parameter 0
is equal to 0x1212, random data will be selected) or it contains the lower 16-bits of a
user specified pattern. In this mode Parameter 1 contains the upper 16-bits of a user
specified pattern, Parameter 2 specifies the pattern length, in bits, and the pattern
is assumed to be right justified. For example if Parameter 0 is equal to 0x5678,
Parameter 1 is equal to 0x1234 and Parameter 2 is equal to 0x14, the buffer will be
filled with the repeating 20-bit pattern 0100 0101 0110 0111 1000 which are the least
significant 4-bits of Parameter 1 followed by the 16-bits of Parameter 0 (45678).
The new 16-byte user pattern mode is selected by entering 0x1818 for Parameter 0. In
this mode Parameter 1 contains the 16-byte pattern to be used, Parameter 2 specifies
the pattern length, in bits, and the pattern is assumed to be left justified. The
pattern should be entered as a 1 to 32 character hexadecimal value with no spaces or
commas separating the bytes. For example if Parameter 0 is equal to 0x1818,
Parameter 1 is equal to 0x123456789ABC and Parameter 2 is equal to 0x24, the buffer
will be filled with the repeating 36-bit pattern 0001 0010 0011 0100 0101 0110 0111
1000 1001 which are the most significant 36-bits of Parameter 1 (123456789).
Input Parameters:
Note: When loading the buffer with the repeating 127-bit pattern, each
byte will be flipped end to end. So when displayed, the filled buffer
will actually contain the following data.
The buffer will be filled with the following 15-byte repeating pattern.
F0 F3 F3 C3 03 03 03 0F 3F 3F 3F 3C 30 30 F0 hex
The buffer will be filled with the 1 to 128 bit (16 byte) pattern
entered for Parameter 1. The number of Parameter 1 bits to be repeated
will be specified by Parameter 2.
If Parameter 3 bit 1 is set or Parameter 0 is not equal to any of the values listed
above, Parameter 0 will specify the least significant 16-bits of the data pattern
with which the buffer is to be loaded. In this case Parameter 1 will specify the
most significant 16-bits of the data pattern, the maximum pattern length will be
32-bits and the specified pattern will be assumed to be right justified.
Type: Unsigned 16-bit value
Range: 0 to 0xffff,
If Parameter 3 bit 1 is set or Parameter 0 does not select one of the pre-defined
data patterns (0x1111, 0x1212, etc.), Parameter 1 specifies the most significant
16-bits of the data pattern with which the buffer is to be loaded. In this case
Parameter 0 will specify the least significant 16-bits of the data pattern, the
maximum pattern length will be 32-bits and the specified pattern will be assumed
to be right justified.
Range: 0 to 0xffffffffffffffffffffffffffffffff
Default: 0
This parameter specifies the length, in bits, of the fill pattern specified by
parameters 0 and 1.
Range: 0 to 0x80
3 - Options.
Range: 0 to 0xFFFFFFFF
This parameter specifies the number of the first buffer block to be filled.
Default: If this parameter is not entered, the first block of Diagnostic Write
Buffer will be the first buffer block filled.
Range: 0 to 0xffff
Default: If this parameter is not entered and Parameter 4 was not entered, the
entire Diagnostic Write Buffer will be filled. If this parameter is
not entered and Parameter 4 was entered, only the buffer block specified
by Parameter 4 will be filled.
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa"
where
Examples:
The following commands will load the Diagnostic Write Buffer with pre-defined patterns:
F3 2>P1111 (Incrementing Pattern - 1st block 0x0000, 2nd block 0x0001, etc.)
F3 2>P1212 (Random Pattern)
F3 2>P1313 (Alternating Pattern - 0x1313 and Random Data)
F3 2>P1414 (Isolated Pulse Pattern - 0xFFFF0000)
F3 2>P1515 (Incrementing 2-Byte Pattern - 0x0000000100020003...)
F3 2>P1616 (Pre-Defined 127-bit Pattern - 0x13175B06...)
F3 2>P1717 (Pre-Defined 15 byte 6T Pattern - 0xF0F3F3C303...)
The following commands will load the Diagnostic Write Buffer with user defined patterns:
The following commands will load the specified buffer blocks with a user defined pattern:
Revision History:
Spin Up Drive
Availability:
Level 2 , 'U'
Level 3 , 'U'
Level 8 , 'U'
Level F , 'U'
Quick Help:
Spin Up Drive, U[HoldState],[Hd],[Cyl]
Description:
The command spins up the drive. Optionally, the spin up operation can be paused
in several intermediate states.
Input Parameters:
This parameter specifies the state in which the Spin Up operation is to be held.
0 = Spin up and attempt to track follow on the default cylinder and head.
2 = Release the Spin Hold State. If this option is selected the drive will
spin up to completion and attempt to track follow on the specified cylinder
and head.
4 = Spin up, unlatch the actuator and hold prior to attempting to synchronize
the demodulator to the data on the disk.
5 = Spin up, unlatch the actuator, synchronize the demodulator to the data on
the disk and hold prior to attempting to track follow.
Range: 0 to 0xFF
Default: 0
If the Spin Hold States are being used (Parameter 0 not equal to 0), this
parameter specifies the address of the logical head on which the spin up
operation will attempt to synchronize the demodulator and / or track follow.
If the Spin Hold States are not being used (Parameter 0 not entered or equal
to 0), this parameter specifies the address of the logical head to which a
seek will be performed after the drive is spun up.
Range: 0 to 0xFF
Default: First logical head
If the Spin Hold States are being used (Parameter 0 not equal to 0), this
parameter specifies the address of the physical cylinder on which the spin
up operation will attempt to track follow. If the Spin Hold States are not
being used (Parameter 0 not entered or equal to 0), this parameter specifies
the address of the physical cylinder to which a seek will be performed after
the drive is spun up.
Range: 0 to 0xFFFFFFFF
Output Data:
"DiagError aaaaaaaa"
where
In addition, one of the following strings will be output to indicate the current Spin
State.
The elapsed time for the spin operation will be displayed as follows.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
where
If a spin error occurred and the Verbose Formatted ASCII Data Output Mode is selected,
the Verbose Mode option bits will enable the following data to be output when set.
Bit 0-6: NA
Bit 7: Enable the Servo Event Log to be displayed
Bits 31-8: NA
If Bit 7 is set, the contents of the Servo Event Log will be displayed as follows.
where
Revision History:
Availability:
Level 1 , 'c'
Level 2 , 'c'
Level F , 'V'
Quick Help:
Buffer Compare, c[SrcBlk],[RefBlk],[NumBlks],[ContOnErr]
Buffer Compare, V[SrcBlk],[RefBlk],[NumBlks],[ContOnErr]
Description:
The Buffer Compare command compares the contents of the specified source buffer
block(s) to the specified reference buffer block(s) and returns an error if a
miscompare is detected.
Input Parameters:
If this parameter is entered, it specifies the number of the first buffer block
that contains the source data to be compared.
Default: If this parameter is not entered, the first block of the Diagnostic
Read Buffer will be the first source block.
If this parameter is entered, it specifies the number of the first buffer block
to which the source data is to be compared.
Default: If this parameter is not entered, the first block of the Diagnostic
Write Buffer will be the first reference block.
Default: If Parameters 0, 1 and 2 are not entered, the entire Diagnostic Read
Buffer will be compared to the Diagnostic Write Buffer. If Parameter 2
is not entered and either Parameter 0 or 1 is entered, a single buffer
block will be compared.
If this parameter is entered, the compare operation will compare all of the
specified bytes and display an error for each miscompare that is detected.
If this parameter is not entered, the compare operation will stop when the
first miscompare is detected.
Range: 0 to 0xFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
"at SrcBlk = cccc Addr = dddddddd Data = ee, RefBlk = ffff Addr = gggggggg Data = hh"
where
cccc is the number of the Source Buffer Block in which the miscompare occurred.
ffff is the number of the Reference Buffer Block in which the miscompare occurred.
gggggggg is the address of the Reference Buffer byte that miscompared.
Revision History:
Availability:
Level 2 , 'Y'
Level 7 , 'Y'
Level A , 'Y'
Level F , 'Y'
Quick Help:
Set Retries - DERP, Y[Mode],[MaxRdRetries],[MaxWrtRetries],[OtcTLevel],[Options]
Description:
This command allows the user to specify the error recovery parameters that will be used
for subsequent diagnostic commands. (This version of the Set Retries command is only
available if the drive supports DERP! To know whether your drive supports DERP, issue
the Online "^L" command to see a list of features supported by the drive.)
Input Parameters:
This parameter specifies the error recovery mode to be used. The following
error recovery modes are available:
0 = Maximum Normal
1 = Maximum Full
2 = Default Normal
3 = Default Full
4 = Minimum Normal
5 = Minimum Full
6 = Simple Retries
7 = Mini-Cert / Data Scrub
The Maximum Error Recovery Modes (0 and 1) are typically used for system
information recovery.
The Default Error Recovery Modes (2 and 3) are typically used by the native
interface.
The Minimum Error Recovery Modes (4 and 5) are typically used for diagnostic
and media certification operations.
The Normal Error Recovery Modes (0, 2 and 4) should be used for multiple sector
transfers. The retry steps for these modes employ less extreme tweaks to recover
the data. This increases the chance of successfully reading subsequent sectors
without resetting tweaks.
The Full Error Recovery Modes (1, 3 and 5) should be used for single sector
transfers. The retry steps for these modes employ more extreme tweaks to
recover the data. The tweaks used by these modes would make it difficult to
read subsequent sectors without error.
The Simple Error Recovery Mode (6) is a "Normal" type error recovery mode but with
no additional options enabled. Essentially, this is free retries applied during
DERP Reads.
The Mini-Cert / Data Scrub Recovery Mode (7) is used during the reallocation
operation to perform defect verification of the target block, typically performing
a reduced set of read or write retries.
Error Recovery Mode 2 (Default Normal) is the default configuration used by the
native interface (aka, "Interface Level Retries")
TIP: Setting the Error Recovery Mode without setting any other parameters will
restore the default settings for the specified Error Recovery Mode.
Range: 0 to 7
Default: If this parameter is not entered, the current error recovery mode
will not be changed.
If entered, this parameter specifies the maximum allowed read retry count. NOTE:
Specifying this parameter will cause the corresponding Error Recovery Options bit
to be set that enables the use of this value.
Default: If this parameter is not entered, the maximum allowed read retry count
for the specified error recovery mode will not be changed.
If entered, this parameter specifies the maximum allowed write retry count. NOTE:
Specifying this parameter will cause the corresponding Error Recovery Options bit
to be set that enables the use of this value.
Range: 0 to 0xFFFF
Default: If this parameter is not entered, the maximum allowed write retry count
for the specified error recovery mode will not be changed.
If entered, this parameter specifies the ECC T-Level to be used for on-the-fly
correction. Although any value from 0x00 to 0xFF may be entered, the diagnostic
will automatically round down to the nearest available value from the entered
value. NOTE: Specifying this parameter will cause the corresponding Error Recovery
Options bit to be set that enables the use of this value.
Range: 0 to 0xFF
Default: If this parameter is not entered, the on-the-fly correction ECC T-Level
for the specified error recovery mode will not be changed.
If entered, this parameter specifies the options that are allowed to be set for
the Error Recovery system. The definition of each bit is specified below:
If set, restrict servo flaw coasting during a read only if one of the
following conditions applies:
1) The failed block is not associated with a known grown servo flaw
2) New servo flaws are detected on the target track
3) Forced servo coast tweaks
If set, restrict servo flaw coasting during a write only if one of the
following conditions applies:
1) The failed block is not associated with a known grown servo flaw
2) New servo flaws are detected on the target track
3) Forced servo coast tweaks
If set, error recovery will terminate when the retry step is equal
to the early exit retry step.
If set, all retry tweak steps will be disabled for normal error recovery
modes.
If set, the hidden retry steps will be disabled for the full error
recovery modes. The first 9 steps of the full error recovery modes
are defined as hidden retries.
If set, all retry steps will be disabled for the full error recovery
modes.
If set, the retry tweaks will not be undone after the retry completes.
Bit 11: Disable on-the-fly ECC correction - normal retry tweak steps.
Bit 12: Disable on-the-fly ECC correction - full-hidden retry tweak steps.
Bit 13: Disable on-the-fly ECC correction - full retry tweak steps.
If this bit is set and Mode Options Bit 15 is also set, a specified
error recovery step will be used for the initial sector access.
Bit 22: Enable selected maximum retry counts in non-User media partition.
If set, the maximum read and write retry counts that have been enabled
by Bits 20 and 21 will be applied to retries in non-user partitions.
Bit 24: Disable the extended retries applied to Write Unsafe error.
Range: 0 to 0xFFFFFFFF
Default: If this parameter is not entered, the Error Recovery Options for the
specified error recovery mode will not be changed.
Output Data:
"DiagError aaaaaaaa"
where
" B23: (f) gggggg P3: Selected OTF ECC T-level = jj"
" B22: (f) gggggg Max Retries In Non-User Partition"
" B21: (f) gggggg P1: Max Write Retries = hh"
" B20: (f) gggggg P2: Max Read Retries = ii"
" B03: (f) gggggg Restricted Servo Flaw Coasting during Read"
" B02: (f) gggggg xfer of Uncorrectable Sectors"
" B01: (f) gggggg Min OTF ECC Correction"
" B00: (f) gggggg Max OTF ECC Correction"
where
eeeeee are the Error Recovery Options that are selected for the current Error
Recovery Mode
gggggg is a string indicating whether the feature controlled by the options bit is
enabled or disabled
hh is the maximum number of allowable write retries for the current Error
Recovery Mode
ii is the maximum number of allowable read retries for the current Error
Recovery Mode
jj is the ECC T-Level to be used for On-The-Fly Correction for the current
Error Recovery Mode
kk is the Selected Error Retry Step for the current Error Recovery Mode
Revision History:
Availability:
Level 2 , 'Z'
Level 3 , 'Z'
Level 7 , 'Z'
Level 8 , 'Z'
Level F , 'Z'
Quick Help:
Spin Down Drive, Z
Description:
This command spins the drive down.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
In addition, one of the following strings will be output to indicate the current Spin
State.
The elapsed time for the spin operation will be displayed as follows.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
where
If a spin error occurred and the Verbose Formatted ASCII Data Output Mode is selected,
the Verbose Mode option bits will enable the following data to be output when set.
Bit 0-6: NA
Bit 7: Enable the Servo Event Log to be displayed
Bits 31-8: NA
If Bit 7 is set, the contents of the Servo Event Log will be displayed as follows.
where
Revision History:
Availability:
Level F , 'b'
Level T , 'B'
Quick Help:
Set Baud Rate, b[BaudRate],[MsecDelay]
Description:
The Set Baud Rate command sets the serial port baud rate to the specified value.
Input Parameters:
This parameter specifies the desired serial port baud rate. If this parameter
is not entered or a value of 0 is entered, the baud rate will be set to the
default value. If an unsupported baud rate value is entered, a list of the
valid baud rates will be displayed.
Range: 0 to 9999999
Default: 38400
This parameter specifies the number of milliseconds that the drive will wait for
the host to send a carriage return at the new baud rate. If a carriage return
is not received within the specified amount of time, the baud rate will be set
back to its value before the command was received. If this parameter is not
entered or a value of 0 is entered, the drive will not wait for a carriage return
after selecting the specified baud rate.
Range: 0 to 0xffff
Default: 0
Output Data:
If an unsupported baud rate value is entered, this command will display a list
of the supported baud rates.
Revision History:
Availability:
Level F , 'r'
Quick Help:
Read System CHS, r[LogSec],[NumSecs],[Opts]
Description:
This command reads data from the disk starting at the specified sector on the System
Area target track for the specified number of sectors. The data is read into the
Diagnostic Read Buffer.
Input Parameters:
This parameter contains the System Area logical sector address of the first sector
to read.
Default: 0
1 - Transfer Length.
Range: 0 to 0xFFFFFFFF
Default: If the Sector Address was entered and the Transfer Length was not entered,
then only the specified sector will be read.
If both the Sector Address and Transfer Length are not entered, then the
Transfer Length will be set based on the Test Space that is selected.
If the Random Transfer Length option is selected, a random value will be
used that is less than or equal to the number of sectors remaining on the
track. If the Random Transfer Length option is not selected, the number
of sectors remaining on the track will be read.
2 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, all of the sectors in the Test Space will be
read, else only the sectors specified by Parameters 0 and 1 will
be read.
If this bit is set, the Target Buffer Sector Offset will be rotated
by 1 prior to the execution of this diagnostic command.
This bit was originally added to help writing random data pattern
reduce execution time by not having to re-fill the diagnostic buffer
with new random data pattern, which takes great amount of time,
but just rotating the Target Buffer Sector Offset at every time this
diagnostic command is executed with this option set.
To see or change the current Targer Buffer Sector Offset, please refer
all Level 'A', Set Test Space, diagnostic command for detail how-to.
If this bit is set and an error occurs, the read operation will
continue and attempt to read all of the requested sectors. Each
error encountered will be displayed.
Range: 0 to 0xFFFF
Output Data:
and
"Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
or
"Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
"Remaining Transfer Length llllllll"
where
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 1 is set, the Next Address will be displayed even if no error occurred. The
data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
"Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
or
"Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
"Starting Transfer Length wwwwwwww"
where
"Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
or
"Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
"Recovery Flags HHHH Count II"
where
AAAAAAAA is the Disk Logical Block Address of the last recovered sector
where
If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
Examples:
Example #1:
To read a single logical system sector
(in this case logical sector 23 on logical system cylinder 45 head 1)
F3 2>A0
F3 2>S45,1,,,,1
F3 2>/F
F3 F>r23
Example #2:
To read multiple logical system sectors
(in this case logical sectors 23 to 26 on logical system cylinder 45 head 1)
F3 2>A0
F3 2>S45,1,,,,1
F3 2>/F
F3 F>r23,4
Example #3:
To read all of the logical system sectors on a track
(in this case all logical sectors on logical system cylinder 45 head 1)
F3 2>A0
F3 2>S45,1,,,,1
F3 2>/F
F3 F>r
Example #4:
To read all of the logical system sectors on multiple tracks
(in this case all logical sectors on logical system cylinders 45 to 49 head 0)
Note: You must seek to the track before the first one to be read.
F3 2>A3
F3 2>S44,0,,,,1
F3 2>/F
F3 F>L,5
F3 F>r
Example #5:
To read all of the logical system sectors on a track and continue on error
(in this case all logical sectors on logical cylinder 45 head 0)
F3 2>A0
F3 2>S45,0,,,,1
F3 2>/F
F3 F>r,,1
Example #6:
To read all of the logical system sectors in the test space and continue on error
Note: The Test Space is selected by the all level 'A' command. An error
message will be displayed for each sector in error.
F3 F>r,,11
Example #7:
To read a single logical system sector to a specific sector offset in the diagnostic
read buffer
(in this case logical sector 23 on logical system cylinder 45 head 1,
to the sector offset of 5 in the diagnostic read buffer)
F3 2>A0
F3 2>AF,5
F3 2>S45,1,,,,1
F3 2>/F
F3 F>r23
Example #8:
To rotate the buffer sector offset by 1 and read a single logical system sector to the
rotated sector offset in the diagnostic read buffer
(This example assumes user ran the Example #7 above right before this example,
in this case logical sector 24 on logical system cylinder 45 head 1,
to the sector offset of 6 in the diagnostic read buffer)
F3 F>r24,,4
Revision History:
Availability:
Level 2 , 's'
Level 3 , 's'
Level F , 's'
Quick Help:
Seek to Physical Cylinder and Head, s[Cyl],[Hd],[ValidKey],[Offset],[OffsetUnitsOpt],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified physical cylinder and logical
head address. If no address is specified, this command will seek to the next physical
track in the Test Space.
Input Parameters:
If entered, this parameter is the address of the physical cylinder to which the
seek is to be performed. If both Parameter 0 and 1 are not entered, a seek will
be performed to the next physical track in the Test Space.
Range: 0 to 0xFFFFFFFF
Default: None
If entered, this parameter is the address of the logical head to which the seek
is to be performed. If both Parameter 0 and 1 are not entered, a seek will be
performed to the next physical track in the Test Space.
Range: 0 to 0xFF
Default: None
Range: 0x22
Default: None
Default: 0
This parameter specifies the units of the Track Follow Offset value. If this
parameter is equal to 0, the specified offset will be in units of 1/256th of the
servo track width. If this parameter is equal to 1, the specified offset will
be in units of 0.1% of the data track width.
Range: 0 or 1
5 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write or
write header track follow position.
Range: 0 to 0xFF
6 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
If a seek mode was specified, the Elapsed Time for the seek operation will be displayed.
The data displayed will be formatted as shown above, under Bit 6 of verbose mode.
Some commands use an output control bit flag (specified in the input parameters above).
If "Output Control Flag- Data Track Width" is set, the following information will be displayed:
where
wwww is the width of a data track in hex and in units of servo position. Q14 scaling,
so 0x4000 is the width of a data track at nominal TPI (before VTPI and warping).
Revision History:
Availability:
Level 7 , 's'
Level F , 't'
Quick Help:
Write Peripheral Register - channel or preamp, s[OpType],[RegAddr],[RegValue],[RegMask],[RegPagAddr]
Write Peripheral Register - channel or preamp, t[OpType],[RegAddr],[RegValue],[RegMask],[RegPagAddr]
Description:
This command writes the specified value to the specified register in the specified
peripheral device.
Input Parameters:
0 - Operation Type.
Range: 0 to 7
Range: 0 to 0xFFFF
Default: None
2 - Register Value.
This parameter specifies the value with which the specified register is to be
written.
Range: 0 to 0xFFFF
Default: 0
3 - Register Mask.
This parameter specifies the bit mask with which the specified value is to be
written into the register.
Range: 0 to 0xFFFF
Default: 0xFFFF
Range: 0 to 0xFFFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
If the Read Channel was locked, the following message will be displayed.
"Channel Locked"
If the Read Channel was unlocked, the following message will be displayed.
"Channel Unlocked"
If no error occurred and the Preamp was locked, the following message will be
displayed.
"Preamp Locked"
If no error occurred and the Preamp was unlocked, the following message will be
displayed.
"Preamp Unlocked"
where
If a Read Channel register was written, the following information will be displayed.
where
Revision History:
Availability:
Level 2 , 'y'
Level 7 , 'y'
Level A , 'y'
Level F , 'y'
Quick Help:
Set DERP Retry State, y[Type],[PathState],[RetryStateCnt],[LoopCnt1],[LoopCnt2]
Description:
This command allows the user to specify the DERP Retry State that will be used by the
Read/Write firmware subsystem's Error Recovery system during subsequent diagnostic
commands that access the disc. (This command is only available on drives that support
DERP! To know whether your drive supports DERP, issue the Online "^L" command to see a
list of features supported by the drive.)
Input Parameters:
This parameter specifies the type of error that the DERP Error Recovery system will
assume for subsequent diagnostic operations. Valid values for this parameter are
given below:
0 = UNDETERMINED
1 = DATA_ERROR
2 = SYNC
3 = TA
4 = DATAORTA
5 = SYNCTA
6 = SYNCORDATA
Default: None
This parameter specifies the path count from the current retry sequence that the DERP
Error Recovery system will assume for subsequent diagnostic operations. The meaning
of the Path State is dependent on the Error Type (parameter 0).
Range: 0 to 0xFF
Default: None
Range: 0 to 0xFF
Default: None
This parameter specifies the first loop counter that the DERP Error Recovery system
will assume for subsequent diagnostic operations.
Range: 0 to 0xFF
Default: None
This parameter specifies the second loop counter that the DERP Error Recovery system
will assume for subsequent diagnostic operations.
Range: 0 to 0xFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
If the Selected DERP Retry State is Enabled, then the following will also be displayed.
where
Revision History:
Availability:
Level G , 'B'
Quick Help:
Fill Correction Buffer, B[StartAddr],[EndAddr],[Pattern],[Opts]
Description:
This command fills the specified segment of Correction Buffer with the specified data
pattern. If the verification of fill is enabled, the command reads the data back and
compares with the patten it writes.
Input Parameters:
0 - Start Address Offset of Correction Buffer.
This parameter specifies the start address offset of the correction buffer.
Range: 0 to 0xffff,
Default: 0
This parameter specifies the end address offset of the correction buffer.
Range: 0 to 0xffff
Default: 0
2 - Data Pattern.
This parameter specifies the fill pattern specified. The specified pattern
is assumed to be right justified. If the value of the patten is greater
than 0x03FF, the command will take the lower 10 bits of the address as its
pattern to write in the Correction Buffer instead of the input pattern.
Range: 0 to 0x03ff
Default: 0
3 - Options.
Range: 0 to 0xff
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level G , 'C'
Quick Help:
Copy Correction Buffer, C[SrcAddr],[DestAddr],[NumSyms]
Description:
This command copies the specified segment of the Correction Buffer to another
place in the same buffer.
Input Parameters:
This parameter specifies the source address offset of the correction buffer.
Default: 0
This parameter specifies the destination address offset of the correction buffer.
Range: 0 to 0xffff
Default: 0
This parameter specifies the count of the symbols in the correction buffer
to be copied.
Range: 0 to 0xffff
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level G , 'D'
Quick Help:
Display Correction Buffer, D[StartAddr],[EndAddr],[CompareData]
Description:
This command displays the specified segment of Correction Buffer with the expected
data pattern.
Input Parameters:
This parameter specifies the start address offset of the correction buffer.
Range: 0 to 0xffff,
Default: 0
This parameter specifies the end address offset of the correction buffer.
Range: 0 to 0xffff
Default: 0
Range: 0 to 0x03ff
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level G , 'F'
Quick Help:
Fill Super Parity RAM, F[StartAddr],[EndAddr],[Pattern]
Description:
This command fills the specified segment of the Super Parity RAM with the specified
data pattern.
Input Parameters:
This parameter specifies the start address offset of the super parity RAM.
Range: 0 to 0xffff,
Default: 0
This parameter specifies the end address offset of the super parity RAM.
Range: 0 to 0xffff
Default: 0
2 - Data Pattern.
This parameter specifies the fill pattern. The specified pattern is assumed
to be right justified. If the value of the input pattern is 0x0FFF, the Write
Super Parity RAM diagnostics will set the pattern to 0 to start the write.
After each writing to the even address location, the value of the pattern
will be incremented for the next even address location. If the pattern
reaches the value of 0x0FFF, the pattern will be wrapped back to 0 for the
next write.
Range: 0 to 0x0fff
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level G , 'G'
Quick Help:
Display Super Parity RAM, G[StartAddr],[EndAddr]
Description:
This command displays the specified segment of the Super Parity RAM.
Input Parameters:
This parameter specifies the start address offset of the super parity RAM.
Range: 0 to 0xffff,
Default: 0
This parameter specifies the end address offset of the super parity RAM.
Range: 0 to 0xffff
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Buffer Display
Availability:
Level 1 , 'B'
Level 2 , 'B'
Level 7 , 'B'
Level F , 'B'
Level H , 'B'
Quick Help:
Buffer Display, B[DisplayBlk],[RefBlk],[NumBlks],[Opts],[SymBits]
Description:
The Buffer Display command reads and displays the contents of the specified buffer
blocks. Optionally, the buffer data being displayed can be compared to a specified
compare buffer blocks, with miscomparing bytes displayed as highlighted text.
Input Parameters:
This parameter specifies the number of the first buffer block to be displayed.
Default: If this parameter is not entered, the First block of Diagnostic Read
Buffer will be displayed.
This parameter specifies the number of the first buffer block that will be
compared to the blocks being displayed. Bytes that miscompare will be
displayed as highlighted text.
Default: If this parameter is not entered and the Display Buffer Block is
located in the Diagnostic Read Buffer, the corresponding block in
the Diagnostic Write Buffer will be used as the Reference Buffer
Block.
2 - Number of Blocks.
This parameter specifies the number of consecutive buffer blocks to be display.
Default: 1
3 - Options.
If this bit is cleared, the display will pause after each block
and wait for the user to enter a character.
Range: 0 to 0xFFFFFFFF
4 - Symbol Size.
Range: 1 to 32
Default: 8
Output Data:
"DiagError aaaaaaaa"
where
where
dddd if the number of the Buffer Block to which the displayed block is
being compared.
If the memory data is being displayed as bytes, the following information will be
displayed following the header.
where
If the memory data is being displayed as non-8-bit symbols, the following information
will be displayed following the header.
where
jj is the buffer symbol. The number of characters displayed for each symbol
will vary depending on the symbol size.
If the displayed data is being compared to a reference buffer block, the bytes or
symbols that are not equal to the reference will be displayed as highlighted text.
Revision History:
Availability:
Level 2 , 'P'
Level 7 , 'P'
Level F , 'P'
Level H , 'P'
Quick Help:
Set Buffer Pattern, P[PatternSelOrPatternLow],[PatternHi],[PatternBits],[Opts],[BlkNum],[NumBlks]
Description:
This command loads the specified data buffer blocks with the specified data pattern.
This command supports both the legacy ST-10 mode and a new mode that allows the user to
enter data patterns of up to 16-bytes (128-bits in length). The Legacy ST-10 mode only
allowed the user to enter 4-byte (32-bit) patterns.
In legacy ST-10 mode Parameter 0 selects either a pre-defined pattern (i.e. If Parameter 0
is equal to 0x1212, random data will be selected) or it contains the lower 16-bits of a
user specified pattern. In this mode Parameter 1 contains the upper 16-bits of a user
specified pattern, Parameter 2 specifies the pattern length, in bits, and the pattern
is assumed to be right justified. For example if Parameter 0 is equal to 0x5678,
Parameter 1 is equal to 0x1234 and Parameter 2 is equal to 0x14, the buffer will be
filled with the repeating 20-bit pattern 0100 0101 0110 0111 1000 which are the least
significant 4-bits of Parameter 1 followed by the 16-bits of Parameter 0 (45678).
The new 16-byte user pattern mode is selected by entering 0x1818 for Parameter 0. In
this mode Parameter 1 contains the 16-byte pattern to be used, Parameter 2 specifies
the pattern length, in bits, and the pattern is assumed to be left justified. The
pattern should be entered as a 1 to 32 character hexadecimal value with no spaces or
commas separating the bytes. For example if Parameter 0 is equal to 0x1818,
Parameter 1 is equal to 0x123456789ABC and Parameter 2 is equal to 0x24, the buffer
will be filled with the repeating 36-bit pattern 0001 0010 0011 0100 0101 0110 0111
1000 1001 which are the most significant 36-bits of Parameter 1 (123456789).
Input Parameters:
Note: When loading the buffer with the repeating 127-bit pattern, each
byte will be flipped end to end. So when displayed, the filled buffer
will actually contain the following data.
11001000 11101000 11011010 01100000 (C8 E8 DA 60 hex)
01010110 11001110 01011011 10101000 (56 CE 5B A8 hex)
10111110 00010100 00111011 11111110 (BE 14 3B FE hex)
01110000 01001111 10010011 01000000 (70 4F 93 40 hex)
The buffer will be filled with the following 15-byte repeating pattern.
F0 F3 F3 C3 03 03 03 0F 3F 3F 3F 3C 30 30 F0 hex
The buffer will be filled with the 1 to 128 bit (16 byte) pattern
entered for Parameter 1. The number of Parameter 1 bits to be repeated
will be specified by Parameter 2.
If Parameter 3 bit 1 is set or Parameter 0 is not equal to any of the values listed
above, Parameter 0 will specify the least significant 16-bits of the data pattern
with which the buffer is to be loaded. In this case Parameter 1 will specify the
most significant 16-bits of the data pattern, the maximum pattern length will be
32-bits and the specified pattern will be assumed to be right justified.
Range: 0 to 0xffff,
If Parameter 3 bit 1 is set or Parameter 0 does not select one of the pre-defined
data patterns (0x1111, 0x1212, etc.), Parameter 1 specifies the most significant
16-bits of the data pattern with which the buffer is to be loaded. In this case
Parameter 0 will specify the least significant 16-bits of the data pattern, the
maximum pattern length will be 32-bits and the specified pattern will be assumed
to be right justified.
Range: 0 to 0xffffffffffffffffffffffffffffffff
Default: 0
This parameter specifies the length, in bits, of the fill pattern specified by
parameters 0 and 1.
Range: 0 to 0x80
3 - Options.
Range: 0 to 0xFFFFFFFF
This parameter specifies the number of the first buffer block to be filled.
Range: 0 to 0xffff
Default: If this parameter is not entered and Parameter 4 was not entered, the
entire Diagnostic Write Buffer will be filled. If this parameter is
not entered and Parameter 4 was entered, only the buffer block specified
by Parameter 4 will be filled.
Output Data:
"DiagError aaaaaaaa"
where
Examples:
The following commands will load the Diagnostic Write Buffer with pre-defined patterns:
F3 2>P1111 (Incrementing Pattern - 1st block 0x0000, 2nd block 0x0001, etc.)
F3 2>P1212 (Random Pattern)
F3 2>P1313 (Alternating Pattern - 0x1313 and Random Data)
F3 2>P1414 (Isolated Pulse Pattern - 0xFFFF0000)
F3 2>P1515 (Incrementing 2-Byte Pattern - 0x0000000100020003...)
F3 2>P1616 (Pre-Defined 127-bit Pattern - 0x13175B06...)
F3 2>P1717 (Pre-Defined 15 byte 6T Pattern - 0xF0F3F3C303...)
The following commands will load the Diagnostic Write Buffer with user defined patterns:
The following commands will load the specified buffer blocks with a user defined pattern:
Revision History:
Availability:
Level 2 , 'S'
Level 3 , 'S'
Level 4 , 'S'
Level 7 , 'S'
Level 8 , 'S'
Level H , 'S'
Quick Help:
Seek to Logical Cylinder and Head, S[Cyl],[Hd],[Offset],[OffsetUnitsOpt],[SkType],[Options]
Description:
This commmand performs a seek operation to the specified User or System Area logical
cylinder and logical head address. If no address is specified, this command will
seek to the next logical track in the Test Space.
Input Parameters:
If Parameter 4 is not entered, this parameter is the address of the User Area
logical cylinder to which the seek is to be performed. If Parameter 4 is
entered, this parameter is the address of the System Area logical cylinder to
which the seek is to be performed. If both Parameter 0 and 1 are not entered,
a seek will be performed to the next logical track in the Test Space.
Default: None
If entered, this parameter contains the address of the logical head to which the
seek is to be performed. If both Parameter 0 and 1 are not entered, a seek will
be performed to the next logical track in the Test Space.
Range: 0 to 0xFF
Default: None
Default: 0
This parameter specifies the units of the Track Follow Offset value. If this
parameter is equal to 0, the specified offset will be in units of 1/256th of the
servo track width. If this parameter is equal to 1, the specified offset will
be in units of 0.1% of the data track width.
Range: 0 or 1
4 - Seek Type.
This parameter specifies whether the seek should be performed to the read, write
or write header track follow position.
Range: 0 to 0xFF
5 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
If this bit is set, the width of the destination track will be displayed
in Q14 servo counts.
If this bit is set, the channel parameters will not be reloaded into the
channel registers with the seek, else the channel parameters will be
reloaded into the channel registers.
Range: 0 to 0xFFFF
Output Data:
and
"Target User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
or
"Target System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
where
eeeeeeee is a Disk Logical Block Address on the track to which the seek was
performed
ffffff is the Logical Cylinder Address of the track to which the seek was
performed
g is the Logical Head Address of the track to which the seek was performed
hhhh is a Logical Sector Address on the track to which the seek was performed
iiiiii is the Physical Cylinder Address of the track to which the seek was
performed
j is the Logical Head Address of the track to which the seek was performed
kkkk is a Physical Sector Address on the track to which the seek was performed
If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
bits will enable the following data to be output when set.
If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
occurred. The data displayed will be formatted as shown above.
If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
follows.
where
m.m is the Persistent Track Follow Offset in units of percentage of track width
n.n is the Total Track Follow Offset in units of percentage of track width
If Bit 3 is set, the Target Address will be displayed even if no error occurred.
The data displayed will be formatted as shown above.
If Bit 6 is set, the Elapsed Time for the seek operation will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
If a seek mode was specified, the Elapsed Time for the seek operation will be displayed.
The data displayed will be formatted as shown above, under Bit 6 of verbose mode.
Some commands use an output control bit flag (specified in the input parameters above).
If "Output Control Flag- Data Track Width" is set, the following information will be displayed:
where
wwww is the width of a data track in hex and in units of servo position. Q14 scaling,
so 0x4000 is the width of a data track at nominal TPI (before VTPI and warping).
Examples:
Example #1:
To seek to a logical cylinder and head at the read track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1
Example #2:
To seek to a logical cylinder and head at the write track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,1
Example #3:
To seek to a logical cylinder and head at the write header track follow position
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,2
Example #4:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in servo counts
(in this case logical cylinder 45 head 1 at an offset of plus 100/256ths of
the servo track width)
F3 2>S45,1,64
Example #5:
To seek to a logical cylinder and head at the read track follow position with
an additional offset specified in percent of data track width
(in this case logical cylinder 45 head 1 at an offset of -10% of the data track
width)
F3 2>S45,1,FFF6,1
Example #6:
To seek to a logical cylinder and head at the read track follow position and
display the data track width in Q14 servo counts
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,4
Example #7:
To seek to a logical cylinder and head at the read track follow position and
disable reloading of the channel parameters by the seek
(in this case logical cylinder 45 head 1)
F3 2>S45,1,,,,2
Example #8:
To seek to a system logical cylinder and head at the read track follow position
(in this case logical system cylinder 54 head 0)
F3 2>S54,0,,,,1
Revision History:
Contact Detect
Availability:
Level H , 'b'
Quick Help:
Contact Detect, b[Flags],[Revs],[BaselineRevs],[StartWedge],[A],[B],[C],[D],[E],[StartHt],[HtInc],
[FixedPESThresh],[FilterDelta],[RangeStart],[RangePts],[AdjThreshSigmaLimit],[VarContactThreshBackup]
Description:
This commmand exercises a simple method of Delta PES contact detection. The methodology is
heavily leveraged from Self Test FW Test 35.
Input Parameters:
0 - Flags.
Range: 0 to 0xFFFFFFFF
If entered, this parameter contains the number of Fast IO iterations (almost analogous to
revolutions) to measure for contact detect measurement point.
Range: 0 to 0xFF
Default: 50
2 - Baseline iterations.
If entered, this parameter contains the number of Fast IO iterations (almost analogous to
revolutions) to measure for contact detect baseline measurement.
Range: 0 to 0xFF
Default: 50
3 - Starting wedge.
Default: 0
This parameter specifies the "A" pre write/read number of wedges for Fast IO.
NOTE! There is a memory limitation on this value, this # wedges directly impacts memory
set aside for Fast IO.
This parameter specifies the "B" write/read number of wedges for Fast IO.
NOTE! There is a memory limitation on this value, this # wedges directly impacts memory
set aside for Fast IO.
This parameter specifies the "C" post write/read number of wedges for Fast IO.
NOTE! There is a memory limitation on this value, this # wedges directly impacts memory
set aside for Fast IO.
This parameter specifies the "D" secondary write/read number of wedges for Fast IO.
NOTE! There is a memory limitation on this value, this # wedges directly impacts memory
set aside for Fast IO.
Default: 0
This parameter specifies the "E" post secondary write/read number of wedges for Fast IO.
NOTE! There is a memory limitation on this value, this # wedges directly impacts memory
set aside for Fast IO.
Default: 0
Default: 0
Default: 1
Default: 0.05
12 - Filter Delta.
Default: 70
This number is the range starting point for the dPES variance calculation.
This number is the range number of points for the dPES variance calculation.
This number is the Adjusted Fixed Threshold standard deviation lower limit.
Default: 0.01
Default: 6
Output Data:
where
If the Verbose Formatted ASCII Data Output Mode is selected, the following will be displayed.
Parameter setup
Flags oo
Heater Only Search
Adjusted Fixed Threshold enabled
Variable Contact Threshold enabled
Revs aa
BaselineRevs bb
APreWrNumSvoWedges cccc
BWrNumSvoWedges dddd
CPostWrNumSvoWedges eeee
DRdNumSvoWedges ffff
ETrailingNumSvoWedges gggg
HeaterStart hh
HeaterIncr ii
PesThreshold +j.jjjjjjE+j
FilterDelta kk
StartPt ll
NumPt mm
DpesVarStdevMinLimitfloat +n.nnnnnnE+n
VarthreshbackupDACstep pppp
where
oo Flags setup.
where
AdjFixedThresh +l.lllllE-l
VarContactThresh +m.mmmmmmE-m
Contact Heat nn
L,
Zone aa
Cyl bbbbbbbb
Hd cc
Freq dddd
IW ee
Ovs ee
Dur ee
ContactVar f
ContactThresh g
Clearance h
Temp ii
M,
IW ee
OVS ee
OSD ee
Read Heat jj
Preheat jj
Write Heat jj
where
aa Target zone.
cc Target head.
ee Write powers.
f Variance at contact.
g Threshold of contact.
jj Heater values.
Revision History:
Availability:
Level L , 'C'
Quick Help:
Copy Log File, C[SrcLog],[DestLog],[AppendOpt]
Description:
This command copies the specified source log file to the specified destination log file.
Input Parameters:
0 - Source Log Number.
This parameter specifies the number of the log that is the source of the data to
be copied.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the number of the log that is the destination of the data
to be copied.
Range: 0 to 0xFFFF
Default: None
If any value is entered for this parameter, the specified source log will be
appended to the end of the specified destination log.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level L , 'D'
Quick Help:
Display Log File, D[Log],[ErrCode]
Description:
This command displays the specified log file.
Input Parameters:
0 - Log Number.
This parameter specifies the number of the log to be displayed. If a Log Number
is not entered, the Active Error Log will be displayed.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
This parameter specifies the Diagnostic Error Code to be displayed. Only log
entries containing this error code will be displayed. This parameter is only
valid when displaying error log files.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
where
kkkkkkkk is the number of symbols from index at which the error occurred
tttttttt is an ASCII String that indicates the partition ( "System" or " User" )
in which the error occurred
If no error occurred and the contents of an ASCII Log are selected to be displayed,
where
Examples:
Example #1:
To create a new user-defined error log as log 10 with 64KB of memory, display
information about it, enable it as the active error log, and display the actual
contents of the log:
Availability:
Level L , 'E'
Quick Help:
Enable / Disable Logging, E[ErrLoggingOpt],[AsciiLoggingOpt],[RwStatsLoggingOpt]
Description:
This command enables / disables Error Logging, ASCII Logging and / or Read/Write
Statistics Logging. It also allows a user-created log to be selected.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Input Parameters:
This parameter enables Error Logging and selects the Active Error Log or disables
Error Logging. If this parameter is not entered, the current Error Logging mode
will not be changed. If this parameter is set to 1, then Error Logging will be
enabled and the Default Error Log will be selected as the Active Error Log. If
this parameter is set to 2 or greater, then Error Logging will be enabled and this
parameter will specify the ID of the log to be selected as the Active Error Log.
Range: 0 to 0xFFFF
Default: None
Range: 0 or 1
Default: None
Range: 0 to 2
Default: None
Output Data:
"DiagError aaaaaaaa"
where
Availability:
Level L , 'I'
Quick Help:
Display Log FileInfo, I[Log]
Description:
This command displays information about the specified log file.
Input Parameters:
0 - Log Number.
This parameter specifies the number of the log whose information is to be displayed.
If a Log Number is not entered, the Active Error Log will be displayed.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Range: 0 to 0xFFFF
Output Data:
"DiagError aaaaaaaa"
where
"Log c d"
"e Log
"Log Bytes = h, Log Entry Bytes = i, Max Entries = j, Valid Entries = k"
where
h is the total size of the log file in bytes (including unused entries)
Examples:
Example #1:
To create a new user-defined error log as log 10 with 64KB of memory, display
information about it, enable it as the active error log, and display the actual
contents of the log:
Revision History:
Availability:
Level L , 'c'
Quick Help:
Create Log File, c[Log],[LogType],[BufferOrDiskOpt],[NumBytes]
Description:
This command creates the specified log file.
Input Parameters:
0 - Log Number.
This parameter specifies the number that will be associated with the log that
is to be created.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Range: 0 to 0xFFFF
Default: None
1 - Log Type.
0 = Error Log
1 = ASCII Log
2 = Read/Write Statistics Log
Range: 0 to 2
Default: None
This parameter specifies whether the log file is to be stored in the data buffer
or on the disc.
0 = Buffer Log
1 = Disc Log
Range: 0 to 1
Default: None
This parameter specifies the size, in bytes, of the log file to be created.
Range: 0 to 0xFFFFFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
aaaaaaaa is the Diagnostic Error Code
Examples:
Example #1:
To create a new user-defined error log as log 10 with 64KB of memory, display
information about it, enable it as the active error log, and display the actual
contents of the log:
Revision History:
Availability:
Level L , 'd'
Quick Help:
Delete Log File, d[Log]
Description:
This command deletes the specified log file.
Input Parameters:
0 - Log Number.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level L , 'i'
Quick Help:
Initialize Log File, i[Log]
Description:
This command initializes the specified log file to be empty.
Input Parameters:
0 - Log Number.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level M , 's'
Quick Help:
Serial Port Test Results, s[Sub-command],[SptIndex],[ValidKey]
Description:
This diagnostic command allows users to access SPT (Serial Port Test) Results file.
Input Parameters:
0 - Sub-command
This parameter indicates the sub-command that tells the command what action was
requested.
0 - Read a sub-file indexed by the parameter 1.
1 - Write a sub-file indexed by the parameter 1. Not supported yet.
2 - Display header record.
4 - Initialize the header record. Not supported yet.
5 - Allocate space for a sub-file indexed by the parameter 1. Not supported yet.
Range: 0 to 0xFFFF
This parameter indicates the index into the Serial Port Test(SPT) Results file to be
accessed.
0 Header record
1 Self test results file
2 AFH File
3 VBAR BPI format number file
4 Test 175 delay head 0
5 Test 175 delay head 1
6 Test 175 delay head 2
7 Test 175 delay head 3
8 Test 175 delay head 4
9 Test 175 delay head 5
10 Test 175 delay head 6
11 Test 175 delay head 7
12 MR Resistance file
13 BPI File
14 DBlog data (GOTF grade-able data, TPE-0002835)
15 Adapted flawscan parameters (Test 109)
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
Range: 0x22
Default: None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the output of this command will be displayed as follows.
If the user requested to display the header record of the Serial Port Test Results file then
following will be displayed.
where
ddddd is the number of entries, a.k.a. indexes, in the Serial Port Test Results file.
eeeee is the total number of sectors available in the Serial Port Test Results file.
ffffffffff is the starting sector number of the SPT index within the SPT Result file.
If the user requested to read and display the contents of a Serial Port Test Result index then
following will be displayed.
where
Examples:
Example #1:
Display header record in the Serial Port Test Results file
F3 M>s2,,22
Example #2:
Read and display Serial Port Test Result index 2 (AFH File)
F3 M>s0,2,22
Example #2:
Read and display Serial Port Test Result index 14 (DBlog data)
F3 M>s0,e,22
Revision History:
Availability:
Level F , 'b'
Level T , 'B'
Quick Help:
Set Baud Rate, b[BaudRate],[MsecDelay]
Description:
The Set Baud Rate command sets the serial port baud rate to the specified value.
Input Parameters:
This parameter specifies the desired serial port baud rate. If this parameter
is not entered or a value of 0 is entered, the baud rate will be set to the
default value. If an unsupported baud rate value is entered, a list of the
valid baud rates will be displayed.
Range: 0 to 9999999
Default: 38400
This parameter specifies the number of milliseconds that the drive will wait for
the host to send a carriage return at the new baud rate. If a carriage return
is not received within the specified amount of time, the baud rate will be set
back to its value before the command was received. If this parameter is not
entered or a value of 0 is entered, the drive will not wait for a carriage return
after selecting the specified baud rate.
Range: 0 to 0xffff
Default: 0
Output Data:
If an unsupported baud rate value is entered, this command will display a list
of the supported baud rates.
Revision History:
Availability:
Level 2 , 'E'
Level 3 , 'E'
Level 4 , 'E'
Level 7 , 'E'
Level A , 'E'
Level T , 'E'
Quick Help:
Display / Edit Log, E[LogNum],[ErrCodeOrSpecialFuncKey],[SpecialFunc]
Description:
This command displays or modifies the specified Log File.
Input Parameters:
0 - Log Number.
The following are the default or special log files supported by the diagnostics:
0x0000: ACTIVE_ERROR_LOG_ID - Indicates the currently active error log.
0x0001: ACTIVE_ASCII_LOG_ID - Indicates the currently active ASCII log.
0x0002: ACTIVE_RW_STATISTICS_LOG_ID - Indicates the currently active R/W statistics log.
0xFFFA: QMON_STATISTICS_LOG_ID - Indicates QMON error map log.
0xFFFB: SYMBOL_ERROR_MAP_LOG_ID - Indicates symbol error map log.
0xFFFC: DEFAULT_ERROR_LOG_ID - Indicates the default error log.
0xFFFD: DEFAULT_RW_STATISTICS_LOG_ID - Indicates the default R/W statistics log.
0xFFFE: TEMPORARY_LOG_ID - This log is used internally for copy operations.
0xFFFF: INVALID_LOG_ID - Indicates an invalid log.
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
If Parameter 2 is equal to 8, 20 hex, 100 hex, 200 hex or 400 hex, this parameter
must be equal to AA hex to enable the special error log operation specified by
Parameter 2. If Parameter 2 is not equal to 8, 20 hex, 100 hex, 200 hex or 400 hex,
only log entries with the Error Code specified by this parameter will be displayed.
Range: 0 to 0xFFFF
Default: None
If Parameter 2 is equal to 8, the ASCII log will be cleared and ASCII data
entered from the serial port will be stored in the ASCII log. When a
carriage return is entered, the ASCII log will be stored to the log number
specified by Parameter 0.
If Parameter 2 is equal to 10 hex, ASCII data entered from the serial port
will be appended to the end of the ASCII log. Entering a carriage return
terminates the ASCII data to be appended.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
where
kkkkkkkk is the number of symbols from index at which the error occurred
tttttttt is an ASCII String that indicates the partition ( "System" or " User" )
in which the error occurred
If no error occurred and the contents of an ASCII Log are selected to be displayed,
where
TBD
If no error occurred and the number of unused log bytes is being displayed,
where
"Log e Starting System Area LBA = ffffffff" (for a Disc Log or)
"Log e Starting Buffer Addr = gggggggg" (for a Buffer Log)
where
Examples:
Example #1:
To create a new user-defined error log as log 10 with 64KB of memory, display
information about it, enable it as the active error log, and display the actual
contents of the log:
Revision History:
Availability:
Level T , 'F'
Quick Help:
Display / Modify Congen, F[ValueRef],[Data],[ResetEnable]
Description:
This command allows the user to display and / or modify the Congen parameters by using
either relational references or byte offset references to Congen data. Relational refer-
ences are provided through parameter names entered as double-quote-delimited strings.
WARNING! Using byte offset references to modify Congen parameters must be done thought-
fully. This usage of the command provides extremely permissive access to the Congen and
is provided for convenience when using the diagnostics in an interactive way. Use of
this option requires intimate knowledge of the layout of the Congen data and this layout
is NOT guaranteed to stay the same from one code release to the next. It is preferred
that relational references are used to change Congen and is REQUIRED if Congen changes
are to made by programs or scripts.
Input Parameters:
Default: If this parameter is not entered, the entire current Congen data will
be displayed.
1 - Congen Data.
This parameter specifies the data to be written to the Congen value specified by
parameter 0. This data can be entered as either a quote-delimited string (double
quotes) or as a variable-lengthed sequence of hex values.
Default: If this parameter is not entered, then the Congen value associated with
parameter 0 will be displayed.
If parameter 0 and parameter 1 are not entered and this parameter is set to the value
"0x22" (hex), then this will cause the drive to reset the Congen to its compile-time
default values.
Default: None.
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the Congen data will be displayed as repeated entries of the
following forms:
OR
"Byte:CCCC: Bit:F, DDDDDDDDDDDDDDD = H"
OR
"Byte:CCCC: DDDDDDDDDDDDDDD = EE ... EE"
" 'IIIIIIIIIIIII'"
OR
"Byte:CCCC: DDDDDDDDDDDDDDD ="
" EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE"
.
.
.
" EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE"
where
AA..AA = String representing the name of a Mode Page.
BB..BB = String representing the name of a Group.
CCCC = Byte offset of a Congen parameter
DD..DD = String representing the name of a Congen parameter
EE = One or more ASCII hex data values
F = Bit offset of a bit-based Congen parameter
H = 0 or 1 to indicate the state of a bit-based Congen parameter
II..II = A string representation of a string-based Congen parameter
If no error occurred and Parameter 0 and 1 are both entered, the new value of the
specified Congen Parameter will be displayed.
Examples:
Example #1:
To display the full Congen in a humanized way:
F3 T>F
Example #2:
To display a Congen parameter in a humanized way:
(The byte offset of the Congen Parameter, SerialDebugLevel, could be at a different
byte offset than this example shows. Use this command with caution when specifying
byte offsets!)
F3 T>F421
F3 T>F0421
F3 T>F"SerialDebugLevel"
Example #3:
To modify a Congen parameter:
(Although these are syntactically valid usages, they are nonsensical; However, they
all do the same thing. As mentioned above, the byte offset of the Congen parameter
shown in the example below may be different for your drive. Use this command with
caution when specifying byte offsets!)
F3 T>F421,41
F3 T>F421,"A"
F3 T>F0421,41
F3 T>F0421,"A"
F3 T>F"SerialDebugLevel",41
F3 T>F"SerialDebugLevel","A"
Revision History:
Availability:
Level T , 'J'
Quick Help:
Display / Modify CAP, J[ParmValue],[ParmId],[ParmArrayBytes],[ParmByteArrayOffset]
Description:
This command modifies and displays the Controller Adaptive Parameters (CAP).
Input Parameters:
Default: None
Default: None
Default: None
Default: None
Range: 0 to FF hex
Default: None
Range: 0 to FF hex
Default: None
Default: None
Range: 0 to FF hex
Default: None
Range: 0 to FF hex
Default: None
Default: None
Default: None
Default: None
Default: None
Default: None
If Parameter 1 is equal to E hex, Parameter 0 contains a new Destroked Buf Size
Index value.
Range: 00 to FF hex
Default: None
Default: None
Default: None
Range: 00 to FF hex
Default: None
Range: 00 to FF hex
Default: None
Default: None
Type: Unsigned array of 27 hexadecimal byte values for 256 byte CAP
Unsigned array of 1 hexadecimal byte value for 512 byte CAP
Default: None
Default: None
Default: None
Default: None
Default: None
If Parameter 1 is equal to 18 hex, Parameter 0 contains a new value for the
Reserved CAP bytes.
Type: Unsigned array of 27 hexadecimal byte values for 256 byte CAP
Unsigned array of 1 hexadecimal byte value for 512 byte CAP
Depending on the type of CAP i.e. 512 byte or 256 byte, the value of CAP_RESERVED_BYTES
in the CAP data structure changes in cap.h - hence the mentioning of two sizes above.
Default: None
This parameter specifies the ID of the CAP parameter whose value is to be displayed
and / or modified. If this parameter is not entered the current value of all CAP
parameters will be displayed. If this parameter is entered and Parameter 0 is not
entered, only the value of the CAP parameter specified by this parameter will be
displayed. If both this parameter and Parameter 0 are entered, the CAP parameter
specified by this parameter will be set equal to the value specified by Parameter 0.
00 = Validation Key
01 = HDA Serial Number
02 = PCBA Serial Number
03 = PCBA Part Number
04 = Head Count
05 = Node Name Validation Key
06 = Node Name
07 = Product Family ID
08 = Product Family Member ID
09 = PCBA Build Code
0A = ASIC Information
0B = Firmware Key
0C = Firmware Key Checksum
0D = Date of Manufacture
0E = Destroked Buf Size Index
0F = Final Mfg Op
10 = Final Mfg Error Code
11 = System Area Prep State
12 = SPT Auto Run Delay
13 = Reserved Bytes
14 = Checksum
15 = External Model Number
16 = Internal Model Number
17 = IDEMA Capacity
18 = Reserved Bytes 1
15 = Reserved Bytes 1
15 = External Model Number
16 = Internal Model Number
17 = IDEMA Capacity
18 = Reserved Bytes 1
Range: 0 to 0xFF
Default: None
Range: 0 to 0xFFFFFFFF
Default: 0
This parameter is the byte offset from the start of the parameter in the CAP
to the first byte to be modified. It is only used when modifying a CAP parameter
that is a byte array.
Range: 0 to 0xFFFFFFFF
Default: 0
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the following is an example of the CAP data that will be displayed.
For the 256-byte CAP the following information will be displayed.
CAP:
CAP:
Examples:
Example #1:
To display the value of all CAP parameters
F3 T>J
Example #2:
To display the value of CAP parameters 1 (HDA Serial Number)
F3 T>J,1
Example #3:
To set the CAP Validation Key to 0
F3 T>J0,0
Example #4:
To set the CAP HDA Serial Number to ABCDEFGH
F3 T>J"ABCDEFGH",1
Example #5:
To set the CAP PCBA Serial Number to abcdefghijkl
F3 T>J"abcdefghijkl",2
Example #6:
To set the CAP PCBA Part Number to MNOPQRSTUV
F3 T>J"MNOPQRSTUV",3
Example #7:
To set the CAP Head Count to 2
F3 T>J2,4
Example #8:
To set the CAP Node Name Validation Key to 5A
F3 T>J5A,5
Example #9:
To set the CAP Node Name to 00 11 22 33 44 55 66 77
F3 T>J0011223344556677,6
Example #10:
To set the CAP Product Family ID to C8
F3 T>JC8,7
Example #11:
To set the CAP Product Family Member ID to 23
F3 T>J23,8
Example #12:
To set the CAP PCBA Build Code to 23
F3 T>J"mnopqr",9
Example #13:
To set the CAP ASIC Information to 00 01 02 ... 8B
F3 T>J000102...8B,A
Example #14:
To set the CAP Firmware Key to 00 01 02 ... 0D
F3 T>J000102...0D,B
Example #15:
To set the CAP Firmware Key Checksum to F0E1
F3 T>JF0E1,C
Example #16:
To set the CAP Date of Manufacture to AaBbCc
F3 T>J"AaBbCc",D
Example #17:
To set the CAP Destroked Buf Size Index to 87
F3 T>J87,E
Example #18:
To set the CAP Final Manufacturing Operation to "Done"
F3 T>J"Done",F
Example #19:
To set the CAP Final Manufacturing Error Code to 9876
F3 T>J9876,10
Example #20:
To set the CAP System Area Prep State to 54
F3 T>J54,11
Example #21:
To set the CAP SPT Auto Run Delay to 62
F3 T>J62,12
Example #22:
To set the CAP Reserved Bytes to 00 11 22 ... 1A
F3 T>J000102...1A,13
Example #23:
To set the CAP Checksum to 9ABC
F3 T>J9ABC,14
Example #24:
To set bytes 10 to 13 of the CAP ASIC Information to 00 11 22 33
F3 T>J00112233,A,4,10
Revision History:
Availability:
Level T , 'O'
Quick Help:
Select Data Output Mode, O[Mode],[VerboseOpts]
Description:
This command selects the specified Data Output Mode.
Input Parameters:
0 = Quiet Mode. This mode disables the outputting of all diagnostic status.
1 = Raw Binary Mode. This mode outputs the status packets returned by the
diagnostic functions as raw binary data.
3 = Formatted ASCII Mode. This function formats the data returned in the
status packets by the diagnostic functions and outputs it as ASCII.
4 = Verbose Formatted ASCII Mode. This function formats the data returned in
the status packets by the diagnostic functions and outputs it as ASCII.
This mode will output additional information that is not typically output
by the standard Formatted ASCII Mode.
5 = Simplified Formatted ASCII Mode. This function formats the data returned
in the status packets by the diagnostic functions and outputs it as ASCII.
This mode will simplfy the output information that is normally output by
the standard Formatted ASCII Mode.
Range: 0 to 5
Range: 0 to 0xffffffff
Output Data:
Displays the Data Output Mode that is selected.
Revision History:
Quick Help:
Download Generic File, P[FileBytes]
Description:
This command downloads a generic file to the drive.
Input Parameters:
0 - File Bytes.
Range: 0 to 0xFFFFFFFF
Default: None
Output Data:
None.
Revision History:
Availability:
Level 7 , 'r'
Level T , 'R'
Quick Help:
Read Non-Volatile Adaptive Parameters, r[Opts]
Description:
This command reads the specified adaptive parameters from non-volatile memory.
Input Parameters:
If this bit is set the Servo Adaptive Parameters (SAP) will be read
from non-volatile memory.
Range: 0 to 0xffffffff,
Output Data:
"DiagError aaaaaaaa"
where
Revision History:
Availability:
Level T , 'T'
Quick Help:
Odd Even Encroachment Test, T[strt tk],[end tk],[hd],[rtry thrshld][ECC thrshld
Description:
This command will read the specified range of tracks. It will determine how many
sectors fall into various ranges of retry counts.
Input Parameters:
Range: 0 to 0xFFFFFFFF
Default: none
This parameter specifies the last logical cylinder to be tested. Up to 100d tracks
can be tested in one command. Attempting to test more tracks will cause an error.
Range: 0 to 0xFFFFFFFF
Default: none
2 - Head
Range: 0 to 0xFF
Default: none
3 - Retry Threshold
This parameter specifies the boundary between two retry buckets. Retries less
than or equal to this value go into one bucket, retries greater than this value go
into another bucket.
Range: 0 to 0xFFFFFFFF
Default: 4
This parameter specifies how much ECC correction is done on the fly. This ECC level
defines the "no retries but corrected" retry bucket.
Range: 0 to 0xFFFFFFFF
Default: 0xA
Output Data:
"DiagError aaaaaaaa"
where
The list header displays the logical head number and the ECC threshold. The column
headings indicate the threshold value. The body of the list displays:
Logical cylinder
Number of sectors that required no retries and no ECC correction
Number of sectors that required no retries but did require ECC correction
Number of sectors that required at least one retry but less than of equal to the
threshold number of retries
Number of sectors that were readable but required more than the threshold number
of retries
Number of sectors that were unreadable
Examples:
F3 T>T20,23,0,3,4
Head 0 ECC threshold 4
L Cyl perfct OTF <=3 >3 Unreadable
20 789 7 0 0 0
21 789 7 0 0 0
22 78C 4 0 0 0
23 78C 4 0 0 0
F3 T>
Revision History:
Availability:
Level T , 'V'
Quick Help:
Display Defect Lists, V[ListMask],[Hd],[StartCyl],[NumCyls],[Summary],[FlagsMask]
Description:
This command displays any combination of the user slip list, the system slip list, the
servo flaws list, and the reassigned sectors table.
Related Commands:
Some defect lists support being initialized or erased. If the list is supported, it can
be initialized with the Level T 'i' command.
Initialize Defect List (Level T 'i')
The Data Scubbing feature can be enabled or disabled or its state can be viewed by using
the Level T F"ENABLE_MICKEY_CERT" command.
Display / Modify Congen Parameter (Level T 'F')
Input Parameters:
0 - Bit Select.
This input specifies the bit select for the display (click the links to be taken to
the output description for each list):
If bit 0 (0x0001) is set, the User Area Slip List will be displayed. If bit 15 is
also set (0x8001), the entries will be displayed by index instead of cylinder/head.
User Area Slip List
If bit 1 (0x0002) is set, the System Area Slip List will be displayed. If bit 15
is also set (0x8002), the entries will be displayed by index instead of cylinder/head.
System Area Slip List
If bit 2 (0x0004) is set, the Reassigned Sectors List (or Alt List) will be displayed.
This is a list of LBAs that have either been reassigned to a new PBA or have been
marked for reassignment or as bad blocks.
Reassigned Sectors List (Alt List)
If bit 4 (0x0010) is set, the Primary Defect List (PLIST) will be displayed. This
list holds raw defect position information obtain during drive processing.
Primary Defect List (PLIST)
If bit 5 (0x0020) is set, the Primary Servo Flaws List will be displayed.
Primary Servo Flaws List
If bit 6 (0x0040) is set, the Nonresident G List will be displayed. This PBA-based
list combines the previous Nonresident G List with the Resident G List at the time
of the last format.
Nonresident G List
If bit 7 (0x0080) is set, Resident G List will be displayed. This PBA based list
holds bad spares and defects found since the last format. This list includes all
bad PBAs found since format. It will have more than one entry for a reallocated
reallocation, for example.
Resident G List
If bit 8 (0x0100) is set, the Primary DST List will be displayed. This list holds
the defect position information from the PLIST (above) expressed as sector
positions instead of SFI.
Primary DST List
If bit 9 (0x0200) is set and the feature is supported, the Data Scrub List (aka
"Mickey Cert List") will be displayed. The Data Scrub List is made up of LBAs that
have successfully completed mini-cert during reallocation (and therefore were NOT
reallocated) and a count ("Scrub Count") of how many times this has happened. This
command returns a list of the LBAs and counts as well as many of the ways the LBA
can be described by the diagnostic firmware. Requesting this list allows specifying
a start index (see parameter 2) and an element count (see parameter 3).
Data Scrub List
If bit 10 (0x0400) is set, the TA List will be displayed. This is a list of tracks
and, if supported, heads on which TAs (Thermal Asperities) have been detected.
Requesting this list allows specifying a start index (see parameter 2) and an
element count (see parameter 3).
TA List
If bit 11 (0x0800) is set, the Defective Tracks List will be displayed. This is a
list of tracks that are determined to be defective because of either TAs or too many
servo flaws. Requesting this list allows specifying a head (see parameter 1), a
start index (see parameter 2), and an element count (see parameter 3).
Defective Tracks List
If bit 15 (0x8000) is set, the user track slip list and the system track slip list
will be displayed by entry index and entry count instead of cylinder range.
Range: 0 to 0xFFFF
Default: 0001
1 - Chosen Head.
If this input is entered then defects will display only for the specified head. If
this input is not entered then defects for all heads will be displayed. NOTE: This
parameter is ignored when either bit 15 is set in parameter zero ( Bit Select ) or
this command is being used to request display of the Reassigned Sectors List (V4),
Nonresident G List (V40), Resident G List (V80), Primary DST List (V100), or the
Data Scrub List (V200).
Range: 0 to 0xFFFFFFFF
2 - Start Element.
The following information describes how to use this parameter for each list. In
all cases, if this parameter is specified, then the Element Count parameter (see
below) must also be specified.
For the user track slip list and reserve track slip list:
If bit 15 of parameter 0 (above) is set, Start Element is the index of the first
element to be displayed.
For the Servo Flaws List and Primary Servo Flaws List, Start Element is the first
cylinder of entries to be displayed.
For the P List, Start Element is the first cylinder of entries to be displayed.
For the Resident G List and Nonresident G List, Start Element is the lowest PBA of
entries to be displayed.
For the Data Scrub List, TA List, Defective Tracks List and the Reassigned Sectors
List, Start Element is the starting index.
Range: 0 to 0xFFFFFFFF This value is not range checked and the user
must use discretion selecting input values.
Default: 0
3 - Element Count.
The following information describes how to use this parameter for each list.
For the user track slip list and reserve track slip list,
If bit 15 of parameter 0 (above) is set, Element Count is the number of
list entries to display.
For the servo flaws list and primary servo flaws list, Element Count is the number
of cylinders of entries to be displayed.
For the P List, Element Count is the number of cylinders of entries to be displayed.
For the Resident G List and Nonresident G List, Element Count is the number of PBAs
of entries to be displayed.
For the Data Scrub List, TA List, Defective Tracks List and the Reassigned Sectors
List, Element Count is the number of elements requested. If this parameter is 0 or
unspecified, the whole list will be returned.
Type: Unsigned 32-bit value
Range: 0 to 0xFFFFFFFF
Default: 0
4 - Display Summary.
Range: 0 to 0xFFFFFFFF
Default: 0
5 - Flags Mask.
This parameter is used to filter the contents of the PLIST (V10). Unless a
particular PLIST entry type's bit is set, it will get filtered out of the return
data. NOTE: Works with V10 only.
Range: 0 to 0xFFFF
Default: 0xFFFF
Output Data:
"DiagError aaaaaaaa"
where
If the User Area Slip List is requested, the following information will be
displayed.
where
aaaaa is the LBA of the first good sector AFTER the slipped section. All the
address information below applies to the this LBA.
c is the sum of the lengths of all slipped areas up to and including this one.
jjjjj ( "Symbols From Index" ) is the distance in symbols from index to the start of the
LBA's sector. This value is not supported for the system area and will
always be F's for the system area slip list.
If the System Area Slip List is requested, the following information will be displayed.
where
aaaaa is the LBA of the first good sector AFTER the slipped section. All the
address information below applies to the this LBA.
c is the sum of the lengths of all sectors up to and including this one.
jjjjj ( "Symbols From Index" ) is the distance in symbols of the start of the LBA's
sector from index. This value is not supported for the system area and will
always be FFFFFF.
If the Reassigned Sectors List is requested, the following information will be displayed
NOTE: If the "summary option" is requested, then only the header information (first two
lines) will be displayed.
where
AAAA is the total number of actual reassignments that have been performed. (Note
that there may be more reassignments than are in the list because some alts
may have also been reassigned.)
PPPPPPPP is the PBA that the LBA is assigned to (whether it's reassigned or not).
cccccc is the logical cylinder associated with the LBA. This is valid only if the
LBA has not been reassigned in which case "------" will be displayed.
h is the logical head associated with the LBA. This is valid only if the LBA
has not been reassigned in which case "-" will be displayed.
ssss is the logical sector associated with the LBA. This is valid only if the
LBA has not been reassigned in which case "----" will be displayed.
YYYYYY is the distance from index in symbols of the PBA whether the LBA is
reassigned or not.
HHHHH is the number of power-on hours when the entry was made in the list. If
the time-stamp feature is not supported then this field will be zero.
MMMMMM is the number of milliseconds passed the number of hours given above when
the entry was made in the list. If the time-stamp feature is not supported
then this field will be zero.
TTTTTTTT is an 8-bit bit-significant binary value which indicates the status of the
entry in the list. The bits have the following meanings.
KKKKKKKK is an 8-bit bit-significant binary value that indicates which 512-byte host
blocks in the 1K/4K disc sector are Alts, which is indicated by a set bit)
and which ones are pending reallocation (BBMs), which is indicated by a
cleared bit. If this feature is not supported, then "--------" will be
displayed.
If the Servo Flaws List is requested, the following information will be displayed.
where
" + deallocd" Sectors associated with this flaw have been deallocated.
" + in PFT" This sector is a grown flaw that has been added to
the Primary Flaw Table.
where
cccc is the logical cylinder of the entry. Invalid cylinders are reported as "FFFFF".
eeeee is the distance of the start of the defect from index in symbols.
If the Primary Servo Flaws List is requested, the following information will be displayed.
" Primary Servo Flaws List" ( These three header lines are )
" log log phy" ( repeated every 31 entries. )
" head cyl cyl wedge"
" a bbbbb ccccc dd" ( repeated for each entry )
"Head e Entries: ff" ( repeated for each head )
" Total Entries: ggg"
where
where
"Nonresident GList"
"Resident GList"
"Primary DST List"
iiii is the distance in symbols of the start of this defect from index.
If the Data Scrub List is requested, the following information will be displayed.
where
where
bbbb is the maximum number of scrub attempts that are allowed before the LBA is
reallocated.
dddddddd is the Logical Block Address (LBA) of this entry in the Data Scrub List.
mmmmmmmm is the symbols from index. (If SFI is invalid, FFFFFFFF will be displayed.)
"TA List"
"Total Entries: LLLL, Entries Retrieved: RRRR"
where
HH is the head that the TA was found on. (If the TA List does not support
recording head information, then FF will be displayed in this field.)
If the Defective Tracks List information is requested, the following information will be
displayed.
where
HH is the head.
Examples:
Example #1:
Read the Data Scrub List, disable it, and read it again to ensure that the firmware is
honoring the AMPS bit. Then restore Congen defaults.
Example #2:
Read the Data Scrub List, temporarily initialize it, and read it again to ensure that
the firmware has properly initialized the list. (Power-cycling will restore the list.)
F3 T>V200
F3 T>i200,,22
F3 T>V200
Example #3:
Display both the TA List and the first 512 bytes of the disk file from which it is
sourced.
F3 T>V400
F3 T>r1D,,,,200,300
Revision History:
Availability:
Level 7 , 'w'
Level T , 'W'
Quick Help:
Save Adaptives To Flash, w[Seg],,22
Description:
The Save Adaptives To Flash command writes the adaptives currently in memory to flash.
This command takes about 10 seconds to complete.
Input Parameters:
NOTE: If you specifiy an adaptive set that the drive does not have in its flash,
the drive will flash LED.
NOTE: This command will only work once per power cycle.
Range: 0 to 0xFFFFFFFF
Default: 0
1 - Not used.
Range: 0x22
Default: None
Output Data:
"DiagError aaaaaaaa"
where
Examples:
Example #1:
To save current RAP values to flash:
F3 7>w2,,22
or F3 T>W2,,22
Example #2:
To save current CAP values to flash:
F3 7>w0,,22
or F3 T>W0,,22
Revision History:
Availability:
Level T , '['
Quick Help:
ASCII Log Control, [[LogFunction],[Log]
Description:
This command performs various functions associated with the ASCII Log. THe ASCII Log
is used to capture ASCII data transfered to the host over the Serial Port Interface.
Input Parameters:
If Parameter 0 is equal to 0xC, the ASCII Log will be copied to the log
specified by Parameter 1.
Range: 0 to 0xFF
Default: None
1 - Log Number.
If Parameter 0 is equal to 0xC, this parameter specifies the number of the log
to which the ASCII Log is to be copied. If Parameter 0 is not equal to 0xC, this
parameter will not be used.
Range: 0 to 0xFFFF
Default: None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and the contents of an ASCII Log are selected to be displayed,
"Log c Entries d"
where
Revision History:
Availability:
Level T , 'i'
Quick Help:
Initialize Defect List, i[DefectListSelect],[SaveListOpt],[ValidKey]
Description:
This command initializes the specified Defect List to contain no defects.
Related Commands:
The Data Scubbing feature can be enabled or disabled or its state can be viewed by using
the Level T F"ENABLE_MICKEY_CERT" command.
Display / Modify Congen Parameter (Level T 'F')
Input Parameters:
0 - List Selection.
This parameter is a bit significant value that specifies which defect lists
are to be initialized. Setting a bit indicates that the corresponding defect
list is to be initialized.
Default: None
1 - Action.
This parameter selects an action that may be commanded for each selected defect list.
When entered, the following values select the described action. (Note: Not all defect
lists support these actions.)
0 - Defect list cleared in memory but not written to non-volatile memory. (Temporary)
1 - Defect list cleared in memory and written to non-volatile memory. (Permanent)
2 - Defect list will be restored from non-volatile memory.
Range: 0 to 2
Default: 0
Range: 0x22
Default: None
Output Data:
"DiagError aaaaaaaa"
where
aaaaaaaa is the Diagnostic Error Code
Examples:
Example #1:
To initialize the User Area Slip List in volatile memory only (temporary):
T> i1,,22
Example #2:
To initialize the Reassigned Sectors List (Alt List) and save to non-volatile memory
(permanent):
T> i4,1,22
Example #3:
To reread the Reassigned Sectors List (Alt List) from disk:
T> i4,2,22
Example #4:
To initialize the Data Scrub List in volatile memory only (temporary):
T> i200,,22
Example #5:
To initialize the Data Scrub List and save to non-volatile memory (permanent):
T> i200,1,22
Example #6:
To reload all the defect list used by RW
T> id,2,22
Revision History:
Format Partition
Availability:
Level T , 'm'
Quick Help:
Format Partition,
m[Partition],[FormatOpts],[DefectListOpts],[MaxWrRetryCnt],[MaxRdRetryCnt],[MaxEccTLevel],[MaxCertifyTrkRewrites],[ValidKey],[DataPattern]
Description:
This command formats the specified partition.
Input Parameters:
0 - Partition Number.
0 = User Partition
1 = System Partition
99 = Set format corrupt state
Type: Unsigned 8-bit value
Range: 0 or 1
Default: 0
1 - Format Options.
This parameter is a bit significant value that selects the following options:
This bit is only valid when the User Partition is selected. If this
bit is equal to 1, the the Format Partition command will only format
SeaCOS Extended File (XF) space.
NOTE: This feature can be enabled or disabled at compile-time. Use
the quick help to determine whether your code supports this feature.
This bit is only valid when the User Partition is selected. If this
bit is equal to 1, media certification and defect deallocation will
be disabled.
This bit is only valid when the User Partition is selected. If this
bit is equal to 1, the User Partition sectors will not be written
with a constant data pattern.
This bit is only valid when the User Partition is selected. If this
bit is equal to 1, the primary defective sectors will be corrupted.
Range: 0 or 0xFFFFFFFF
This parameter is a bit significant value that selects the following options:
This bit is only valid when the User Partition is selected. If this
bit is equal to 1, the Format Client Defect List will be written with
contents of the Active Error Log and the option to process the Client
Defect List will be enabled. If there is no Active Error Log or there
are no R/W-related entries in the Active Error Log, then this bit will
be ignored.
This bit is only valid when the User Partition is selected. If this
bit is equal to 1, the the Primary Defect Lists will be used when
creating the defect list to be used by the format operation.
This bit is only valid when the User Partition is selected. If this
bit is equal to 1, the the Grown Defect Lists will be used when
creating the defect list to be used by the format operation.
Range: 0 or 0xFFFFFFFF
If this parameter is entered, the maximum write retry count will be set to the
specified value. This parameter is only valid when the User Partition is being
formatted (Parameter 0 is equal to 0). If this parameter is not entered, the
maximum write retry count will not be changed.
Range: 0 or 0xFFFF
Default: None.
If this paremeter is entered, the maximum read retry count will be set to the
specified value. This parameter is only valid when the User Partition is being
formatted (Parameter 0 is equal to 0). If this parameter is not entered, the
maximum read retry count will not be changed.
Range: 0 or 0xFFFF
Default: None.
If this paremeter is entered, the maximum ECC T-Level will be set to the specified
value. This parameter is only valid when the User Partition is being formatted
(Parameter 0 is equal to 0). If this parameter is not entered, the ECC T-Level
will not be changed.
Range: 0 or 0xFFFF
Default: None.
Range: 0 or 0xFFFF
Default: None. If this parameter is not entered, the default value recommended
by the R/W Firmware will be used.
For a User Partition format, this parameter must be equal to 22 Hex. If this
parameter is not equal to 22 Hex, the command will not be executed.
For a System Partition format, this parameter must be equal to DD Hex. If this
parameter is not equal to DD Hex, the command will not be executed.
Default: None
This parameter specifies the data pattern to be used when formatting the specified
partition. If this parameter is not entered, the specified partition will be
formatted with a 0x00000000 data pattern.
Range: 0 or 0xFFFFFFFF
Default: 0x00000000.
If this parameter is entered, the secondary maximum write retry count will be set
to the specified value. This parameter is only valid if all secondary ER mode
parameters (parameter 9, 10 and 11) are entered. If any of the 3 parameters is
not entered, the secondary ER mode feature is disabled. Note that this usage is
only available if RW_FORMAT_APPLY_SECONDARY_ER_MODE is enabled.
Range: 0 or 0xFFFF
Default: None.
If this paremeter is entered, the secondary maximum read retry count will be set
to the specified value. This parameter is only valid if all secondary ER mode
parameters (parameter 9, 10 and 11) are entered. If any of the 3 parameters is
not entered, the secondary ER mode feature is disabled. Note that this usage is
only available if RW_FORMAT_APPLY_SECONDARY_ER_MODE is enabled.
Range: 0 or 0xFFFF
Default: None.
If this paremeter is entered, the secondary maximum ECC T-Level will be set to the
specified value. This parameter is only valid if all secondary ER mode
parameters (parameter 9, 10 and 11) are entered. If any of the 3 parameters is
not entered, the secondary ER mode feature is disabled. Note that this usage is
only available if RW_FORMAT_APPLY_SECONDARY_ER_MODE is enabled.
Type: Unsigned 16-bit value
Range: 0 or 0xFFFF
Default: None.
Output Data:
"DiagError aaaaaaaa"
where
where
where
where
where
"Event: Media Write Start, aaa Format, Zone bb, Start Blk
cccccccc, Num Sectors dddddddd"
or
or
"Event: Media Certify Start, New Format, Zone bb, Start Blk
cccccccc, Num Sectors dddddddd"
or
or
or
or
where
bb is the zone
"SE uuuuuuu"
"HE"
where
where
Examples:
Example #1:
Perform a "quick format" (process defect lists, clear format corrupt, do not write
or certify the drive)
F3 T>m0,6,,,,,,22
Example #2:
Perform a "quick format" (don't process defect lists i.e. unslip and unalt, do not
write or certify the drive)
F3 T>m0,6,0,,,,,22
Example #3:
Perform a format with the default data pattern 0x00000000 and certify with event
reporting enabled:
F3 T>m0,8,,,,,,22
Example #4:
Perform a format and certify with event reporting enabled, set max write retries
to 16, set max read retry count to 8, max ECC T-Level to 0, and track rewrite
during certify retry threshold to 20:
F3 T>m0,8,,10,8,0,14,22
Example #5:
Perform a format with user input data pattern 0xFFFFFFFF and certify with event
reporting enabled:
F3 T>m0,8,,,,,,22,ffffffff
Example #6:
Perform a format with secondary ER mode feature. Two sets of ER mode parameters are
entered. First set is used in the first pass of format/certify, set max write retry
to 15, max read retry to 5 and max ECC T-Level to 6. Second set is used in the rest
passes, set max write retry to 17, max read retry to 7 and max ECC T-Level to 14.
Note that this usage is only available if RW_FORMAT_APPLY_SECONDARY_ER_MODE is enabled.
F3 T>m0,1,2,15,5,6,,22,,17,7,14
Example #7:
Determine the current format state and set format corrupt:
F3 T>m99
Revision History:
Read File
Availability:
Level T , 'r'
Quick Help:
Read File, r[FileId],[VolumeNum],[CopyNum],[ByteOffset],[Length],[OutputFmt]
Description:
This command reads the specified file and sends it to the host over the serial port
interface using the YMODEM transfer protocol. This protocol is supported by most terminal
programs, like Windows HyperTerminal. The File Volume, File ID and copy number are
entered to select the file. In addition the user can select ASCII-HEX or ASCII format for
the output data.
Input Parameters:
0 - File ID Number.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the File Volume where the file is read from.
Please refer to the following list of File Volume numbers to select the value of this parameter.
File Volume numbers
Range: 0 to 0xFFFF
2 - Copy Number.
Range: 0 to 0xFFFF
Default: 0
3 - File Offset.
This parameter specifies the byte offset in the file where the read starts.
Range: 0 to 0xFFFFFFFF
Default: 0
4 - Transfer Length.
This parameter specifies the number of consecutive bytes of the data to transfer.
Range: 0 to 0xFFFFFFFF
5 - Output Format.
Bit [3:0] - This bit fileds selects the binary file transfer protocol.
1 - YMODEM protocol
Bit [8] - When set, this bit selects ASCII-HEX output format.
Bit [9] - When set, this bit selects ASCII output format.
Range: 0 to 0xFFFF
Output Data:
"DiagError aaaaaaaa"
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, then the output of this command will be displayed as follows.
where
gggggggg is the byte offset within the file where the data is located
If the binary output format was selected by specifying desired file transfer protocol
in bit 0 through 3 of the input parameter 5, then the following will be displayed
when the drive is ready to send the file to the host.
where
If bit 8 of the input parameter 5 is set then file data will be displayed in ASCII-HEX format
as shown below.
where
If bit 9 of the input parameter 5 is set then file data will be displayed in ASCII format
as shown below.
This mode is especially useful for displaying text files.
where
If both of bit 9 and bit 8 of the input parameter 5 are set then file data will be displayed
in ASCII-HEX format along with ASCII format as well as like followings.
where
Example #1:
To read the Primary Defects super file from the System Disc volume and send it to the
host using the YMODEM protocol
F3 T>r1b
Example #2:
To read the Primary Defects super file from the System Disc volume and send it to the
host using the YMODEM protocol at 115200 bps baud rate.
F3 T>B115200
User should change the baud rate setting to 115200 bps in the terminal program.
F3 T>r1b
Example #3:
To read the CAP file from the Flash volume and send it to the host using the YMODEM
protocol
F3 T>r208,9
Example #4:
To read the CAP file from the System Disc volume and display it in the ASCII-HEX
output format
F3 T>r208,,,,,100
Example #5:
To read the CAP file from the System Disc volume and display it in the ASCII output
format
F3 T>r208,,,,,200
Example #6:
To read the CAP file from the System Disc volume and display it in the ASCII-HEX and
the ASCII output format
F3 T>r208,,,,,300
Revision History:
Write File
Availability:
Level T , 'w'
Quick Help:
Write File, w[FileId],[VolumeNum],[CopyNum],[ByteOffset]
Description:
This command receives file data from the host over the serial port interface using the
YMODEM transfer protocol, then write the received data to the file specified by the user.
This file transfer protocol is supported by most terminal programs, like Windows
HyperTerminal. The File Volume, File ID and copy number are entered to select the file.
Input Parameters:
0 - File ID Number.
Range: 0 to 0xFFFF
Default: None
This parameter specifies the File Volume number of the file to write.
Please refer to the following list of File Volume numbers to select the value of this parameter.
File Volume numbers
Range: 0 to 0xFFFF
2 - Copy Number.
This parameter specifies the File Copy number of the file to write.
Range: 0 to 0xFFFF
Default: 0
3 - File Offset.
This parameter specifies the byte offset in the file where the received data
will be written to.
Range: 0 to 0xFFFFFFFF
Default: 0
Output Data:
The drive will display following message when it's ready to receive the file from the host.
where
aa is the time-out limit that the drive waits for the host to start file transfer protocol
"DiagError aaaaaaaa"
where
If no error occurred, then the output of this command will be displayed as follows.
where
gggggggg is the byte offset within the file where the data is located
Examples:
Example #1:
To receive the file data from the host using the YMODEM protocol then write the
received data to the Primary Defects super file in the System Disc volume.
F3 T>w1b
Example #2:
To receive the file data from the host using the YMODEM protocol at 115200 bps baud
rate then write the received data to the Primary Defects super file in the System
Disc volume.
F3 T>B115200
User should change the baud rate setting to 115200 bps in the terminal program.
F3 T>w1b
Example #3:
To receive the file data from the host using the YMODEM protocol then write the
received data to the SPT 1 disc file file in the System Disc volume.
F3 T>q319
Revision History:
Availability:
Level T , 'y'
Quick Help:
List SIM files, y[Volume], [FileDescriptor]
Description:
This command lists the volume, file descriptor, location, size, and CHS (if applicable) of
each SIM file in the following volumes:
FAT_DROOT_VOLUME
FAT_DBROOT_VOLUME
FAT_IBROOT_VOLUME
FAT_SYS_DISC_VOLUME
FAT_DACCESS_BUF_VOLUME
FAT_IACCESS_BUF_VOLUME
FAT_FLASH_VOLUME
Input Parameters:
0 - Volume
This parameter indicates which volume to print SIM files from. Please refer to the
following list of File Volume numbers to select the value of this parameter.
Range: 0 to 0xF. Only volumes 0-5 and 9 are supported at this time. Any other value
in this range will print all volumes.
1 - File Descriptor
Output Data:
File Vol FD Location Size Cylinder Hd Sector
---- --- ---------- ---------- --------- -------- -- ------
0000 000 0xfc000000 0000000000 0x0000004 0x03d0e7 00 000000
0001 000 0xfc001203 0x000055ef 0x0000008 0x03d0ff 00 0x006f
0002 000 0xfc002204 0x0000563f 0x0000003 0x03d0ff 00 0x00bf
0003 000 0xfc003205 0x00005617 0x0000002 0x03d0ff 00 0x0097
0004 000 0xfc004206 0x00005667 0x0000002 0x03d0ff 00 0x00e7
0005 000 0xfc00520c 0x0000ba21 0x0000181 0x03d11b 00 0x00e1
0006 000 0xfc00620d 0x0000b319 0x0000708 0x03d119 00 0x00f9
0007 000 0xfc00720e 0x0000bba2 0x0000708 0x03d11b 00 0x0262
0008 000 0xfc000000 0x00025a10 0x0000004 0x03b4bb 01 000000
0009 000 0xfc001203 0x0002afff 0x0000008 0x03b4d3 01 0x006f
0010 000 0xfc002204 0x0002b04f 0x0000003 0x03b4d3 01 0x00bf
Examples:
F3_T>y0
F3_T>y3
F3_T>y,fc30a044
Revision History:
1.0 Initial Revision
Availability:
Online , CTRL-A
Quick Help:
Display Firmware Revision
Description:
This command displays the Firmware Revision of the drive.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
"Package Version: CCCCCC.CCCC.CCCCCC.CCCCCCCC, Package P/N: DDDDDDDDD, Package Builder ID: EE,..."
"Package Build Date: MM-DD-YYYY, Package Build Time: HH:MM:SS, Package CFW Version: GGGG.GGGG.GGGGGG.GGGG,..."
"Package SFW1 Version: IIII, Package SFW2 Version: JJJJ, Package SFW3 Version: KKKK, Package SFW4 Version: LLLL"
where
example output:
"Package Version: MS1240.STD1.AA0502.STD10013, Package P/N: 100421943, Package Builder ID: C4,"
"Package Build Date: 03/08/2007, Package Build Time: 151452, Package CFW Version: MS12.STD1.123456.B600,"
"Package SFW 1 Version: B413, Package SFW 2 Version: C415, Package SFW 3 Version: ----, Package SFW 4 Version: ----"
A warning message may be printed which indicates that some of the Firmware Package information
has been truncated. The most likely causes of this warning would be that Package information is
invalid or that this diagnostic does not support the Firmware Package format returned by the drive.
example output:
where
where
where
Revision History:
Quick Help:
Get Thermistor Temperature
Description:
This command get the thermistor temperature of the drive.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and the Channel temperature was returned, the following message
will be displayed.
where
If no error occurred and the Preamp temperature was returned, the following message
will be displayed.
where
If no error occurred and the Thermistor temperature was returned, the following
message will be displayed.
"Ref voltage dddd Thermistor voltage eeee Thermistor temp in degrees C ffff, FFd"
where
Revision History:
Firmware Reset
Availability:
Online , CTRL-C
Quick Help:
Firmware Reset
Description:
This command spins down the drive, delays 5 seconds and jumps to the Power On Reset
function. A Control Z command will be required to enable the Diagnostic Mode commands
following the completion of the reset.
Input Parameters:
None
Output Data:
The following string will be output to indicate that the drive is in the process
of spinning down.
"Spinning Down"
When the spin down is complete, the following information will be displayed.
where
a is minutes
b is seconds
c is milliseconds
d is microseconds
When delaying following spin down, the following string will be displayed.
where
After the delay is complete, the following string will be output to indicate that
the reset is being performed.
Revision History:
Availability:
Online , CTRL-D
Online , CTRL-N
Quick Help:
Toggle R/W Tracing
Description:
This command steps through all possible combinations of enabled / disabled states for
the following three R/W Tracing features:
Retry Tracing
Command Tracing
Error Tracing
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
"e c r = a b c"
where
Revision History:
Availability:
Online , CTRL-E
Quick Help:
Display Native Interface Configuration
Description:
This command displays the Native Interface configuration information.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and the native interface is AT or SATA, the following information
will be displayed.
where
If the Native Interface type is unsupported, the following message will be displayed.
Revision History:
Availability:
Online , CTRL-F
Quick Help:
Display Native Interface Read Cache Information
Description:
This command displays the Native Interface's read cache information.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
"Dd->Dd->Dd->Dd->Dd->Dd->Dd->Dd->Dd->Dd->Dd->Dd->Dd->Dd->Dd->Dd->"
** see remark below
"Hh->Hh->Hh->Hh->Hh->Hh->Hh->Hh->Hh->Hh->Hh->Hh->Hh->Hh->Hh->Hh->"
*** see remark below
where
cc is the cache segment entry number, also referred as cache segment index
ffff is the difference between target LBA and Start LBA of the cache table entry
gggg is the cache search result status indicating hit type (Full, Partial, etc)
iiii is the first sector's VBM Map Index into buffer memory
jjjj is the last sector's VBM Map Index into buffer memory
kkkk is the linked list pointer to the next cache segment entry
llll is the linked list pointer to the previous cache segment entry
nn is the flag that indicates the cache segment's status (Write pending, etc)
oo..oo is the target LBA that will be compared to the cache table entries
for the purpose of determining cache hits
pppp is the target sector count that will be compared to the cache table entries
uuu is the total number of cache entries that had a hit during the cache search
vvv is the entry number of the best cache hit for the cache search
ww is the entry number used to determine which of several candidate hits is labeled
as the best hit
xx..xx is the value, Target LBA ?Start LBA, for the cache table entry
currently being searched
yy is the first cache entry of cache hit of any kind detected during the search
zz is the last cache entry of cache hit of any kind detected during the search
Dd is the entry numbers of Valuable cache segments showing from the Most to the Least
Hh is the entry numbers of Free cache segments showing from Head to Tail
Iiii is the User area sector size in bytes including IODEC field
Jjjj is the User area sector size in bytes including IODEC field, for VBM conversion
Revision History:
Availability:
Online , CTRL-I
Quick Help:
Display Controller Registers
Description:
This command displays the controller registers to the serial port.
Input Parameters:
None
Output Data:
The controller registers will be output as 16-bit values. There are eight columns
per block of registers. For example:
Revision History:
Availability:
Online , CTRL-K
Online , CTRL-Y
Quick Help:
Display DST Status
Description:
This command displays the status (percent complete, etc) of any current Drive
Self Test (DST) activity.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the Drive Self Test (DST) Status will be displayed as follows.
Revision History:
Availability:
Online , CTRL-L
Quick Help:
Display Sign On Message
Description:
This command displays the sign on message, which includes Product configuration,
HDA configuration, PCBA configuration, Firmware revision and Feature configuration
information.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
"aaaaaaaaaaaaaaaaaaaaaaaa"
"Product FamilyId: cc, MemberId: dd"
"HDA SN: eeeeeeee, RPM: ffff, Wedges: gggg, Heads: h, OrigHeads: t, Lbas: jjjjjjjj, PreampType: kk kk"
"PCBA SN: llllllll, Controller: mmmmm, Channel: pppp, PowerAsic: qqqq Rev rr, BufferBytes: ssssssss"
where
aa...aa is a description of the product.
t is the number of heads at build-time from servo symbol table. Active in rev13 and beyond.
"Package Version: CCCCCC.CCCC.CCCCCC.CCCCCCCC, Package P/N: DDDDDDDDD, Package Builder ID: EE,..."
"Package Build Date: MM-DD-YYYY, Package Build Time: HH:MM:SS, Package CFW Version: GGGG.GGGG.GGGGGG.GGGG,..."
"Package SFW1 Version: IIII, Package SFW2 Version: JJJJ, Package SFW3 Version: KKKK, Package SFW4 Version: LLLL"
where
example output:
"Package Version: MS1240.STD1.AA0502.STD10013, Package P/N: 100421943, Package Builder ID: C4,"
"Package Build Date: 03/08/2007, Package Build Time: 151452, Package CFW Version: MS12.STD1.123456.B600,"
"Package SFW 1 Version: B413, Package SFW 2 Version: C415, Package SFW 3 Version: ----, Package SFW 4 Version: ----"
A warning message may be printed which indicates that some of the Firmware Package information
has been truncated. The most likely causes of this warning would be that Package information is
invalid or that this diagnostic does not support the Firmware Package format returned by the drive.
example output:
where
where
where
"Features:"
"- AFH tttttttt"
"- VBAR tttttttt" or "- VBAR with adjustable zone boundaries tttttttt"
"- Volume Based Sparing tttttttt"
"- IOEDC tttttttt"
"- IOECC tttttttt"
"- DERP Read Retries tttttttt"
"- LTTC-UDR2 uuuuuuuu"
where
Revision History:
Abort
Availability:
All Level , Carriage Return
Online , Carriage Return
Quick Help:
Abort
Description:
This command terminates any diagnostic command that is in progress and disables looping.
Input Parameters:
None
Output Data:
None
Revision History:
Availability:
Online , CTRL-D
Online , CTRL-N
Quick Help:
Toggle R/W Tracing
Description:
This command steps through all possible combinations of enabled / disabled states for
the following three R/W Tracing features:
Retry Tracing
Command Tracing
Error Tracing
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
"e c r = a b c"
where
Revision History:
Availability:
Online , CTRL-O
Quick Help:
Advance Servo Tracing State
Description:
This command steps through all possible combinations of enabled / disabled states
for the following Servo Tracing states.
Input Parameters:
None.
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the Advance Servo Tracing State output information will be displayed
as follows.
"E R C = a b c"
where
a is equal to 1 if Servo Error tracing is enabled and 0 if it is not. (not currently supported>
b is equal to 1 if Servo Response tracing is enabled and 0 if it is not. (not currently supported>
Revision History:
Quick Help:
Toggle Diag Idle Mode
Description:
This command toggles the selected idle mode features. If the selected features are
enabled, this command will disable them. If the selected features are disabled, this
command will enable them.
Features are selected [ and enabled ] by being enabled with the level 2 M command.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Availability:
Online , CTRL-Q
Quick Help:
Resume Interface Task
Description:
If the Interface Task was previously paused by the Online Control S command, this
command resumes execution of the Interface Task.
Input Parameters:
None
Output Data:
None
Revision History:
Availability:
Online , CTRL-R
Quick Help:
Enable ASCII Online Serial Port Mode
Description:
This command enables ASCII Online Serial Port Mode. In this mode, non-packet serial
port mode is selected, ASCII online serial port commands are enabled and diagnostic
mode commands are disabled.
Input Parameters:
None
Output Data:
Revision History:
Availability:
Online , CTRL-S
Quick Help:
Pause Interface Task
Description:
If Diagnostic Mode is not currently enabled, this command pauses the Interface Task
and enables Diagnostic Mode.
Input Parameters:
None
Output Data:
None
Revision History:
Availability:
Online , CTRL-T
Quick Help:
Enable ESLIP Serial Port Mode
Description:
This command enables ESLIP serial port mode. In this mode, ASCII online and
diagnostic mode commands are disabled and packet serial port mode is selected.
Input Parameters:
None
Output Data:
If the drive has been in either ASCII Online Mode or in ASCII Diag Mode, then the
following string will be displayed:
"ESLIP Mode"
Revision History:
Display Congen
Availability:
Online , CTRL-U
Quick Help:
Display Congen
Description:
This command displays the Congen information.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
" 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"
" 0000: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX"
.
.
.
" YYYY: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX"
where:
XX = ASCII hex data
YYYY = Ending byte offset of last row of data
ZZZZ = Byte offset of beginning of Drive Native Info
WWWW = Byte offset of ending of Drive Native Info
ss..ss = Strings representing Congen information
Revision History:
Availability:
Online , CTRL-V
Quick Help:
Toggle Interface Command Echo
Description:
This command toggles the Interface Command Echo state
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the Toggle Interface Command Echo state will be displayed as
follows.
"EchoInterfaceCmds: XXX"
where
If the Toggle Interface Command Echo is enabled, Interface Command State will be
displayed when new commands are received on the Native Interface.
For details about the format of the Interface Command State, please refer to the
Online '~' Command.
Revision History:
Availability:
Online , CTRL-W
Quick Help:
Enable and Init RW Statistics
Description:
This command turns on and read / write statistics gathering and zeros the error counters.
Related Commands:
any level ` - display error counters
level L i - L>iFFFD will zero out the error counters.
level L E - L>E,,0 will disable statistics gathering
- L>E,,1 will enable statistics gathering
- L>E,,2 will zero out the error counters.
Input Parameters:
none
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the R/W statistics control information will be displayed as follows.
where
Revision History:
Availability:
Online , CTRL-X
Quick Help:
Display Native Interface and Read/Write Command History
Description:
This command displays the command history of the Native Interface and Read/Write
subsystem.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the Native Interface Command History will be displayed as follows.
where
ccc is the number of ATA commands to display. The oldest one is displaed first
dddddddddd is the time stamp(ms) of the ATA command when it was recorded
where
iii is the number of Read/Write commands to display. The oldest one is displayed first
jjjjjjjjjj is the time stamp(ms) of the Read/Write command when it was recorded
llllllll is the excution time duration for which the Read/Write request ran.
If this is 99999999, it means the excution time is indeterminate
If the R/W request options are defined as bits, then the following
definitions should be used to decode the R/W options.
"B Aaaaaaaa"
"L Bbbbbbbb"
"CH Cccccc.D"
"CHS Cccccc.D.Eeee"
where
"BO Ffffff"
"VL Gggg.Hhhh"
"BES Iiiiiiii.Jjjjjjjj.Kkkkkkkk"
where
Remarks
* - This line is repeated for the number of ATA commands, specified by the ccc described above
** - This line is repeated for the number of Read/Write commands, specified by the iii described above.
Revision History:
Availability:
Online , CTRL-K
Online , CTRL-Y
Quick Help:
Display DST Status
Description:
This command displays the status (percent complete, etc) of any current Drive
Self Test (DST) activity.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, then the Drive Self Test (DST) Status will be displayed as follows.
where
aa is the percent completion of the entire self test process.
Revision History:
Availability:
Online , CTRL-Z
Quick Help:
Enable ASCII Diagnostic Serial Port Mode
Description:
This command enables ASCII Diagnostic Serial Port mode. In this mode, non-packet serial
port mode is selected and online and ASCII seriap port diagnostic mode commands are
enabled.
Input Parameters:
None
Output Data:
Revision History:
Availability:
Online , ESC
Quick Help:
Abort Looping Command or Batch File
Description:
This command aborts the looping of a diagnostic command or the execution of a Batch
File.
Input Parameters:
None
Output Data:
None
Revision History:
Availability:
Online , CTRL-\
Quick Help:
Toggle Debug Display Enable
Description:
This command toggles the Debug Display Enable state.
Input Parameters:
None
Output Data:
If the Debug Display is enabled, the following message will be displayed.
Revision History:
Pause Output
Availability:
Online , ' '
Quick Help:
Pause Output
Description:
This command pauses the output of a diagnostic command that is in progress. Entering
any character will cause the command output to continue.
Input Parameters:
None
Output Data:
None
Revision History:
Availability:
Online , '!'
Quick Help:
Display Current Read Channel Settings
Description:
This command displays the current value of the Read Channel, Preamp and Power ASIC
registers.
Input Parameters:
None
Output Data:
If a single Read Channel register was read, the following information will be displayed.
where
If multiple Read Channel registers were read, the following information will be
displayed.
"Read Channel"
" 0 1 2 3 4 5 6 7 8 A B C D E F"
"cccc: dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd"
where
If a single Preamp register was read, the following information will be displayed.
where
"Preamp"
" 0 1 2 3 4 5 6 7 8 9 A B C D E F"
"cc: dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd"
where
If a single Power ASIC register was read, the following information will be displayed.
where
If multiple Power ASIC registers were read, the following information will be displayed.
"Power ASIC"
" 0 1 2 3 4 5 6 7 8 9 A B C D E F"
"cc: dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd"
where
Revision History:
Availability:
Online , '$'
Quick Help:
Display Read/Write Statistics By Zone
Description:
This command displays read and write error counters for each head and zone.
Related Commands:
any level Ctl-W - enables RW statistics gathering and zeros out the error counters
level L i - L>iFFFD will zero out the error counters.
level L E - L>E,,0 will disable statistics gathering
- L>E,,1 will enable statistics gathering
- L>E,,2 will zero out the error counters
Input Parameters:
None
Output Data:
Rbit Hard Soft OTF Raw Rsym Sym Wbit Whrd Wrty
X.X X.X X.X X.X X.X X.X X.X X.X X.X X.X
X.X X.X X.X X.X X.X X.X X.X X.X X.X X.X
Rbit: The number of BITS drive successfully read. This counter increments by
(bytes per sector) * 8 for each sector successfully read.
This value is forced to be at least equal to the raw error rate. This is
to prevent the math from blowing up if no sectors have been successfully
read.
Hard: Records errors that could not be read. This counter increments by one per
set of retires.
Soft: Records errors that required one or more retries, including errors that could not
be read. This counter increments by one per set of retries.
OTF: Records any error that caused the disk sequencer to stop. This counter
increments by one for each ECC'd data field that needed correction. Note that
4 by 1K sector drives can therefore get this counter incremented by 4 for one
disk sector read. This counter increments on each separate retry.
Raw: Records count of all sectors in error that the disk encountered, including
those sectors the disk was able to correct. A given sector will only increment
this counter by 1 no matter how many symbols are in error. ( This accounting
is just like ST-10 code. )
Rsym: The number of symbols the drive attempted to read. This includes user data,
IOECD, and ECC fields. Each time a sector read is retried, the number of
symbols read is incremented by the number of symbols in a sector.
Wbit: The number of BITS drive succesfully wrote. This counter increments by
(bytes per sector) * 8 once for each sector successfully written.
Whrd: Write hard errors. This counter increments by one each time the drive fails
to write a sector. This counter only increments once per set of retries.
Wrty: Records errors that required one or more retries but did not require
full error recovery configuration to write. This counter increments
by one per set of retries.
Example:
10 512 byte sectors read ( 10*512*8 bits )
18 OTF corrections
4 soft errors
2 hard errors
--- --- --- --- --- --- --- --- ---
rbit = log10 (8*512*8)
hard = log10 ( 2 / (8*512*8) )
soft = log10 ( (2+4) / (8*512*8) )
OTF = log10 ( (2+4+18) / (8*512*8) )
Examples:
Example #1:
F3 2> $
Hd Zn Rbit Hard Soft OTF Raw Rsym Sym Wbit Whrd Wrty
0 0 8.1 8.1 8.1 7.4 5.7 7.2 4.6 0.0 0.0 0.0
0 1 7.8 7.8 7.8 7.0 5.9 6.9 4.6 0.0 0.0 0.0
0 2 7.9 7.9 7.9 7.3 5.7 6.9 4.3 0.0 0.0 0.0
0 3 8.0 8.0 8.0 7.1 6.1 7.0 4.6 0.0 0.0 0.0
0 4 7.9 7.9 7.9 7.1 5.7 7.0 4.5 0.0 0.0 0.0
0 5 8.0 8.0 8.0 7.1 5.5 7.1 4.4 0.0 0.0 0.0
0 6 8.1 8.1 8.1 7.2 5.7 7.1 4.4 0.0 0.0 0.0
0 7 7.9 7.9 7.9 7.2 5.7 7.0 4.5 0.0 0.0 0.0
0 8 7.5 7.5 7.5 7.5 5.3 6.6 4.0 0.0 0.0 0.0
0 9 7.9 7.9 7.9 7.0 5.6 6.9 4.3 0.0 0.0 0.0
0 A 7.8 7.8 7.8 6.9 5.5 6.9 4.3 0.0 0.0 0.0
0 B 7.9 7.9 7.9 7.0 5.0 6.9 3.8 0.0 0.0 0.0
0 C 7.5 7.5 7.5 7.0 5.3 6.6 4.2 0.0 0.0 0.0
0 D 7.9 7.9 7.9 6.9 5.5 6.9 4.2 0.0 0.0 0.0
0 E 7.5 7.5 7.5 7.0 5.6 6.6 4.4 0.0 0.0 0.0
0 F 7.5 7.5 7.5 6.9 5.4 6.5 4.1 0.0 0.0 0.0
Sumry: 9.1 9.1 9.1 7.1 5.5 8.1 4.2 0.0 0.0 0.0
Hd Zn Rbit Hard Soft OTF Raw Rsym Sym Wbit Whrd Wrty
1 0 7.9 7.9 7.9 7.2 6.0 6.9 4.6 0.0 0.0 0.0
1 1 7.8 7.8 7.8 7.0 5.8 6.9 4.5 0.0 0.0 0.0
1 2 7.9 7.9 7.9 7.2 5.8 6.9 4.5 0.0 0.0 0.0
1 3 7.9 7.9 7.9 7.3 5.8 7.0 4.6 0.0 0.0 0.0
1 4 8.1 8.1 8.1 7.2 6.0 7.2 4.6 0.0 0.0 0.0
1 5 8.1 8.1 8.1 7.2 5.8 7.2 4.5 0.0 0.0 0.0
1 6 8.1 8.1 8.1 7.1 6.0 7.1 4.5 0.0 0.0 0.0
1 7 8.0 8.0 8.0 7.1 5.7 7.1 4.4 0.0 0.0 0.0
1 8 8.0 8.0 8.0 7.1 5.9 7.0 4.6 0.0 0.0 0.0
1 9 8.0 8.0 8.0 7.1 5.8 7.0 4.4 0.0 0.0 0.0
1 A 7.6 7.6 7.6 7.3 5.7 6.6 4.4 0.0 0.0 0.0
1 B 7.5 7.5 7.5 7.5 5.8 6.6 4.7 0.0 0.0 0.0
1 C 7.8 7.8 7.8 6.9 5.7 6.9 4.5 0.0 0.0 0.0
1 D 7.5 7.5 7.5 7.2 5.6 6.6 4.4 0.0 0.0 0.0
1 E 8.0 8.0 8.0 7.1 5.6 7.0 4.3 0.0 0.0 0.0
1 F 7.7 7.7 7.7 7.0 5.8 6.7 4.3 0.0 0.0 0.0
Sumry: 9.1 9.1 9.1 7.2 5.8 8.1 4.5 0.0 0.0 0.0
Revision History:
Quick Help:
Display Active Status
Description:
The Display Active Status command displays the drives's active status information.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred and the current Read/Write Sector Address is in the User Area,
the following information will be displayed.
"Current User LBA cccccccc LLL CHS dddddd.e.ffff PLP CHS gggggg.h.iiii"
"R/W Status j R/W Error kkkkkkkk lll...l"
If no error occurred and the current Read/Write Sector Address is in the User Area,
the following information will be displayed.
"Current System LBA cccccccc LLL CHS dddddd.e.ffff PLP CHS gggggg.h.iiii"
"R/W Status j R/W Error kkkkkkkk lll...l"
where
j is the sense status returned by the R/W subsystem for the last operation
kkkkkkkk is the error code returned by the R/W subsystem for the last operation
lll...l is a string that indicates whether or not the drive is currently ready
Revision History:
PrepSecondaryOnlineCmd
Availability:
Online , ':'
Quick Help:
PrepSecondaryOnlineCmd
Description:
This command moves the drive to secondary online command mode.
Input Parameters:
None
Output Data:
":2:"
Revision History:
1.0 Intial Revision
Quick Help:
Decrement Read/Write Scope Sync
Description:
This command decrements the number of the Servo Wedge for which the Scope Sync Pulse
will be generated.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Availability:
Online , '>'
Quick Help:
Increment Read/Write Scope Sync
Description:
This command increments the number of the Servo Wedge for which the Scope Sync Pulse
will be generated.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
where
Revision History:
Availability:
Online , '?'
Quick Help:
Display Diagnostic Buffer Information
Description:
The Display Diagnostic Buffer Information command displays information about buffer
memory used to process diagnostic requests.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, the Diagnostic Buffer File Information will be displayed as follows
for each Diagnostic Buffer File.
"Blks cccccc-dddddd (eeeeee), BufAddr ffffffff-gggggggg, DBA hhhhhhhh, BytesPerBlk iii jjj...j";
where
Revision History:
Availability:
Online , '`'
Quick Help:
Display Read/Write Statistics
Description:
This command displays read and write error counters for each head.
Related Commands:
any level Ctl-W - enables RW statistics gathering and zeros out the error counters
level L i - L>iFFFD will zero out the error counters.
level L E - L>E,,0 will disable statistics gathering
- L>E,,1 will enable statistics gathering
- L>E,,2 will zero out the error counters
Input Parameters:
None
Output Data:
Rbit Hard Soft OTF Raw Rsym Sym Wbit Whrd Wrty
X.X X.X X.X X.X X.X X.X X.X X.X X.X X.X
X.X X.X X.X X.X X.X X.X X.X X.X X.X X.X
Rbit: The number of BITS drive successfully read. This counter increments by
(bytes per sector) * 8 for each sector successfully read.
This value is forced to be at least equal to the raw error rate. This is
to prevent the math from blowing up if no sectors have been successfully
read.
Hard: Records errors that could not be read. This counter increments by one per
set of retires.
Soft: Records errors that required one or more retries, including errors that could not
be read. This counter increments by one per set of retries.
OTF: Records any error that caused the disk sequencer to stop. This counter
increments by one for each ECC'd data field that needed correction. Note that
4 by 1K sector drives can therefore get this counter incremented by 4 for one
disk sector read. This counter increments on each separate retry.
Raw: Records count of all sectors in error that the disk encountered, including
those sectors the disk was able to correct. A given sector will only increment
this counter by 1 no matter how many symbols are in error. ( This accounting
is just like ST-10 code. )
Rsym: The number of symbols the drive attempted to read. This includes user data,
IOECD, and ECC fields. Each time a sector read is retried, the number of
symbols read is incremented by the number of symbols in a sector.
Wbit: The number of BITS drive succesfully wrote. This counter increments by
(bytes per sector) * 8 once for each sector successfully written.
Whrd: Write hard errors. This counter increments by one each time the drive fails
to write a sector. This counter only increments once per set of retries.
Wrty: Records errors that required one or more retries but did not require
full error recovery configuration to write. This counter increments
by one per set of retries.
Example:
10 512 byte sectors read ( 10*512*8 bits )
18 OTF corrections
4 soft errors
2 hard errors
--- --- --- --- --- --- --- --- ---
rbit = log10 (8*512*8)
hard = log10 ( 2 / (8*512*8) )
soft = log10 ( (2+4) / (8*512*8) )
OTF = log10 ( (2+4+18) / (8*512*8) )
Examples:
Example #1:
F3 2> `
Rbit Hard Soft OTF Raw Rsym Sym Wbit Whrd Wrty
Hd 0 9.4 9.4 9.4 9.4 5.9 8.5 4.9 0.0 0.0 0.0
Hd 1 9.3 9.3 9.3 9.3 5.9 8.4 4.9 0.0 0.0 0.0
Revision History:
Availability:
Online , '{'
Quick Help:
Toggle EIB-Specific R/W Tracing
Description:
This command is used to control the display of Read/Write Retry Tracing Characters using
the serial port, formatted specifically for use with the Error Injection Board (EIB).
Several modes can be selected through the setting of the bits S T R:
S T R | Display Mode
*************************************************************************
0 X X | Vismux signals Enabled during Read/Write of a System Sector
1 X X | Vismux signals Disabled during Read/Write of a System Sector
X 0 1 | Retry number displayed. (see example below)
X 1 0 | Tagged or delimited retry number displayed. (see example below)
example: Retry number displayed - for each retry, output the mode (R/W) and the retry number.
R0001R0002R0003 or W0001W0002W0003
example: Tagged retry number - this is the same as Retry Number display with the inclusion
of a unique character '~', which is used to delimit each retry.
~R0001~R0002~R0003 or ~W0001~W0002~W0003
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
"S T R = a b c"
where
"S T R" is an acronym for "Suppress Vismux", "Tagged Retry number", "Retry number"
Revision History:
Availability:
Online , '~'
Quick Help:
Display Native Interface Command State
Description:
This command displays state of the Native Interface command.
Input Parameters:
None
Output Data:
"DiagError aaaaaaaa"
where
If no error occurred, The Native Interface Command State will be displayed as follows.
where
kkkkkkkkkk is the time stamp(ms) of the Read/Write command when it was recorded
oooooooo is the excution time duration for which the Read/Write request ran.
If this is 99999999, it means the excution time is indeterminate
pp is the Read/Write command request type
For more detail description of RW command state please refer Online Control-X,
Native Interface and Read/Write Command History Information, command
Revision History:
******************************************************************************************
0x0000 - 0x0FFF: Diagnostic Infrastructure Errors
******************************************************************************************
0x0000: No Error
0x0001: Unsupported Diagnostic Feature
0x0002: Online Extrinsic Requests are disabled
0x0003: Diagnostic Mode Extrinsic Requests are disabled
0x0004: Diagnostic External Test Service Busy
0x0005: Invalid Diagnostic External Test Service Request
0x0006: Extrinsic Diagnostic Aborted
0x0007: File Creation Error
0x0008: Memory Allocation Error
0x0009: Unsupported Diagnostic Parameter Revision
0x000A: Invalid Diagnostic Parameter
0x000B: Singular Matrix Error
0x000C: Congen Read Error (Drive Has Probably Never Been "Congened")
0x000D: Congen Write Error: Error Occurred Saving Mode Packet Header
0x000E: File Copy Error
0x000F: Unable to load Diagnostic Overlay
0x0010: Congen Write Error: Mode Page Length Does Not Match Specified Length
0x0011: Congen Write Error: Mode Page Check Member Function Returned Failure
0x0012: Congen Write Error: Attempt To Change Unchangeable Parameter
0x0013: Incoming SDBP is too small for DSB
0x0014: Congen Write Error: Writing Mode Data To Disc Failed
0x0015: Congen Write Error: Writing Partial Mode Data To Disc Failed
0x0016: Congen Write Error: Writing Complete Mode Data To Disc Failed
0x0017: Congen Write Error: Unknown Congen Write Error
0x0018: Congen Reset Error: Reset Congen Failed
0x0019: Drive must be power cycled
0x001A: Divide by zero detected, filter time constant must be non-zero
0x0020: Invalid ASCII Diag Command
0x0021: Unable to Load Diag Command Processor Overlay
0x0022: Data Received from Unsupported Test Service
0x0023: Unsupported Diag Data Type
0x0024: File Search Error: Specified file does not exist
0x0025: Specified File Volume number is Unknown
******************************************************************************************
0x1000 - 0x1FFF: Memory Errors
******************************************************************************************
0x1000: Invalid Memory Address
0x1001: Bad Servo RAM Read
0x1002: Memory Miscompare Error
0x1003: Buffer Miscompare Error
******************************************************************************************
0x2000 - 0x2FFF: Hardware Errors
******************************************************************************************
0x2000: Unsupported Hardware Feature
0x2001: Unable to Lock Read Channel
0x2002: Unable to Unlock Read Channel
0x2003: Invalid Read Channel Register Address
0x2004: Read Channel Register Access Error
0x2005: Unable to Lock Preamp
0x2006: Unable to Unlock Preamp
0x2007: Invalid Preamp Register Address
0x2008: Invalid Read or Write Power ASIC Register Request
0x2009: Invalid Controller Register Address
0x200A: Unable to set Preamp Mode
0x200B: Unable to get Preamp Head Resistance
0x200C: Controller Register Target Value Out Of Range
0x200D: Unsupported Controller Register Group
0x200E: Read Channel Null Reg Mask Error
0x200F: Channel Pattern Generator T Spacing Out of Range
******************************************************************************************
0x3000 - 0x3FFF: Drive Geometry Errors
******************************************************************************************
0x3000: Invalid Target Address
0x3001: Invalid Read/Write Address
0x3002: Invalid User LBA
0x3003: Invalid User Logical Cylinder, Logical Head and Logical Sector
0x3004: Invalid User Logical Cylinder, Logical Head and Physical Wedge
0x3005: Invalid User Logical Cylinder
0x3006: Invalid System LBA
0x3007: Invalid System Logical Cylinder, Logical Head and Logical Sector
0x3008: Invalid System Logical Cylinder, Logical Head and Physical Wedge
0x3009: Invalid System Logical Cylinder
0x300A: Invalid Physical Cylinder, Logical Head and Physical Sector
0x300B: Invalid Physical Cylinder, Logical Head and Physical Wedge
0x300C: Invalid Drive Geometry Information
0x300D: Invalid NRZ Symbol Extent Address
0x300E: Invalid PBA
0x300F: Unsupported Media Partition
0x3010: No Valid Sectors on Target Track (all sectors are slipped or alted from this track)
0x3011: Invalid Head
0x3012: Invalid Logical Mode Access
0x3013: Invalid Logical Cylinder entered for Particle Sweep
******************************************************************************************
0x4000 - 0x40FF: Native Interface Errors
******************************************************************************************
0x4000: Unsupported Native Interface Feature
0x4001: Invalid Read Cache Segment Information
0x4002: Invalid Read Cache Search Engine Information
0x4003: Invalid Read Cache Most/Least Valuable Indices/Linked List Information
0x4004: Invalid Read Cache Free Segments Information
0x4005: Invalid Read Cache Miscellaneous Information
******************************************************************************************
0x4100 - 0x41FF: Serial Transmission Errors
******************************************************************************************
0x4100: Transmission Time-out Error
0x4101: Transmission Abort Error
0x4102: Transmission Unrecoverd Retry Error
0x4103: Transmission Invalid Packet Size Error
0x4104: Transmission Invalid Packet Number Error
0x4105: Transmission Bad CRC Error
******************************************************************************************
0x5000 - 0x5FFF: Read/Write Errors
******************************************************************************************
0x5000: Unsupported Read/Write Feature
0x5001: Invalid Read/Write Sequence
0x5002: Read/Write Request Failed
0x5003: Read Failed
0x5004: Write Failed
0x5005: Wedge Read Failed
0x5006: Wedge Write Failed
0x5007: Track Erase Failed
0x5008: Read Miscompare
0x5009: Pending Block Error
0x500A: Erase Failed
0x500B: Diagnostic R/W Buffer too small
0x500C: Invalid Error Recovery Mode
0x500D: Format Failed
0x500E: Process Defect Lists Error
0x500F: I/F User Table Save Error
0x5010: R/W Subsysten not Ready to Accept Commands
0x5011: No Valid Error Recovery Configuration Given Commanded Mode
0x5012: Drive Free Fall Protection Failed
0x5013: Particle Sweep Request Failed
0x5014: R/W is not ready to accept requests
0x5015: Channel hardware doesn't support pattern generator
0X5016: DOS 'Enhanced Write Count' feature not supported
******************************************************************************************
0x6000 - 0x6FFF: Servo Errors
******************************************************************************************
0x6000: Unsupported Servo Feature
0x6001: Servo Failure
0x6002: Servo Command Error
0x6003: Read past the end of the Servo Symbol Table
0x6004: Invalid Servo Symbol Table Entry
0x6005: Missed Fast I/O Sample
0x6006: No Fast I/O Response
0x6007: Spin Up request received when spun up
0x6008: Spin Up Failed
0x6009: Spin Down request received when spun down
0x600A: Spin Down Failed
0x600B: Seek Failed
0x600D: Micro Jog Table error
0x600E: Invalid Head requested for Servo Sector Error Count
0x600F: Servo Command File Creation Error
0x6010: Servo Response File Creation Error
0x6011: Invalid seek mode requested.
0x6012: Undefined servo command
0x6013: Specified Servo Disc Slip operation is invalid
0x6014: Servo Disc Slip R/W request failed.
******************************************************************************************
0x7000 - 0x7FFF: Adaptive Parameter Errors
******************************************************************************************
0x7000: Unsupported Adaptive Feature
0x7001: Unable to open RAP file (this error code has been replaced by 0xE000)
0x7010: Unable to find left side of VGAR vs Track Follow Offset bathtub curve
0x7011: Unable to find right side of VGAR vs Track Follow Offset bathtub curve
******************************************************************************************
0x8000 - 0x8FFF: Logging Errors
******************************************************************************************
0x8000: Invalid Log File
0x8001: Log Full
0x8002: Log File Read or Write Failed
0x8003: Log File Not Empty
0x8004: Log File Initialization Failed
******************************************************************************************
0x9000 - 0x9FFF: Defect Management Errors
******************************************************************************************
0x9000: Primary Defect List System Disc File Write Error
0x9001: TA PSFT Defect List System Disc File Write Error
0x9002: Could not open Format Client Defect List
0x9003: Error accessing the Data Scrub List (See R/W error for more details)
0x9004: Error accessing the Data Scrub List (R/W subsystem not ready to accept requests)
0x9005: Error updating the Data Scrub List (See R/W error for more details)
0x9006: Error creating Diagnostic Buffer File to contain TA List
0x9007: R/W firmware is not ready for the request to retrieve the TA List
0x9008: Error allocating memory for TA List
0x9009: Error accessing the Defective Tracks List (R/W subsystem not ready to accept requests)
0x900A: Error accessing the Reassigned Sectors List (R/W subsystem not ready to accept requests)
0x900B: Error allocating memory while accessing the Reassigned Sectors List.
******************************************************************************************
0xA000 - 0xAFFF: Shared Test API Errors
******************************************************************************************
0xA000: Fast IO Initialization Error
0xA001: Baseline PES Collection Error
0xA002: Delta PES Collection Error
0xA100: Harmonic Sensor Circuit Measurement Opti Error
0xA101: Harmonic Sensor Circuit Measurement Error
0xA102: Linear Regression Error
0xA102: Undefined
0xA103: Invalid Clearance Error
0xA104: Halt Channel Calibration Processor Error
0xA105: Insufficient Regression Data Error
0xA106: Disable Shock Sensor Failure
0xA107: LUP (Lower and Upper triangular with partial Pivot) Matrix Decomposition Error.
0xA108: Error In HIRP (Heat Induced Reader Protrusion) / HIWP (Heat Induced Writer Protrusion) Calculation
0xA109: Failed To Restore Original System State Upon Diag Completion.
0xA10A: HIRP (Heat Induced Reader Protrusion) / HIWP (Heat Induced Writer Protrusion)
X-Axis Regression Data Memory Allocation Error.
0xA10B: HIRP (Heat Induced Reader Protrusion) / HIWP (Heat Induced Writer Protrusion)
Y-Axis Regression Data Memory Allocation Error.
0xA10C: HIRP (Heat Induced Reader Protrusion) Channel Sample Data Memory Allocation Error.
0xA10D: MD Contract Detect Channel Sample Data Memory Allocation Error.
0xA10E: MD Contract Detect Processed Data Memory Allocation Error.
0xA10F: High Frequency Harmonic Sensor Circuit Measurement Opti Error
******************************************************************************************
0xB000 - 0xBFFF: Nand Flash Errors
******************************************************************************************
0xB000: Nand Flash Data Compare Error
******************************************************************************************
0xC000 - 0xCFFF: Address Translation Errors
******************************************************************************************
0xC000: Unable to translate Partition Logical Cylinder to Physical
0xC001: Unable to translate Physical Cylinder tp Partition Logical
0xC002: R/W Calculate Track Position Request Failed
******************************************************************************************
0xD000 - 0xDFFF: Flash Errors
******************************************************************************************
0xD000: Unload flash segment feature not supported
0xD001: Unknown flash type
******************************************************************************************
0xE000 - 0xEFFF: RAP Errors
******************************************************************************************
0xE000: Unable to open RAP file
0xE001: Get RAP Zone M Div value not supported by RAP revision
0xE002: Get RAP Zone N Div value not supported by RAP revision
0xE003: Get RAP Zone F Div value not supported by RAP revision
0xE004: Search RAP Zone Tuned Channel Parameters for Register Address not supported by RAP revision
0xE005: Get RAP Zone Tuned Channel Parameter Register Address not supported by RAP revision
0xE006: Get RAP Zone Tuned Channel Parameter Register Data not supported by RAP revision
0xE007: Invalid RAP Zone Tuned Channel Parameter Media Partition
0xE008: Initialize Diagnostic RAP File Descriptor not supported by RAP revision
0xE009: Get Volatile RAP Error
0xE00A: Set Volatile RAP Error
******************************************************************************************
0xF000 - 0xFFFF: Track Follow Offset Errors
******************************************************************************************
0xF000: R/W firmware is not ready to accept a request to enable write with offset mode
0xF001: R/W firmware is not ready to accept a request to disable write with offset mode
******************************************************************************************
0x10000 - 0x10FFF: Symbol Error Map Errors
******************************************************************************************
0x10000: Write pattern has not been saved off for compare
******************************************************************************************
0x11000 - 0x11FFF: Get Servo Flaws Errors
******************************************************************************************
0x11000: Error occurred converting physical cylinder of defect returned by R/W to
logical cylinder number.
******************************************************************************************
0x12000 - 0x12FFF: SMART Errors
******************************************************************************************
0x12000: An invalid test number was specified.
0x12001: Initialize SMART failed.
0x12002: No SMART attribute sector was found.
0x12003: Code does not support SMART attributes.
0x12004: SMART Serial Number Sector write error (number of bytes written is incorrect).
0x12005: SMART Serial Number Sector memory allocation error (returned memory pointer is null).
******************************************************************************************
0x13000 - 0x13FFF: Bonanza Buffer Access Errors
******************************************************************************************
0x13000: An invalid Bonanza buffer number was requested.
0x13001: An invalid Bonanza buffer address was requested.
0x13002: An invalid Bonanza memory type was requested.
0x13003: Too many elements of the specified Bonanza memory were requested.
0x13004: Unknown memory type received by formatter
******************************************************************************************
0x14000 - 0x14FFF: Parameter Errors
******************************************************************************************
0x14000: Invalid LDPC local iterations control specified.
0x14001: Invalid LDPC global iterations control specfied.
0x14002: Display counters summary not supported.
******************************************************************************************
0x15000 - 0x15FFF: SFT Interface Errors
******************************************************************************************
0x15000: Specified SFT Test is not supported as a diagnostic.
0x15001: Unable to malloc space for the SFT Test parameters.
0x15003: Get default SFT Test parameter, no test selected.
0x15004: Get default SFT Test parameter, invalid Parameter ID.
0x15005: Get default SFT Test parameter, invalid Array Entry.
0x15006: Initialize default SFT Test parameters, no test active.
0x15007: Set SFT Test parameter, no test selected.
0x15008: Set SFT Test parameter, invalid Parameter ID.
0x15009: Set SFT Test parameter, invalid Array Entry.
0x1500A: Get SFT Test parameter, no test selected.
0x1500B: Get SFT Test parameter, invalid Parameter ID.
0x1500C: Get SFT Test parameter, invalid Array Entry.
0x1500D: Run SFT Test, parameters not initialized.
0x1500E: Get Active SFT Test Number, no test selected.
0x1500F: Get Number of SFT Test Parameter IDs, no test selected.
0x15010: Get Number of SFT Test Parameter Array Entries, no test selected.
0x15011: Get Number of SFT Test Parameter Array Entries, invalid Parameter ID.
0x15012: Get SFT Test Parameter Name, no test selected.
0x15013: Get SFT Test Parameter Name, invalid Parameter ID.
0x15014: Get SFT Test Parameter Type, no test selected.
0x15015: Get SFT Test Parameter Type, invalid Parameter ID.
0x15016: Get Number of SFT Test Parameter Bytes, no test selected.
0x15017: Get Number of SFT Test Parameter Bytes, invalid Parameter ID.
0x15018: Unable to initialize SFT Test Parameters.
0x15019: Unable to load SF3 Overlay.
******************************************************************************************
0x16000 - 0x15FFF: Security Errors
******************************************************************************************
0x16000: DPS(Drive Pairing Security) - Erasing DPS information failed.
0x16001: DPS(Drive Pairing Security) - Invalid DPS sub-command.
0x16002: DPS(Drive Pairing Security) - Invalid validation key.
******************************************************************************************
0x17000 - 0x17FFF: Block Channel Reload Errors
******************************************************************************************
0x17000: Range number invalid in block channel reload setup command.
******************************************************************************************
0x18000 - 0x18FFF: Analog Flaw Scan
******************************************************************************************
0x18000: Invalid Analog Flaw Scan Parm ID specified.
0x18001: Analog Flaw Scan Read Channel Parms not supported for this channel type.
0x18002: Enable Read Channel Analog Flaw Scan not supported for this channel type.
0x18003: Disable Read Channel Analog Flaw Scan not supported for this channel type.
0x18004: Unable to create buffer file for Cert Read Defect List.
0x18005: Cert Wedge Read failed.
0x18006: Too many defects for Cert Read Defect List.
0x18007: Too many defects for Analog Flaw Scan List.
0x18008: Invalid Target Address Mode selected for Analog Flaw Scan.
0x18009: The Diagnostic Write Buffer is too small for an Unformatted Wedge Write operation.
0x1800A: The specified Maximum Defect Count has been exceeded.
0x1800B: Unable to create buffer file for cert write data.
0x1800C: The specified Maximum Defect Count is too big.
******************************************************************************************
0x19000 - 19XXX: Sector Bit Error Rate
******************************************************************************************
0x19000: Too many sectors per track
R/W Sense Error Codes are error codes that R/W reports to its clients. Although they are
very similar to traditional SCSI sense codes, there is not a one-to-one correspondence with
traditional SCSI sense codes. These R/W Sense Error Codes should be treated and interpreted
independently from them. SCSI sense code definitions can be found at the following link.
R/W Sense Error Codes may be reported with one or more bits of their
most significant nybble
set. These bits are described below:
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
The following indicate that the Sum Threshold was exceeded and
the
name indicates what the last SWD fault that occured was...
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
0x841C0081: RW_READ_PRIMARY_DEFECT_LISTS_SUPER_FILE_FOR_REPORTING -
Format - Failure to read Primary Defect Lists Super file for reporting.
0x841C0082: RW_PLIST_FILE_INVALID_ENTRY_CNT_01 - Format - Invalid
entry count in Plist file.
0x841C0083: RW_PLIST_ENTRY_INVALID_SYMBOL_EXTENT - Format -
Invalid symbol extent value in Plist entry.
0x841C0084: RW_PRIMARY_DEFECT_LIST_INVALID_OFFSET_SORT - Process
Defect Lists - Sort error due to invalid offset.
0x841C0085: RW_PRIMARY_DEFECT_LIST_INVALID_HEAD_SORT - Process
Defect Lists - Sort error due to invalid head.
0x841C0086: RW_PRIMARY_DEFECT_LIST_INVALID_CYL_SORT - Process
Defect Lists - Sort error due to invalid cylinder.
0x841C0087: RW_PRIMARY_DEFECT_FILES_UNRECOVERABLE - Process Defect
Lists - Unable to recover the Primary Defect files.
0x841C0088: RW_REASSIGN_SEEK_TO_DEFECT_FILES_FAILED - Reallocate
Block - Failed to seek to defect files for reassign.
0x841C0089: RW_UNDO_REASSIGN_SEEK_TO_DEFECT_FILES_FAILED -
Reallocate Block - Failed to seek to defect files for undo-reassign.
0x841C008A: RW_WRITE_SAVED_DEFECTS_REPORT_LISTS_FILE_FAILED -
Format - Failure to write defects report lists file to media.
0x841C008B: RW_READ_SAVED_DEFECTS_REPORT_LISTS_FILE_FAILED -
Retrieve Defects Report List - Read of defects report file from media
failed.
0x841C008C: RW_SAVED_DEFECTS_REPORT_LISTS_DISC_FILE_INVALID_01 -
Retrieve Defects Report List - An invalid defects report file is
encountered.
0x841C008D: RW_SAVED_DEFECTS_REPORT_LISTS_DISC_FILE_INVALID_02 -
Retrieve Defects Report List - An invalid defects report file is
encountered.
0x841C008E: RW_FORMAT_RESTORE_RW_OPERATING_PARMS_FILE_FAILED -
Format - Restore of R/W User Operating Parameters file failed.
0x841C008F: RW_FORMAT_INVALID_PRIMARY_SERVO_FLAWS_DATA - Format -
Invalid Primary Servo Flaws data encountered.
0x841C0090: RW_SAVE_DEFECT_FILES_FAILED_DUE_TO_DATA_MISCOMPARE_ERR
- Reallocate Block - Failed to save defect files due to miscompare
error.
0x841C0092: RW_PRIMARY_DEFECT_LIST_FILE_OVERFLOW_01 - Format -
PList overflow error while merging PSFT and PList for reporting.
0x841C0093: RW_FORMAT_MAX_ZONE_RECERTIFY_PASSES_EXCEEDED - Format -
maximum certify passes of a zone exceeded.
0x841C0094: RW_FORMAT_MAX_ZONE_REWRITE_PASSES_EXCEEDED - Format -
maximum write passes of a zone exceeded.
0x841C0095: RW_PRIMARY_SERVO_FLAWS_LIST_UNRECOVERABLE - Primary
Servo Flaws data retrieval - Unable to read file on disc.
0x841C0096: RW_PRIMARY_FLAWS_FILE_INVALID_ENTRY_CNT - Primary
Servo Flaws data retrieval - Invalid entry count in file.
0x841C0097: RW_DEFECTIVE_SECTORS_LIST_UNRECOVERABLE - Defective
Sectors List data retrieval - Unable to read file on disc.
0x841C0098: RW_DEFECTIVE_SECTORS_LIST_INVALID_FILE_HEADER -
Defective Sectors List data retrieval - Invalid file header data.
0x841C0099: RW_PLIST_FILE_INVALID_ENTRY_CNT_02 - PList data
retrieval - Invalid entry count in Plist file.
0x841C009A: RW_PRIMARY_DEFECTS_LIST_UNRECOVERABLE - PList data
retrieval - Unable to read Plist file on disc.
0x841C009B: RW_SYSTEM_FORMAT_CLIENT_LIST_INVALID_ENTRY_CNT -
System Format - invalid entry count.
0x841C009C: RW_PRIMARY_TA_LIST_UNRECOVERABLE - Primary TA data
retrieval - Unable to read file on disc.
0x841C009D: RW_PRIMARY_TA_LIST_INVALID_COUNT - Primary TA data
retrieval - Invalid count.
0x841C009E: RW_PRIMARY_TA_LIST_INVALID_SORT - Primary TA data
retrieval - Invalid sort.
0x841C009F: RW_CLIENT_DEFECT_LIST_ENTRY_NOT_IN_AUDIT_SPACE -
Process Defect Lists - Defect doesn't exist in audit space.
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
0x84400080: RW_MAX_TRK_REWRITE_DURING_CERT_RETRIES_EXCEEDED -
Format - Exceeded maximum number of track rewrite during certify
retries.
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
***************************************************************************
**************************************************************************
**************************************************************************
Codes marked (++) are duplicated in sys.i for assembly language wrappers.
Codes marked (**) are converted to FRU codes for reporting in sense data.
0x10 XOR_FAIL 00010000 (**) XOR power up test failed (tested even on non-XOR code)
0x12 PROG_ERR_EVEN 00010010 EEPROM verify error, even byte
0x13 ERASE_ERR_EVEN 00010011 EEPROM erase error, even byte
0x14 DL_TPM_FAIL_0 00010100 TPM could not program EEPROMs
0x15 DL_TPM_FAIL_1 00010101 TPM could not program EEPROMs
0x16 DL_TPM_FAIL_2 00010110 TPM could not program EEPROMs
0x17 DL_TPM_FAIL_3 00010111 TPM could not program EEPROMs
0x18 DL_TPM_FAIL_4 00011000 TPM could not program EEPROMs
0x19 DL_TPM_FAIL_5 00011001 TPM could not program EEPROMs
0x1A DL_TPM_FAIL_6 00011010 TPM could not program EEPROMs
0x1B DL_TPM_FAIL_7 00011011 TPM could not program EEPROMs
0x1C DL_TPM_FAIL_8 00011100 TPM could not program EEPROMs
0x1D DWNLD_VFLT 00011101 Download voltage fault
0xF1 CTLR_NUKED_BY_FDE 11110001, FDE Nuke the chip bit set, data transfers not allowed
0xF4 FLASH_IOEDC_PARITY_ERROR 11110100, (**) temporarily flash on IOEDC_PARITY_ERROR
File IDs
******************************************************************************************
R/W File IDs
******************************************************************************************
0x0000 System Defects file
0x0001 RAP (Read/write Adaptive Parameters) super file
0x0002 Drive Configuration file (subfile of RAP super file)
0x0003 Temperature Sensor Configuration file (subfile of RAP super file)
0x0004 Zone Group Configuration file (subfile of RAP super file) - VBAR only
0x0005 Zone Group Configuration Header file (subfile of RAP super file) - VBAR only
0x0006 User Zone Group Configuration file (subfile of RAP super file) - VBAR only
0x000B Depop Fixup file (subfile of RAP super file)
0x000C Tuned Channel Prameters file header (subfile of RAP super file)
0x0010 Format Budget Parameters file (subfile of RAP super file)
0x0011 Temperature Controlled Configuration file (subfile of RAP super file)
0x0013 Adaptive Fly Height file (subfile of RAP super file)
0x0014 Adaptive Fly Height Adjustments file (subfile of RAP super file)
0x0015 Tuned Preamp Parms file (subfile of RAP super file)
0x0016 Other Parameters file (subfile of RAP super file)
0x0017 VBAR Configuration file (subfile of RAP super file) - VBAR only
0x0018 Default Extended Seek Profiles file
0x0019 Performance Parameters super file
0x001A ETF Log Drive Information file
0x001B Primary Defects super file
0x001C TA List / PFT super file
0x001D TA List file (subfile of TA List / PFT super file)
0x001E PFT file (subfile of TA List / PFT super file)
0x001F PFT / PLIST super file
0x0020 PLIST file (subfile of PFT / PLIST super file)
0x0021 R/W Media Partition Format file
0x0022 R/W Media Partition Range file
0x0023 R/W Smart Media Partitions Range file
0x0024 R/W ASFT Count Info file
0x0025 R/W Defectie Tracks List - Count Info file
0x0026 R/W Defectie Tracks List - Cyl Info file
0x0027 R/W Owned Smart Post-Format Raw Data file
0x0028 R/W Operating Parameters Super file
0x0029 R/W Post-Format Defects Info file
0x002A R/W Post-Format Defects Info Backup file
0x002B R/W User Media Partition Info file (subfile of Op Parms super file)
0x002C R/W System Media Partition Info file
0x002D R/W Reassigned Sectors Table file (subfile of Op Parms super file)
0x002E R/W Data Scrub List file (subfile of Op Parms super file)
0x002F R/W Spares Count Table file (subfile of Op Parms super file)
0x0030 R/W Active Servo Flaws Table file (subfile of Op Parms super file)
0x0031 User DDT file (subfile of Op Parms super file)
0x0032 BIPS DDT file (subfile of Op Parms super file)
0x0033 R/W Resident DST file (subfile of Op Parms super file)
0x0034 I/F Format - Initialization Pattern file
0x0035 R/W Format - Non-Resident Grown DST file
0x0036 R/W Format - Non-Resident Primary DST file
0x0037 R/W Format - Non-resident DSTs super file
0x0038 User Base DDT file
0x0039 System DDT file
0x003A System Base DDT file
0x003B Base RST file
0x003C User TDT file
0x003D System TDT file
0x003E Servo Firmware file
0x003F SAP(Servo Adaptive Parameters) file
0x0042 Head instability correction scratch head 0
0x0043 Head instability correction scratch head 1
0x0044 Head instability correction scratch head 2
0x0045 Head instability correction scratch head 3
0x0046 Head instability correction scratch head 4
0x0047 Head instability correction scratch head 5
0x0048 Head instability correction scratch head 6
0x0049 Head instability correction scratch head 7
0x004A R/W tracking information
0x004B R/W Servo VPD Pages Super file
0x004C R/W Servo VPD Page 0 file
0x004D R/W Servo VPD Page 1 file
0x004E R/W Servo VPD Page 2 file
0x004F R/W Format Client Defects list file
0x0050 R/W Format Primary Defect Lists Super file
0x0051 R/W Defects Report Lists super file
0x0052 R/W Saved Defects Report Lists file
0x0053 R/W Saved Defects Report Lists Info file (subfile of Op Parms super file)
0x0054 R/W GList-to-PList Super file
0x0055 R/W GList-to-PList Primary Servo flaws file
0x0056 R/W GList-to-PList Primary Defect List file
0x0057 R/W GList-to-PList PSFT/Primary Defect List file
0x0058 R/W GList-to-PList Growth defects file
0x0059 R/W Primary Defect Lists Super input file for defects reporting
0x005A Downloaded Firmware Image in the Buffer
0x005B RW Command History Log file
0x005C RW working user table ID
0x005D RW working system table ID
0x005E BIPS Parity Sector Validation Table file
0x005F File uses as buffer for BIPS parity sector computations
0x0060 Read channel register tracing buffer file
0x0061 RW Servo Disc Slip Parameters file
0x0062 RW Post-Servo Disc Slip Update file
0x0063 RW file used for UDR-2 support
0x0064 RW Bonanza Channel BCI Logging
0x0065 RW Bonanza Erasure Mask table for the Bonanza read/write long command support
0x0066 RW Bonanza Erasure Mask table entries for the Bonanza read/write long command support
0x0067 RW Bonanza Erasure Mask table buffer entries for the Bonanza read/write long command support
0x0068 Head instability correction scratch head 8
0x0069 Head instability correction scratch head 9
******************************************************************************************
Interface File IDs
******************************************************************************************
0x0080 User cache file
0x0081 Dummy cache file
0x0082 IRAM cache file
0x0083 Background task node file
0x0084 Entire buffer (indirect access) file
0x0085 Response Buffer file
0x0086 Other Buffer file
0x0087 Interface command buffer
0x0088 Interface command fifo buffer
0x0089 Skip mask table entry
0x008A Skip mask table queue
0x008B General purpose transfer buffer #1 file
0x008C General purpose transfer buffer #2 file
0x008D General purpose transfer buffer #3 file
0x008E Super Sector Error Recovery User Buffer file
0x008F Media Scan Buf file
0x0090 Echo Buffer file
0x0091 Enclosure services buffer file
0x0092 Write Map Entry file
0x0093 Saved Mode Global Data file
0x0094 Current Mode Global Data file
0x0095 Default Mode Data file
0x0096 Changeable Mode Data file
0x0097 Standard Inquiry file
0x0098 VPD Page 00h file
0x0099 VPD Page 03h file
0x009A VPD Page 80h file
0x009B VPD Page 82h file
0x009C VPD Page 83h file
0x009D VPD Page 86h file
0x009E VPD Page 87h file
0x009F VPD Page 88h file
0x00A0 VPD Page C0h file
0x00A1 VPD Page C1h file
0x00A2 VPD Page C2h file
0x00A3 VPD Page C3h file
0x00A4 VPD Page C4h file
0x00A5 VPD Page C7h file
0x00A6 VPD Page C8h file
0x00A7 VPD Page C9h file
0x00A8 VPD Page CAh file
0x00A9 VPD Page D0h file
0x00AA VPD Page D1h file
0x00AB VPD Page D2h file
0x00AC VPD Page D3h file
0x00AD VPD Page D4h file
0x00AE VPD Page D5h file
0x00AF VPD Page D6h file
0x00B0 VPD Page DCh file
0x00B1 VPD Page F0h file
0x00B2 VPD Page F1h file
0x00B3 VPD Page F2h file
0x00B4 VPD Page F3h file
0x00B5 VPD Page F4h file
0x00B6 Inquiry Pages file
0x00B7 Persistent Reserve Super file
0x00B8 Persistent Reserve Header file
0x00B9 Persistent Reserve Key Table file
0x00BA Persistent Reservation Information file
0x00BB OSD operating data buffer file
0x00BC OSD super directory buffer/disc file
0x00BD SMART working data file
0x00BE Download Image buffer file
0x00BF Saved vendor specific information file
0x00C0 Saved Device Configuration Overlay file
0x00C1 SLT DBA area
0x00C2 Host commands tag hash table
0x00C3 Host commands extent hash table
0x00C4 VPD Page 8Ah file
0x00C5 Media ScratchPad Preamble file
0x00C6 Media ScratchPad Postamble file
******************************************************************************************
Core #1 File IDs
******************************************************************************************
0x0100 Physical overlay area 0 file
0x0101 Physical overlay area 1 file
0x0102 Physical overlay area 2 file
0x0103 Physical overlay area 3 file
0x0104 Physical overlay area 4 file
0x0105 Physical overlay area 5 file
0x0106 Physical overlay area 6 file
0x0107 Physical overlay area 7 file
0x0108 Physical overlay area 8 file
0x0109 Physical overlay area 9 file
0x010A Physical overlay area 10 file
0x010B Physical overlay area 11 file
0x010C Physical overlay area 12 file
0x010D Physical overlay area 13 file
0x010E Physical overlay area 14 file
0x010F Physical overlay area 15 file
0x0110 Available overlay area file
0x0111 UDS placeholder file
0x0112 Inquiry Data buffer file
0x0113 Download workspace file
0x0114 Saved options log file
0x0115 Logging data file
0x0116 Saved Events Log Data file
0x0117 Factory log file
0x0118 Write log file
0x0119 Read log file
0x011A Format log file
0x011B Temperature log file
0x011C Deferred Write Failures on Reset log file
0x011D Remembered ports state log file
0x011E Temperature log page36 file
0x011F Work Load Management Log File
0x0120 Verify log file
0x0121 Nonmedium log file
0x0122 Voltage log file
0x0123 Read After Write log file
0x0124 SAS Protocol Specific log file
0x0125 Statistics log file
0x0126 Cache log file
0x0127 Start stop cycle log file
0x0128 Event log file
0x0129 DST(Drive Self Test) log file
0x012A SMART status log file
0x012B SMART attribute log file
0x012C SMART FUJITSU log file
0x012D Generic List log file
0x012E Supported pages log file
0x012F Event log to disc log file
0x0130 Host scratch page log file
0x0131 Application Client file
0x0132 Enhanced Work Load Management Log File ID(Disc)
0x0133 Smart configuration file
0x0134 Smart frame file
0x0135 Smart attribute log data file
0x0136 Field Tools Tattoo log data file
0x0137 Saved ATA Attribute file
0x0138 Saved ATA Warranty file
0x0139 Saved Extended Error Log file
0x013A Saved Extended Self Test Log file
0x013B Saved Selective Self Test Log file
0x013C Saved EMC Self Test file
0x013D Saved Write Stream Error Log file
0x013E Saved Read Stream Error Log file
0x013F Saved Vendor Specific Error Log file
0x0140 Saved Critical Event Log file
0x0141 Saved Health Log file
0x0142 Saved AVScan Self Test Log file
0x0143 SCT Temperature Log file
0x0144 ATA Command History Log file
0x0145 UDS super file
0x0146 UDS trace frame (Do not wrap) file
0x0147 UDS trace frame (Slow wrap) file
0x0148 UDS trace frame (Fast wrap) file
0x0149 UDS trace frame (Log Page 3A) file
0x014A UDS trace frame (Trigger capture) file
0x014B UDS preserved volatile info file
0x014C UDS save-on-update: scratch pad file
0x014D UDS Servo Error FIFO storage file
0x014E UDS do-not-save-on-update finished frame index file
0x014F UDS do-not-save-on-update do-not-wrap area 0 file
0x0150 UDS do-not-save-on-update do-not-wrap area 1 file
0x0151 UDS do-not-save-on-update do-not-wrap area 2 file
0x0152 UDS do-not-save-on-update slow-wrap area 0 file
0x0153 UDS do-not-save-on-update slow-wrap area 1 file
0x0154 UDS do-not-save-on-update slow-wrap area 2 file
0x0155 UDS do-not-save-on-update fast-wrap area 0 file
0x0156 UDS do-not-save-on-update fast-wrap area 1 file
0x0157 UDS do-not-save-on-update fast-wrap area 2 file
0x0158 UDS do-not-save-on-update log page 3a area 0 file
0x0159 UDS do-not-save-on-update log page 3a area 1 file
0x015A UDS do-not-save-on-update log page 3a area 2 file
0x015B UDS do-not-save-on-update firmware error capture area 0 file
0x015C UDS do-not-save-on-update firmware error capture area 1 file
0x015D UDS do-not-save-on-update firmware error capture area 2 file
0x015E UDS do-not-save-on-update mechanical media error capture area 0 file
0x015F UDS do-not-save-on-update mechanical media error capture area 1 file
0x0160 UDS do-not-save-on-update mechanical media error capture area 2 file
0x0161 UDS do-not-save-on-update reported controller error capture area 0 file
0x0162 UDS do-not-save-on-update reported controller error capture area 1 file
0x0163 UDS do-not-save-on-update reported controller error capture area 2 file
0x0164 UDS do-not-save-on-update potentially frequent host interface error capture area 0 file
0x0165 UDS do-not-save-on-update potentially frequent host interface error capture area 1 file
0x0166 UDS do-not-save-on-update potentially frequent host interface error capture area 2 file
0x0167 UDS do-not-save-on-update auto dump error capture area 0 file
0x0168 UDS do-not-save-on-update auto dump error capture area 1 file
0x0169 UDS do-not-save-on-update auto dump error capture area 2 file
0x016A UDS do-not-save-on-update overflow mechanical media error capture area 0 file
0x016B UDS do-not-save-on-update overflow mechanical media error capture area 1 file
0x016C UDS do-not-save-on-update overflow mechanical media error capture area 2 file
0x016D UDS save-on-update lifetime trace file
0x016E UDS save-on-update config activity file
0x016F UDS Fast Trace Buffer 0 file
This file id is deleted and no longer supported.
0x0170 UDS Fast Trace Buffer 1 file
This file id is deleted and no longer supported.
0x0171 Serial number log 0xC0
0x0172 UDS trace frame (Security Trace) file
0x0173 UDS do-not-save-on-update security trace area 0 file
0x0174 UDS do-not-save-on-update security trace area 1 file
0x0175 UDS do-not-save-on-update security trace area 2 file
0x0176 UDS Fast Trace Buffer
0x0177 GP_RMW_DETAILS_LOG 0xAC
0x0178 SMART Super File
0x0180 Dell DST feature file
0x0181 DST Write/Read test Head 0 file
0x0182 DST Write/Read test Head 1 file
0x0183 DST Write/Read test Head 2 file
0x0184 DST Write/Read test Head 3 file
0x0185 DST Write/Read test Head 4 file
0x0186 DST Write/Read test Head 5 file
0x0187 DST Write/Read test Head 6 file
0x0188 DST Write/Read test Head 7 file
0x0189 Reserved file
0x018A Reserved file
0x018B Reserved file
0x018C Reserved file
0x018D Reserved file
0x018E Reserved file
0x018F Reserved file
0x0190 Reserved file
0x0191 Parity buffer file
0x0192 Table recovery level 1 file
0x0193 Table recovery level 2 file
0x0194 Default mode global data file
0x0195 DOS(Directed Off-line Scan) image file
0x0196 DST Write/Read test Head 8 file
0x0197 DST Write/Read test Head 9 file
******************************************************************************************
Hybrid NVC File IDs
******************************************************************************************
0x01A0 Hybrid NVC overlay code/data file
0x01A5 Hybrid NVC list file
0x01A7 Hybrid NVC Flash list data block file
0x01A8 Hybrid NVC Flash list data block file
******************************************************************************************
Trusted Drive File IDs
******************************************************************************************
0x01D0 Trusted Drive - Volume file
0x01D1 Trusted Drive - Media cache file
0x01D2 Trusted Drive - Locking parameters file
0x01D3 IEEE 1667 Drive File IDs.
0x01D4 IEEE 1667 Silos File ID
******************************************************************************************
AFH(Adaptive Fly Height) File IDs
******************************************************************************************
0x01E0 Field Adjustable Adaptive Fly Height Log Super disc file
0x01E1 Field Adjustable Adaptive Fly Height Log Header and 1st Interval disc file
0x01E2 Field Adjustable Adaptive Fly Height Log Header and 1st Interval buffer file
0x01E3 AFH Heater Log Disc file
0x01E4 AFH Heater Log Buffer file
0x01E5 AFH Heater Log Non-reserved Buffer file
0x01E6 Field Adjustable Adaptive Fly Height Parameter disc file
0x01E7 Field Adjustable Adaptive Fly Height Parameter buffer file
******************************************************************************************
SIM File IDs
******************************************************************************************
0x0200 System FAT super file
0x0201 Root Buffer FAT file
0x0202 Root Disc FAT file
0x0203 System Volume Disc FAT file
0x0204 System Volume Buffer FAT file
0x0205 Public Volume Disc FAT file
0x0206 System FAT tags file
0x0207 SIM write test block
0x0208 CAP(Controller Adaptive Parameters) file
0x0209 Public name translation tables file
0x020A Flash FAT file
0x020B Device Identifier Table file
0x020C Boot Firmware file
0x020D Customer Firmware 1st file
0x020E Customer Firmware 2nd file
0x020F SIM write test area 0 file
0x0210 SIM write test area 1 file
0x0211 SIM write test area 2 file
0x0212 SIM write test area 3 file
0x0213 SIM write test area 4 file
0x0214 SIM write test area 5 file
0x0215 SIM write test area 6 file
0x0216 SIM write test area 7 file
0x0217 SIM write test area 7 file
0x0218 SIM write test area 7 file
0x0217 EBMS Fault Detect (EFD) Log Disc File
0x0218 EBMS Fault Detect (EFD) Log Buffer File
******************************************************************************************
Diag File IDs
******************************************************************************************
0x0300 Manufacturing information super file
0x0301 Manufacturing histogram data file
0x0302 Diagnostic bridge serial interface file
0x0303 Diagnostic bridge interface file
0x0304 Diagnostic file
0x0305 NIBS buffer/disc file
0x0306 BGMS buffer/disc file
0x0307 IRAW buffer/disc file
0x0308 ORM buffer/disc file
0x0309 Extended Format log file
0x030A Disc registry buffer/disc file
0x030B Hitachi manufacturing buffer/disc file
0x030C Super certify buffer/disc file
0x030D Net app dst buffer/disc file
0x030E DIC dummy buffer/disc file
0x030F DIC disc file for Head 0
0x0310 Dic disc file for Head 1
0x0311 Dic disc file for Head 2
0x0312 Dic disc file for Head 3
0x0313 Dic disc file for Head 4
0x0314 Dic disc file for Head 5
0x0315 Dic disc file for Head 6
0x0316 Dic disc file for Head 7
0x0317 B2D buffer/disc file
0x0318 SPT buffer/disc file
0x0319 SPT 1 buffer/disc file
0x031A B2D reserved buffer/disc file
0x031B DBI buffer/disc file
0x031C DASC ASIC registers access file overlay
0x031D Common Processor ASIC registers access file overlay
0x031E Host Interface (P-SCSI, SAS, FC, etc) Controller ASIC registers access file overlay
0x031F Common Buffer ASIC register access file overlay
0x0320 VBM Cache ASIC register access file overlay
0x0321 Common Formatter Block 1 ASIC registers access file overlay
0x0322 Common Formatter Block 2 ASIC registers access file overlay
0x0323 VBM MAP ASIC register access file overlay
0x0324 ARM System Controller ASIC register access file overlay
0x0325 Dependent User Zone Table file
0x0326 Dependent System Zone Table file
0x0327 Dependent System Zone Table file
0x0328 Dependent System Zone Table file
0x0329 Dual Port RAM ASIC registers access file overlay
0x032A Entire contents of serial flash
0x032B SPT - Offline commands run storage file
0x032C Congen XML file
0x032D Congen XML 1 file
0x032E Diag Utilities small file 0 file
0x032F Diag Utilities small file 1 file
0x0330 Diag Utilities small file 2 file
0x0331 Diag Utilities small file 3 file
0x0332 Diag Utilities small file 4 file
0x0333 Diag Utilities small file 5 file
0x0334 Diag Utilities small file 6 file
0x0335 Diag Utilities medium file 0 file
0x0336 Diag Utilities medium file 1 file
0x0337 Diag Utilities medium file 2 file
0x0338 Diag Utilities medium file 3 file
0x0339 Diag Utilities large file 0 file
0x033A Diag Utilities large file 1 file
0x033B Diag Utilities large file 2 file
0x033C Diag Utilities large file 3 file
0x033D Diag Utilities large file 4 file
0x033E Diag Utilities extra large file 0 file
0x033F Diag Utilities extra large file 1 file
0x0340 Dic disc file for Head 8
0x0341 Dic disc file for Head 9
0x0342 Selftest FW Code file
0x0343 Selftest Overlay Code file
0x0344 Selftest Reserved space file
0x0345 Selftest Overall Reserved space file
0x0342 Media Cache Table Primary Copy system file.
0x0343 Media Cache Table Secondary Copy system file.
0x0344 Media Cache Table buffer file.
0x0345 Media Cache Write Segment preamble buffer file.
0x0346 Media Cache Write Segment footer buffer file.
0x0347 Media Cache Read Segment preamble buffer file.
0x0348 Media Cache Read Segment footer buffer file.
0x0342 Media Cache Table Primary Copy system file.
0x0343 Media Cache Table buffer file.
0x0344 Media Cache Write Segment preamble buffer file.
0x0345 Media Cache Write Segment footer buffer file.
0x0346 Media Cache Read Segment preamble buffer file.
0x0347 Media Cache Read Segment footer buffer file.
File Volumes
Description:
This batch file attempts to verify that the online serial port
diagnostic commands
can be executed.
******************************************************************************************
******************************************************************************************
******************************************************************************************
******************************************************************************************
******************************************************************************************
Note: This command will be executed on the first pass but not on the
second pass.
******************************************************************************************
******************************************************************************************
Select Diagnostic Serial Port Mode, enable error logging and clear
the error log.
Note: These commands will be executed on the second pass but not the
first pass.
******************************************************************************************
******************************************************************************************
Test the Online Commands. This section of the code will be executed
twice, first with
Online Serial Port Mode enabled and then with Diagnostic Serial Port
Mode enabled.
******************************************************************************************
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special
Batch File Function - Display Log
-| '|' Command: Batch File
Terminator
Description:
This batch file attempts to verify that the serial port diagnostic commands that
are common to all diagnostic levels can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the All Level commands.
******************************************************************************************
-/CQ0 Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Test the Abort command. Since it's impossible to fully test the abort inside a batch
file, issue the command and verify that it executes.
******************************************************************************************
-CR Carriage Return Command: Abort
******************************************************************************************
Test the Change Diagnostic Command Level command by swiching to the default level (T).
******************************************************************************************
-/ '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the processor memory access commands by reading and writing a buffer memory
location at its processor memory address. The location being used is in a Buffer
SIM file that is owned by the diagnostics.
******************************************************************************************
-=61E2A00,,FF '=' Command: Poke Memory Byte
-=61E2A01,,EE '=' Command: Poke Memory Byte
-=61E2A02,,DD '=' Command: Poke Memory Byte
-=61E2A03,,CC '=' Command: Poke Memory Byte
-+61E2A00 '+' Command: Peek Memory Byte
-+61E2A01 '+' Command: Peek Memory Byte
--61E2A00 '-' Command: Peek Memory Word
-=61E2A00,,00 '=' Command: Poke Memory Byte
-=61E2A01,,11 '=' Command: Poke Memory Byte
-=61E2A02,,22 '=' Command: Poke Memory Byte
-=61E2A03,,33 '=' Command: Poke Memory Byte
-+61E2A00 '+' Command: Peek Memory Byte
-+61E2A01 '+' Command: Peek Memory Byte
--61E2A00 '-' Command: Peek Memory Word
******************************************************************************************
Test the Set Test Space command by displaying the test space that is currently
selected.
******************************************************************************************
-A 'A' Command: Set Test Space
******************************************************************************************
Test the Enable Looping command by looping the Peek Memory Word command three times
with the Continue On Error option enabled.
******************************************************************************************
-L1,3 'L' Command: Enable Looping
--61E2000 '-' Command: Peek Memory Word
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level 1 serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level 1 commands.
******************************************************************************************
-/CQ1 Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level 1.
******************************************************************************************
-/1 All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the processor and buffer memory access commands by reading and writing buffer
memory locations. The processor memory commands access the buffer locations using
their addresses in the processor memory space. The buffer memory commands use the
buffer addresses. The locations being used are in a Buffer SIM file that is owned
by the diagnostics.
******************************************************************************************
-S61E2A04,,77665544,4 Level 1 'S' Command: Edit Processor Memory Byte
-m61E2A08,,BBAA9988,4 Level 1 'm' Command: Edit Processor Memory Word
-U01E2A0C,,FFEEDDCC,4 Level 1 'U' Command: Edit Buffer Memory Byte
-D61E2A00,,00,40,,1 Level 1 'D' Command: Memory Block Display
-D61E2A00,,1100,40,,2 Level 1 'D' Command: Memory Block Display
-D61E2A00,,33221100,40,,4 Level 1 'D' Command: Memory Block Display
-D61E2A00,,7766554433221100,40,,8 Level 1 'D' Command: Memory Block Display
-BF15 Level 2 'B' Command: Buffer Display
******************************************************************************************
Test the Buffer Compare command by comparing the Diagnostic Read Buffer to the
Diagnostic Write Buffer.
Note: At this time the Diagnostic Read and Write Buffers may be uninitialized, so
this command may generate an error (DiagError 1003 - Buffer Miscompare).
******************************************************************************************
-*A,1003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-c 'c' Command: Buffer Compare
******************************************************************************************
Test the SMART Control command. Display the SMART Attributes, SMART Thresholds and
Critical Event Log.
******************************************************************************************
-N5 'N' Command: SMART Control - Display SMART Attributes
-N6 'N' Command: SMART Control - Display SMART Thresholds
-N8 'N' Command: SMART Control - Display Critical Event Log
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level 2 serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level 2 commands.
******************************************************************************************
-/CQ2 Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level 2.
******************************************************************************************
-/2 All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Display the active error log.
******************************************************************************************
-E 'E' Command: Display / Edit Log
******************************************************************************************
Test the buffer memory access commands by loading the diagnostic write buffer with
each of the predefined buffer patterns and then displaying the first block of the
write buffer.
******************************************************************************************
-P1111 'P' Command: Set Buffer Pattern - Incrementing Pattern
-B250F,,2,1 'B' Command: Buffer Display
-P1212 'P' Command: Set Buffer Pattern - Random Pattern
-B250F 'B' Command: Buffer Display
-P1313 'P' Command: Set Buffer Pattern - Alternating Pattern
-B250F 'B' Command: Buffer Display
-P1414 'P' Command: Set Buffer Pattern - Isolated Pulse Pattern
-B250F 'B' Command: Buffer Display
-P1515 'P' Command: Set Buffer Pattern - Incrementing 2-Byte Pattern
-B250F 'B' Command: Buffer Display
-P1616 'P' Command: Set Buffer Pattern - Repeating 127-bit Pattern
-B250F 'B' Command: Buffer Display
-P1717 'P' Command: Set Buffer Pattern - Repeating 15 byte 6T Pattern
-B250F 'B' Command: Buffer Display
******************************************************************************************
Test the buffer memory access commands by loading the diagnostic write buffer with
a user specified 128 bit pattern and then displaying the first block of the write
buffer.
******************************************************************************************
-P1818,FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0,80 'P' Command: Set Buffer Pattern - Repeating 1 to 128 bit user specified pattern
-B250F 'B' Command: Buffer Display
******************************************************************************************
Test the buffer memory access commands by loading the diagnostic write buffer with
a user specified 3 bit pattern and then displaying the first block of the write
buffer as both 8 bit and 3 bit symbols.
******************************************************************************************
-P4,,3 'P' Command: Set Buffer Pattern - 492492...
-B250F 'B' Command: Buffer Display - 8 bit symbols
-B250F,,,,3 'B' Command: Buffer Display - 3 bit symbols
******************************************************************************************
Test the buffer compare command. Copy the first block of the diagnostic write buffer
to the diagnostic read buffer, modify 2 bytes of the diagnostic read buffer and then
comparing the first block of the diagnostic read buffer to the first block of the
diagnostic write buffer.
******************************************************************************************
Test spin up and hold with the actuator latched then advance to spin up complete.
******************************************************************************************
-Z 'Z' Command: Spin Down Drive
-. Online '.' Command: Display Active Status
-U3 'U' Command: Spin Up Drive - Hold with the actuator latched
-. Online '.' Command: Display Active Status
-U1 'U' Command: Spin Up Drive - Advance to next hold state
-. Online '.' Command: Display Active Status
-U1 'U' Command: Spin Up Drive - Advance to next hold state
-. Online '.' Command: Display Active Status
-U1 'U' Command: Spin Up Drive - Advance to next hold state
-. Online '.' Command: Display Active Status
-Z 'Z' Command: Spin Down Drive
-. Online '.' Command: Display Active Status
-U3 'U' Command: Spin Up Drive - Hold with the actuator latched
-. Online '.' Command: Display Active Status
-U2 'U' Command: Spin Up Drive - Release the hold state
-. Online '.' Command: Display Active Status
******************************************************************************************
Test spin up and hold prior to demod sync then advance to spin up complete.
******************************************************************************************
-Z 'Z' Command: Spin Down Drive
-. Online '.' Command: Display Active Status
-U4 'U' Command: Spin Up Drive - Hold prior to demod sync
-. Online '.' Command: Display Active Status
-U1 'U' Command: Spin Up Drive - Advance to next hold state
-. Online '.' Command: Display Active Status
-U1 'U' Command: Spin Up Drive - Advance to next hold state
-. Online '.' Command: Display Active Status
-Z 'Z' Command: Spin Down Drive
-. Online '.' Command: Display Active Status
-U4 'U' Command: Spin Up Drive - Hold prior to demod sync
-. Online '.' Command: Display Active Status
-U2 'U' Command: Spin Up Drive - Release the hold state
-. Online '.' Command: Display Active Status
******************************************************************************************
Test spin up and hold prior to track follow then advance to spin up complete.
******************************************************************************************
-Z 'Z' Command: Spin Down Drive
-. Online '.' Command: Display Active Status
-U5 'U' Command: Spin Up Drive - Hold prior to track follow
-. Online '.' Command: Display Active Status
-U1 'U' Command: Spin Up Drive - Advance to next hold state
-. Online '.' Command: Display Active Status
-Z 'Z' Command: Spin Down Drive
-. Online '.' Command: Display Active Status
-U5 'U' Command: Spin Up Drive - Hold prior to track follow
-. Online '.' Command: Display Active Status
-U2 'U' Command: Spin Up Drive - Release the hold state
-. Online '.' Command: Display Active Status
******************************************************************************************
Spin down and spin back up without using any hold states. This will resynchronize the
diagnsotic and read / write code. Attempt to track follow on cylinder 200 head 0.
******************************************************************************************
-Z 'Z' Command: Spin Down Drive
-. Online '.' Command: Display Active Status
-U,0,200 'U' Command: Spin Up Drive and seek to head 0, track 200h
-. Online '.' Command: Display Active Status
******************************************************************************************
Test the seek commands. The commands that perform multiple seeks are tested first,
then the Test Space is set to single track mode and the singlr seek commands are
tested. This will initialize the diagnostic current and target address for future
commands that use them.
******************************************************************************************
-O,,5,1 'O' Command: Seek Repeatedly Between Physical Cylinders
-A0 All Level 'A' Command: Set Test Space
-s200,0,22 's' Command: Seek to Physical Cylinder and Head
-. Online '.' Command: Display Active Status
-S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-H0 'H' Command: Select Logical Head
-. Online '.' Command: Display Active Status
-K 'K' Command: Set Tracking Offset
-. Online '.' Command: Display Active Status
******************************************************************************************
Test the address translation commands. The seek commands are tested prior to these
commands to initialize the diagnostic current and target address.
******************************************************************************************
-x 'x' Command: Display Zone Information
-X 'X' Command: Display Track Information
-h 'h' Command: Translate Physical Sector
-l 'l' Command: Translate Logical Sector
-t 't' Command: Translate Wedge
-v 'v' Command: Convert Data Track Percentage To Servo Offset Count
******************************************************************************************
Test the retry commands by displaying the current retry configuration.
******************************************************************************************
-Y 'Y' Command: Set Retries
-y 'y' Command: Set DERP Retry State
-u 'u' Command: Enable/Disable Channel/Preamp Register Display
******************************************************************************************
Test the read and write commands.
Writes are performed before reads to guarantee that the track has been written in the
desired format. Wedge reads and writes are performed before sector reads and write
to guarantee that the sector and buffer configuration will be restored to the standard
mode before exiting.
Note: Since we are reading and writing on a track whose defect status is unknown, the
Read Wedge command may generate a Wedge Read Failed error (DiagError 5005) and the Read
command may generate a Read Failed error (DiagError 5003).
******************************************************************************************
-z 'z' Command: Write Wedge
-. Online '.' Command: Display Active Status
-*A,5005,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-j 'j' Command: Read Wedge
-. Online '.' Command: Display Active Status
-/2S200,0 Level 2 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-W 'W' Command: Write CHS
-. Online '.' Command: Display Active Status
-*A,5003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-R 'R' Command: Read CHS
-. Online '.' Command: Display Active Status
-B 'B' Command: Buffer Display
-*A,5003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-r0,1 'r' Command: Read Long CHS or Read System CHS
-. Online '.' Command: Display Active Status
-B 'B' Command: Buffer Display
-w0,1 'w' Command: Write Long CHS or Write System CHS
-. Online '.' Command: Display Active Status
-*A,5003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-Q 'Q' Command: Write, Read, Read CHS
-. Online '.' Command: Display Active Status
******************************************************************************************
Corrupt an LBA, read it to verify that it generates an error (5003 - Read Failed) and
then clean it up by rewriting it.
******************************************************************************************
-PCCCC,CCCC 'P' Command: Set Buffer Pattern
-/AW9000000,1 Level A 'W' Command: Write LBA
-/2o9000000,1,64,0 'o' Command: Corrupt LBA
-. Online '.' Command: Display Active Status
-*A,5003,1,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-/AR9000000,1 Level A 'R' Command: Read LBA
-. Online '.' Command: Display Active Status
-/AW9000000,1 Level A 'W' Command: Write LBA
-. Online '.' Command: Display Active Status
-/2 All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the defect management commands. The Modify Track Defect List command is tested by
adding LBA 3000 to the Alternate Sector List and then deleting it from the Alternate
Sector List.
******************************************************************************************
-F3000,A1 'F' Command: Modify Track Defect List
-. Online '.' Command: Display Active Status
-F3000,C1 'F' Command: Modify Track Defect List
-. Online '.' Command: Display Active Status
******************************************************************************************
Test the Display / Modify Adaptives command by displaying the CAP, RAP, SAP and R/W
Working Parameters.
******************************************************************************************
-I,0 'I,0' Command: Display / Modify CAP
-I,1 'I,1' Command: Display / Modify RAP
-*A,6004,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-I,2 'I,2' Command: Display / Modify SAP - humanized
-I,3 'I,3' Command: Display / Modify RW Working Parameters
******************************************************************************************
Measure throughput.
******************************************************************************************
-T 'T' Command: Measure Throughput
******************************************************************************************
Display the current Diagnostic Idle Mode configuration.
******************************************************************************************
-M 'M' Command: Set Diag Idle Mode
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level 3 serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level 3 commands.
******************************************************************************************
-/CQ3 Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level 3.
******************************************************************************************
-/3 All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Display the active error log.
******************************************************************************************
-E 'E' Command: Display / Edit Log
******************************************************************************************
Test the hardware access commands.
******************************************************************************************
-V 'V' Command: Read or Write Power ASIC Register
******************************************************************************************
Test the spin commands.
******************************************************************************************
-Z 'Z' Command: Spin Down Drive
-U 'U' Command: Spin Up Drive
******************************************************************************************
Test the load / unload command.
Note: For drives that do not implement this command will generate an error
(DiagError 6004 - Invalid Servo Symbol Table Entry).
******************************************************************************************
-*A,6004,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-b1 'b' Command: Load/Unload Heads - Unload
-b0 'b' Command: Load/Unload Heads - Load
******************************************************************************************
Measure the Latch Force.
******************************************************************************************
-c 'c' Command: Measure Latch Force
******************************************************************************************
Test the seek commands. The command that perform multiple seeks are tested first,
then the Test Space is set to single track mode and the seek commands are tested.
This will initializes the diagnostic current and target address for future commands
that use them.
******************************************************************************************
-D 'D' Command: Measure Seek Access Time
-O,,5,1 'O' Command: Seek Repeatedly Between Physical Cylinders
-A0 All Level 'A' Command: Set Test Space
-s200,0,22 's' Command: Seek to Physical Cylinder and Head
-. Online '.' Command: Display Active Status
-S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-H0 'H' Command: Select Logical Head
-. Online '.' Command: Display Active Status
-R 'R' Command: Read Current Servo Destination
******************************************************************************************
Test the address translation commands. The seek commands are tested prior to these
commands to initialize the diagnostic current and target address.
******************************************************************************************
-p 'p' Command: Translate Physical Sector
-q 'q' Command: Translate Logical Sector
******************************************************************************************
Test the read and write commands.
Note: Since we are reading and writing on a track whose defect status is unknown, the
read commands may generate errors (DiagError xxxx).
******************************************************************************************
-Q 'Q' Command: Write, Read, Write, Read CHS
-. Online '.' Command: Display Active Status
******************************************************************************************
Test the Real Time Servo Tracing command. Beacause this command outputs raw binary
data to the serial port, Raw ASCII Output mode is selected before issuing this command.
In this mode the ASCII representation of the raw binary data will be output to the
serial port.
******************************************************************************************
-/TO2 Level T 'O' Command: Select Data Output Mode
-/3 All Level '/' Command: Change Diagnostic Command Level
-f0 'f' Command: Real Time Servo Trace - PES
-f2 'f' Command: Real Time Servo Trace - Seek Profile
-/TO Level T 'O' Command: Select Data Output Mode
/3 All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level 4 serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level 4 commands.
******************************************************************************************
-/CQ4 Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level 4.
******************************************************************************************
-/4 All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Display the active error log.
******************************************************************************************
-E 'E' Command: Display / Edit Log
******************************************************************************************
Test the Set Seek Speed and Measure Seek Access Time commands by measuring the access
time at each seek speed.
******************************************************************************************
-u1,0 'u' Command: Set Seek Speed - Enable Diag Seek Speed 0
-D 'D' Command: Measure Seek Access Time
-u1,1 'u' Command: Set Seek Speed - Enable Diag Seek Speed 1
-D 'D' Command: Measure Seek Access Time
-u1,2 'u' Command: Set Seek Speed - Enable Diag Seek Speed 2
-D 'D' Command: Measure Seek Access Time
-u1,3 'u' Command: Set Seek Speed - Enable Diag Seek Speed 3
-D 'D' Command: Measure Seek Access Time
-u2 'u' Command: Set Seek Speed 1 - Disable Diag Seek Speed
******************************************************************************************
Test the seek commands. The commands that perform multiple seeks are tested first,
then the Test Space is set to single track mode and the seek commands are tested.
This will initializes the diagnostic current and target address for future commands
that use them.
******************************************************************************************
-v 'v' Command: Butterfly Seek Test
-A0 All Level 'A' Command: Set Test Space
-S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-H0 'H' Command: Select Logical Head
-. Online '.' Command: Display Active Status
-K 'K' Command: Set Tracking Offset
-. Online '.' Command: Display Active Status
-O 'O' Command: Display Micro Jog for Logical Cylinder and Head
******************************************************************************************
Display the current RVFF Control Mode.
If this feature is not supported on the drive an Invalid Servo Symbol Table Entry
(DiagError 6004) will be reported.
******************************************************************************************
-*A,6004,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-B 'B' Command: Enable / Disable RVFF
******************************************************************************************
Display the current PES Output statePLOT PES for the current track.
******************************************************************************************
-e 'e' Command: Enable / Disable PES Output
******************************************************************************************
Scan the current track for servo defects and ZAp, then display the ZAP table.
******************************************************************************************
-l 'l' Command: Scan Track for Servo Defects and ZAP
-t 't' Command: Display / Modify ZAP Table
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level 5 serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level 5 commands.
******************************************************************************************
-/CQ5 Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level 5.
******************************************************************************************
-/5 All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the Servo RAM Commands.
Read and display the number of Servo Wedges using the Read Servo Symbol Table at
Index command.
Read and display the first and second entries in the SAP MR Bias Table using the
Read Servo RAM at Index command.
Read and display the first four bytes of servo RAM using the Read Servo RAM at
Address command.
******************************************************************************************
-i8C 'i' Command: Read Servo Symbol Table at Index
-r20,2 'r' Command: Read Servo RAM at Index (MR Bias Table entry 0)
-r20,2,2 'r' Command: Read Servo RAM at Index (MR Bias Table entry 1)
-R0,4 'R' Command: Read Servo RAM at Address
******************************************************************************************
Issue a Generic Servo command to read the Servo Symbol Table at Index and retrieve the
number of Servo Wedges.
******************************************************************************************
-C501,8C 'C' Command: Generic Servo Command
******************************************************************************************
Read and display the DDR Buffer.
Note: This feature may not be supported on all drives. If the feature is not supported
DiagError 6000 (Unsupported Servo Feature) will be reported.
******************************************************************************************
-*A,6000,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-D 'D' Command: Read / Unlock DDR Buffer
******************************************************************************************
Display the selected Servo Controller for head 0.
******************************************************************************************
-G0 'G' Command: Select Servo Controller
******************************************************************************************
Disable and enable Servo VCM DAC and A to D updates.
******************************************************************************************
-U0,0 'U' Command: Enable / Disable Servo Updates (Disable)
-U1,1 'U' Command: Enable / Disable Servo Updates (Enable)
******************************************************************************************
Test the Bode Plot command.
Before executing the Bode Plot command, set the Test Space to single track mode and
seek to a known track. This initializes the diagnostic current and target address
for future commands that use them.
******************************************************************************************
-A0 All Level 'A' Command: Set Test Space
-/2S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-/5B,200 'B' Command: Servo Bode Plot
******************************************************************************************
Test the Disable / Enable Servo ZAP coefficients and ZAP read command.
******************************************************************************************
Read ZAP data from the disk to the table.
******************************************************************************************
-Z 'Z' Command: Read Zap from Disc to Table
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level 6 serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level 6 commands.
******************************************************************************************
-/CQ6 Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level 6.
******************************************************************************************
-/6 All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the Display Batch File command by displaying this batch file.
******************************************************************************************
-D16 'D' Command: Display Batch File
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level 7 serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level 7 commands.
******************************************************************************************
-/CQ7 Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level 7.
******************************************************************************************
-/7 All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Display the active error log.
******************************************************************************************
-E 'E' Command: Display / Edit Log
******************************************************************************************
Test the buffer memory access commands.
******************************************************************************************
-P 'P' Command: Set Buffer Pattern
-B 'B' Command: Buffer Display
-C 'C' Command: Buffer Copy
******************************************************************************************
Test the hardware access commands.
******************************************************************************************
Test the spin commands.
******************************************************************************************
-Z 'Z' Command: Spin Down Drive
-/2U Level 2 'U' Command: Spin Up Drive
-/7 All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the seek commands. Set the Test Space to single track mode before testing the
seek commands. This will initialize the diagnostic current and target address for
future commands that use them.
******************************************************************************************
-A0 All Level 'A' Command: Set Test Space
-S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-H0 'H' Command: Select Logical Head
-. Online '.' Command: Display Active Status
******************************************************************************************
Test the address translation commands.
******************************************************************************************
-x 'x' Command: Display Zone Information
******************************************************************************************
Test the retry commands by displaying the current retry configuration.
******************************************************************************************
-Y 'Y' Command: Set Retries
-y 'y' Command: Set DERP Retry State
******************************************************************************************
Disable and enable Write Faults.
******************************************************************************************
-u0 'u' Command: Enable / Disable Write Fault - Disable
-u1 'u' Command: Enable / Disable Write Fault - Enable
******************************************************************************************
Test the read and write commands.
The Erase Track operation is performed before the write operation to guarantee that
the sector and buffer configuration will be restored to the standard mode before
exiting. After erasing the track attempt to read it and verify that a read error
occurs.
Writes are performed before reads to guarantee that the track has been written in the
desired format.
Note: Since we are reading and writing on a track whose defect status is unknown, the
read commands may generate errors (DiagError 5003).
******************************************************************************************
-b 'b' Command: Erase Track
-. Online '.' Command: Display Active Status
-A0 All Level 'A' Command: Set Test Space
-S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-*A,5003,1,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-R 'R' Command: Read CHS
-. Online '.' Command: Display Active Status
-W 'W' Command: Write CHS
-. Online '.' Command: Display Active Status
-*A,5003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-R 'R' Command: Read CHS
-. Online '.' Command: Display Active Status
-*A,5003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-Q 'Q' Command: Write, Read, Read CHS
-. Online '.' Command: Display Active Status
******************************************************************************************
Test the Set Track Format command.
- Select Single Sector per Wedge mode and perform a read and write operation on the
test track. (Note: Only Physical CHS writes and reads are supported in this mode.)
- Select No Split Mode and perform a read and write operation on the test track.
(Note: Only Physical CHS writes and reads are supported in this mode.)
- Select Normal Track Format and perform a read and write on the test track. This
will restore the test track to its original state.
Note: Since we are reading and writing on a track whose defect status is unknown, the
read commands may generate errors (DiagError 5003).
******************************************************************************************
-K2 'K' Command: Set Track Format - Single Sector per Wedge
-W,,,1 'W' Command: Write CHS - Physical
-. Online '.' Command: Display Active Status
-*A,5003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-R,,,1 'R' Command: Read CHS - Physical
-. Online '.' Command: Display Active Status
-K1 'K' Command: Set Track Format - No Splits
-W,,,1 'W' Command: Write CHS - Physical
-. Online '.' Command: Display Active Status
-*A,5003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-R,,,1 'R' Command: Read CHS - Physical
-. Online '.' Command: Display Active Status
-K0 'K' Command: Set Track Format - Normal Track Format
-W 'W' Command: Write CHS
-. Online '.' Command: Display Active Status
-*A,5003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-R 'R' Command: Read CHS
-. Online '.' Command: Display Active Status
******************************************************************************************
Test the offtrack capability on the current track for 5 sectors starting at sector
1B hex with a maximum offset count of 80 hex to each side.
******************************************************************************************
-c1B,5,1,80 'c' Command: Off Track Capability
******************************************************************************************
Mark a media flaw at Cylinder 300, Head 0, Sector 25.
- Write the test track and 0x69 ( 0x3c Pointer Tracks + 0x1e Erase Band Tracks +
0x0F Undisturbed Tracks ) tracks on both sides of the test track.
- Read the test track and 0x69 (0x3c Pointer Tracks + 0x1e Erase Band Tracks + 0x0F
Undisturbed Tracks) tracks on both sides of the test track. (Note: This should
generate read errors (DiagError 5003).
Minimum Count = 0xB4 (2*(0x3c Pointer Tracks + 0x1e Erase Band Tracks))
Maximum Count = 0xD3 (1+(2*(0x3c Pointer Tracks + 0x1e Erase Band Tracks + 0x0F Undisturbed Tracks)))
- Write the test track and 0x69 ( 0x3c Pointer Tracks + 0x1e Erase Band Tracks +
0x0F Undisturbed Tracks ) tracks on both sides of the test track to clean it up.
******************************************************************************************
-PCCCC,CCCC 'P' Command: Set Buffer Pattern
-A2 All Level 'A' Command: Set Test Space - Sequential Cylinders
-S296,0 'S' Command: Seek to Logical Cylinder and Head
-L1,D3 'L' Command: Enable Looping ( Loop Count = ( 2 * 69 hex ) + 1 )
-W 'W' Command: Write CHS
-h300,0,25 'h' Command: Mark Media Flaw
-S296,0 'S' Command: Seek to Logical Cylinder and Head
-*A,5003,B4,D3 All Level '*' Command: Special Batch File Function - Set Expected Error
-L1,D3 'L' Command: Enable Looping ( Loop Count = ( 2 * 69 hex ) + 1 )
-R 'R' Command: Read CHS
-S296,0 'S' Command: Seek to Logical Cylinder and Head
-L1,D3 'L' Command: Enable Looping ( Loop Count = ( 2 * 69 hex ) + 1 )
-W 'W' Command: Write CHS
-A0 All Level 'A' Command: Set Test Space - Single Cylinder
-S200,0 'S' Command: Seek to Logical Cylinder and Head
******************************************************************************************
Tweak the Heater and Write Powers for the current temperature and then restore them
back to the RAP values.
******************************************************************************************
-U 'U' Command: Channel Temperature Adjustment - Tweak
-U,,,,3 'U' Command: Channel Temperature Adjustment - Restore
******************************************************************************************
Test the Display / Modify Adaptives command by displaying the CAP, RAP, SAP and R/W
Working Parameters.
******************************************************************************************
-I,0 'I,0' Command: Display / Modify CAP
-I,1 'I,1' Command: Display / Modify RAP
-I,2,1 'I,2' Command: Display / Modify SAP - humanized
-I,3 'I,3' Command: Display / Modify RW Working Parameters
-*A,6004,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
******************************************************************************************
Read the SAP, RAP and CAP from non-volatile memory.
Note: Currently, attempting to read the SAP and CAP from non-volatile memory will
result in an Unsupported Adaptive Feature error (DiagError 7000).
******************************************************************************************
-*A,7000,0,2 All Level '*' Command: Special Batch File Function - Set Expected Error
-r4 'r' Command: Read Non-Volatile Adaptive Parameters - SAP
-r2 'r' Command: Read Non-Volatile Adaptive Parameters - RAP
-r1 'r' Command: Read Non-Volatile Adaptive Parameters - CAP
******************************************************************************************
Modify a RAP parameter. Display the RAP parameter to verify that it has been modified.
Read the non-volatile copy of the RAP to restore the modified parameter to its original
value. Display the RAP parameter to verify that it has been restored.
******************************************************************************************
-I,1,4 'I,1' Command: Display / Modify RAP
-I5555,1,4,0,0 'I,1' Command: Display / Modify RAP
-I,1,4 'I,1' Command: Display / Modify RAP
-r2 'r' Command: Read Non-Volatile Adaptive Parameters - RAP
-I,1,4 'I,1' Command: Display / Modify RAP
******************************************************************************************
Display the following Directed Offline Scan Information.
Counter Values
Counter Group Descriptors
Miscellaneous DOS Data
Cylinder and Head Data
Number of ought to and need to scans due
******************************************************************************************
-m1F 'm' Command: Display Directed Offline Scan Information
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level 8 serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level 8 commands.
******************************************************************************************
-/CQ8 Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level 8.
******************************************************************************************
-/8 All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the spin commands.
******************************************************************************************
-Z 'Z' Command: Spin Down Drive
-U 'U' Command: Spin Up Drive
******************************************************************************************
Test the seek commands. Set the Test Space to single track mode before testing the
seek commands. This will initializes the diagnostic current and target address for
future commands that use them.
******************************************************************************************
-A0 All Level 'A' Command: Set Test Space
-S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-R 'R' Command: Read Current Servo Destination
******************************************************************************************
Test the Sero Diagnostic subcommands.
******************************************************************************************
-C5 'C' Command: Servo Diagnostic Sub Commands - Set Seek Delay
-C15 'C' Command: Servo Diagnostic Sub Commands - Change Write Threshold
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level A serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level A commands.
******************************************************************************************
-/CQA Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level A.
******************************************************************************************
-/A All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Display the active error log.
******************************************************************************************
-E 'E' Command: Display / Edit Log
******************************************************************************************
Test the hardware access commands.
******************************************************************************************
-M 'M' Command: Set Controller Test Port
******************************************************************************************
Test the seek commands.
******************************************************************************************
-S9000000 'S' Command: Seek to LBA
-. Online '.' Command: Display Active Status
******************************************************************************************
Test the address translation commands.
******************************************************************************************
-l 'l' Command: Display Track Information
-C 'C' Command: Translate PBA
-D 'D' Command: Translate Symbols From Index
-F 'F' Command: Translate LBA
-c 'c' Command: Translate Logical Cylinder, Logical Head and Logical Sector
-d 'd' Command: Translate Physical Cylinder, Logical Head and Physical Sector
-e 'e' Command: Translate Nominal Cylinder and Logical Head
-f 'f' Command: Translate Physical Cylinder, Logical Head and Physical Wedge
******************************************************************************************
Test the retry commands by displaying the current retry configuration.
******************************************************************************************
-Y 'Y' Command: Set Retries
-y 'y' Command: Set DERP Retry State
******************************************************************************************
Test the read and write commands.
Writes are performed before reads to guarantee that the track has been written in
the desired format.
Note: Since we are reading and writing on a track whose defect status is unknown, the
read commands may generate errors (DiagError xxxx).
******************************************************************************************
-W9000000,1 'W' Command: Write LBA
-. Online '.' Command: Display Active Status
-R9000000,1 'R' Command: Read LBA
-. Online '.' Command: Display Active Status
-Q9000000,1 'Q' Command: Write, Read, Read LBA
-. Online '.' Command: Display Active Status
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level C serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
"*9\n"
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level C commands.
******************************************************************************************
-/CQC Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level C.
******************************************************************************************
-/C All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Display the help information for all commands.
******************************************************************************************
-Q 'Q' Command: Display ASCII Command Information
******************************************************************************************
Test the Goop Plot command on head 0 cylinders 200 to 210.
******************************************************************************************
-T0,200,210 'T' Command: Goop Plot
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level E serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level E commands.
******************************************************************************************
-/CQE Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level E.
******************************************************************************************
-/E All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the read and write commands.
Before executing the read and write commands, set the Test Space to single track mode
and seek to a known track. This initializes the diagnostic current and target address
for future commands that use them.
Writes are performed before reads to guarantee that the track has been written in the
desired format. Wedge reads and writes are followed by sector reads and writes to
guarantee that the sector and buffer configuration will be restored to the standard
mode before exiting.
Note: Since we are reading and writing on a track whose defect status is unknown, the
Read Wedge command may generate a Wedge Read Failed error (DiagError 5005) and the Read
command may generate a Read Failed error (DiagError 5003).
******************************************************************************************
-A0 All Level 'A' Command: Set Test Space
-/2S200,0 Level 2 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-/E All Level '/' Command: Change Diagnostic Command Level
-B 'B' Command: Write Wedge
-. Online '.' Command: Display Active Status
-*A,5005,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-C 'C' Command: Read Wedge
-. Online '.' Command: Display Active Status
-/2S200,0 Level 2 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-/2W Level 2 'W' Command: Write CHS
-. Online '.' Command: Display Active Status
-*A,5003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-/2R Level 2 'R' Command: Read CHS
-. Online '.' Command: Display Active Status
-/Ew 'w' Command: Slow Write CHS
-. Online '.' Command: Display Active Status
-*A,5003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-/2R Level 2 'R' Command: Read CHS
-. Online '.' Command: Display Active Status
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level F serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level F commands.
******************************************************************************************
-/CQF Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level F.
******************************************************************************************
-/F All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the processor and buffer memory access commands.
******************************************************************************************
-D 'D' Command: Memory Block Display
-P 'P' Command: Set Buffer Pattern
-B 'B' Command: Buffer Display
-C 'C' Command: Buffer Copy
-V 'V' Command: Buffer Compare
******************************************************************************************
Display the supported baud rates.
******************************************************************************************
-b1 'b' Command: Set Baud Rate
******************************************************************************************
Test the SATA Debug command by using it to display the SATA registers.
(Note: This command is made up of several subcommands of which only one is being
tested here. This command is owned by Tony Priborsky and he is responsible for
maintaining it.)
******************************************************************************************
-z1 'z' Command: SATA Debug - Dump SATA Registers
******************************************************************************************
Test the spin commands.
******************************************************************************************
-Z 'Z' Command: Spin Down Drive
-U 'U' Command: Spin Up Drive
******************************************************************************************
Test the seek commands. Set the Test Space to single track mode and perform the
seek. This will initialize the diagnostic current and target address for future
commands that use them.
******************************************************************************************
-A0 All Level 'A' Command: Set Test Space
-s200,0,22 's' Command: Seek to Physical Cylinder and Head
-. Online '.' Command: Display Active Status
******************************************************************************************
Test the retry commands by displaying the current retry configuration.
******************************************************************************************
-Y 'Y' Command: Set Retries
-y 'y' Command: Set DERP Retry State
******************************************************************************************
Test the Read System CHS command. First use the Level 2 'S' command to seek to the
first System Area logical track.
Note: Since we are reading and writing on a track whose defect status is unknown, the
Read command may generate a Read Failed error (DiagError 5003).
******************************************************************************************
-/2S0,0,,,,1 Level 2 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-*A,5003,0,1 All Level '*' Command: Special Batch File Function - Set Expected Error
-/Fr0,1 'r' Command: Read System CHS
-. Online '.' Command: Display Active Status
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level G serial port diagnostic commands
can be executed.
---------------------------------------------------------------------------------------------
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level G commands.
******************************************************************************************
-/CQG Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level G.
******************************************************************************************
-/G All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the commands that access the Correction Buffer.
******************************************************************************************
-B,F 'B' Command: Fill Correction Buffer
-C,4,4 'C' Command: Copy Correction Buffer
-D,8 'D' Command: Display Correction Buffer
******************************************************************************************
Test the commands that access the Super Parity RAM.
******************************************************************************************
-F0,f,0123 'F' Command: Fill Super Parity RAM
-G0,f 'G' Command: Display Super Parity RAM
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level H serial port diagnostic commands
can be executed.
---------------------------------------------------------------------------------------------
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level H commands.
******************************************************************************************
-/CQH Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level H.
******************************************************************************************
-/H All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the commands that access the buffer memory.
******************************************************************************************
-P 'P' Command: Set Buffer Pattern
-B 'B' Command: Buffer Display
******************************************************************************************
Test the seek commands. Set the Test Space to single track mode and perform the
seek. This will initialize the diagnostic current and target address for future
commands that use them.
******************************************************************************************
-A0 All Level 'A' Command: Set Test Space
-S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
******************************************************************************************
Test the Contact Detect command on the current track. This command writes the track
in wedge mode, so execute a sector write command to restore the track to a standard
track format.
******************************************************************************************
-/2W 'W' Command: Write CHS
-. Online '.' Command: Display Active Status
-/H All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level L serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level L commands.
******************************************************************************************
-/CQL Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level L.
******************************************************************************************
-/L All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Test the Log file commands by creating Error Log File 4, initializing it to be empty,
displaying its information, displaying its contents, copying Log File 0 to Log File 4
and deleting log file 4.
******************************************************************************************
-? Online '?' Command: Display Diagnostic Buffer Information
-c4,0,0,200 'c' Command: Create Log File 4
-? Online '?' Command: Display Diagnostic Buffer Information
-i4 'i' Command: Initialize Log File 4
-I4 'I' Command: Display Log File 4 Information
-D4 'D' Command: Display Log File 4
-C0,4 'C' Command: Copy Log File
-d4 'd' Command: Delete Log File 4
-? Online '?' Command: Display Diagnostic Buffer Information
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file attempts to verify that the level T serial port diagnostic commands
can be executed.
******************************************************************************************
Clear the Expected Batch File Errors.
******************************************************************************************
-*9 All Level '*' Command: Special Batch File Function - Clear Expected Errors
******************************************************************************************
Enable error logging and clear the error log.
******************************************************************************************
-/LE1 Level L 'E' Command: Enable / Disable Logging
-/LiFFFC Level L 'i' Command: Initialize Log File
******************************************************************************************
Display the help information for the Level T commands.
******************************************************************************************
-/CQT Level C 'Q' Command: Display ASCII Command Information
******************************************************************************************
Change to Command Level T.
******************************************************************************************
******************************************************************************************
Display the supported baud rates.
******************************************************************************************
-B1 'B' Command: Set Baud Rate
******************************************************************************************
Display all defect lists and the Alternate List summary information.
******************************************************************************************
-V1DF 'V' Command: Display Defect Lists
-V4,,,,99 'V' Command: Display Defect Lists
******************************************************************************************
Clear the volatile copy of the Alternate list. Display the list to verify that it
has been cleared. Restore the volatile copy of the list with the non-volatile copy.
Display the list to verify that it has been restored.
******************************************************************************************
-V4 'V' Command: Display Defect Lists - Alt List
-i4,0,22 'i' Command: Initialize Defect List - Clear Alt List
-V4 'V' Command: Display Defect Lists - Alt List
-i4,2,22 'i' Command: Initialize Defect List - Restore Alt List
-V4 'V' Command: Display Defect Lists - User Alt List
******************************************************************************************
Display the humanized Congen information.
******************************************************************************************
-F 'F' Command: Set Congen Parameter
******************************************************************************************
Test the ASCII Log Control command.
******************************************************************************************
Test the Select Data Output Mode command.
0 = Quiet Mode
1 = Raw Binary Mode (Not Tested)
2 = Raw ASCII Mode
3 = Formatted ASCII Mode
4 = Verbose Formatted ASCII Mode
5 = Simplified Formatted ASCII Mode
This command is tested by issuing a sequence of commands with each of the Data
Output Modes selected.
******************************************************************************************
-O0 'O' Command: Select Data Output Mode - Quiet Mode
-A0 All Level 'A' Command: Set Test Space
-/2S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-W 'W' Command: Write CHS
-/TO2 'O' Command: Select Data Output Mode - Raw ASCII Mode
-A0 All Level 'A' Command: Set Test Space
-/2S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-W 'W' Command: Write CHS
-/TO4 'O' Command: Select Data Output Mode - Verbose Formatted ASCII Mode
-A0 All Level 'A' Command: Set Test Space
-/2S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-W 'W' Command: Write CHS
-/TO5 'O' Command: Select Data Output Mode - Simplified Formatted ASCII Mode
-A0 All Level 'A' Command: Set Test Space
-/2S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-W 'W' Command: Write CHS
-/TO3 'O' Command: Select Data Output Mode - Formatted ASCII Mode
-A0 All Level 'A' Command: Set Test Space
-/2S200,0 'S' Command: Seek to Logical Cylinder and Head
-. Online '.' Command: Display Active Status
-W 'W' Command: Write CHS
-/ All Level '/' Command: Change Diagnostic Command Level
******************************************************************************************
Read the SAP, RAP and CAP from non-volatile memory.
Note: Currently, attempting to read the SAP and CAP from non-volatile memory will
result in an Unsupported Adaptive Feature error (DiagError 7000).
******************************************************************************************
-*A,7000,0,2 All Level '*' Command: Special Batch File Function - Set Expected Error
-R4 'R' Command: Read Non-Volatile Adaptive Parameters - SAP
-R2 'R' Command: Read Non-Volatile Adaptive Parameters - RAP
-R1 'R' Command: Read Non-Volatile Adaptive Parameters - CAP
******************************************************************************************
Display the Active Error Log and check if the Batch File failed.
******************************************************************************************
-*B All Level '*' Command: Special Batch File Function - Display Log
-| '|' Command: Batch File Terminator
Description:
This batch file displays the help information for the serial port diagnostic commands
that are not currently being tested by the Predefined Batch File sequence.
******************************************************************************************
The following online serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
This command is not tested because it resets the drive which would terminate the
batch file execution.
This command is not tested because it select ESLIP serial port mode which would
terminate the batch file execution.
******************************************************************************************
-/C All Level '/' Command: Change Diagnostic Command Level
-Q^,C Control C Command: Firmware Reset
-Q^,T Control T Command: Enable ESLIP Serial Port Mode
******************************************************************************************
The following all level serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
None.
******************************************************************************************
******************************************************************************************
The following Level 1 serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
This command is not tested because it undocumented and is the process of being
obsoleted. People who use this command use it at their own risk.
This command is not tested because it resets the drive which would terminate the
batch file execution.
******************************************************************************************
-Q1,G 'G' Command: Generic Read/Write Request
-Q1,e 'e' Command: Spin Down and Reset Drive
******************************************************************************************
The following Level 2 serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
Currently these commands generate unexpected Read Miscompare errors (DiagError 5008).
******************************************************************************************
-Q2,N 'N' Command: Set Direct Write Mode
-Q2,V 'V' Command: Read Verify CHS
-Q2,7 '7' Command: Write Verify CHS
******************************************************************************************
The following Level 3 serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
'f3' Command: Real Time Servo Trace - Servo Data during writes
******************************************************************************************
-Q3,f 'f' Command: Real Time Servo Trace - Servo Data during writes
******************************************************************************************
The following Level 4 serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
******************************************************************************************
-Q4,U 'U' Command: Servo Batch Test sub commands
******************************************************************************************
The following Level 5 serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
This command enables the Servo Matlab Shell. Since the Servo Matlab Shell
never returns, this terminates the batch file.
These commands write to servo RAM and have the potential to corrupt critical
servo information.
******************************************************************************************
-Q5,F 'F' Command: Drive Free Fall Protection
-Q5,S 'S' Command: Enter Servo Matlab Shell
-Q5,W 'W' Command: Write Servo RAM at Address
-Q5,w 'w' Command: Write Servo RAM at Index
******************************************************************************************
The following Level 6 serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
This is an interactive command that requires the user to enter a batch file.
******************************************************************************************
-Q6,E 'E' Command: Enter Batch File
******************************************************************************************
The following Level 7 serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
This command is not tested because it undocumented and is the process of being
obsoleted. People who use this command use it at their own risk.
This command is not tested because it will corrupt channel or preamp registers and
there is currently no way to restore them to their original value.
This command is not tested because it has the potential to corrupt the adaptive
parameters which would make the drive unusable.
******************************************************************************************
-Q7,i 'i' Command: Generic Read/Write Request
-Q7,s 's' Command: Write Peripheral Register - channel or preamp
-Q7,w 'w' Command: Save Adaptives To Flash
******************************************************************************************
The following Level 8 serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
******************************************************************************************
The following Level A serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
Currently this command causes flash led errors on some drives so it has been removed
from the predefined batch files until the problem can be investigated.
******************************************************************************************
-QA,P 'P' Command: Merge Alt List into Slip List
******************************************************************************************
The following Level C serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
None.
******************************************************************************************
******************************************************************************************
The following Level E serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
******************************************************************************************
-QE,m 'm' Command: Fast MSESER Measurement
-QE,o 'o' Command: Fine RW Offset Measurement
******************************************************************************************
The following Level F serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
This command is not tested because it will corrupt channel or preamp registers and
there is currently no way to restore them to their original value.
******************************************************************************************
-QF,t 't' Command: Write Peripheral Register - channel or preamp
******************************************************************************************
The following Level G serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
None.
******************************************************************************************
******************************************************************************************
The following Level H serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
******************************************************************************************
-QH,b 'b' Command: Contact Detect
******************************************************************************************
The following Level L serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
None.
******************************************************************************************
******************************************************************************************
The following Level T serial port diagnostic commands are not currently tested by the
Predefined Batch File Sequence:
This waits for a file to be sent to the drive over the serial port interface.
This command is not tested because it has the potential to corrupt the adaptive
parameters which would make the drive unusable.
This command erases information associated with Seacos which could make the drive
unusable.