F3 Serial Port Diagnostics PDF
F3 Serial Port Diagnostics PDF
F3 Serial Port Diagnostics PDF
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
'B' Command: Buffer Display
'D' Command: Memory Block Display
'G' Command: Generic Read/Write Request
'I' Command: Buffer DLL Tune
'N' Command: SMART Control
'S' Command: Edit Processor Memory Byte
'U' Command: Edit Buffer Memory Byte
'c' Command: Buffer Compare
'e' Command: Spin Down and Reset Drive
Level 2 Commands
'B' Command: Buffer Display
'C' Command: Buffer Copy
'E' Command: Display / Edit Log
'F' Command: Modify Track Defect List
'H' Command: Select Logical Head
'I' Command: Display / Modify Adaptive Parameter
'I,0' Command: Display / Modify CAP
'I,1' Command: Display / Modify RAP revision 02
'I,1' Command: Display / Modify RAP revision 10
'I,1' Command: Display / Modify RAP revision 11
'I,1' Command: Display / Modify RAP revision 14
'I,2' Command: Display / Modify SAP
'I,3' Command: Display / Modify RW Working Parameters
'J' Command: Particle Sweep
'K' Command: Set Tracking Offset
'M' Command: Set Diag Idle Mode
'N' Command: Set Direct Write Mode
'O' Command: Seek Repeatedly Between Physical Cylinders
'P' Command: Set Buffer Pattern
'Q' Command: Write, Read, Read CHS
'R' Command: Read CHS
'S' Command: Seek to Logical Cylinder and Head
'T' Command: Measure Throughput
'U' Command: Spin Up Drive
'V' Command: Read Verify CHS
'W' Command: Write CHS
'X' Command: Display Track Information
'Y' Command: Set Retries - Non-DERP
Level 3 Commands
'D' Command: Measure Seek Access Time
'E' Command: Display / Edit Log
'H' Command: Select Logical Head
'O' Command: Seek Repeatedly Between Physical Cylinders
'Q' Command: Write, Read, Write, Read CHS
'R' Command: Read Current Servo Destination
'S' Command: Seek to Logical Cylinder and Head
'U' Command: Spin Up Drive
'V' Command: Read or Write Power ASIC Register
'Z' Command: Spin Down Drive
'b' Command: Load/Unload Heads
Level 4 Commands
'B' Command: Enable / Disable RVFF
'D' Command: Measure Seek Access Time
'E' Command: Display / Edit Log
'H' Command: Select Logical Head
'K' Command: Set Tracking Offset
'O' Command: Display Micro Jog for Logical Cylinder and Head
'S' Command: Seek to Logical Cylinder and Head
'U' Command: Servo Batch Test sub commands
'e' Command: Enable / Disable PES Output
'l' Command: Scan Track for Servo Defects and ZAP
't' Command: Display / Modify ZAP Table
'u' Command: Set Seek Speed
'v' Command: Butterfly Seek Test
Level 5 Commands
'B' Command: Servo Bode Plot
'C' Command: Generic Servo Command
'D' Command: Read / Unlock DDR Buffer
'E' Command: Measure Disc Eccentricity
'F' Command: Drive Free Fall Protection
'G' Command: Select Servo Controller
'R' Command: Read Servo RAM at Address
'S' Command: Enter Servo Matlab Shell
'U' Command: Enable / Disable Servo Updates
Level 6 Commands
'B' Command: Run Batch File
'D' Command: Display Batch File
'E' Command: Enter Batch File
Level 7 Commands
'B' Command: Buffer Display
'C' Command: Buffer Copy
'D' Command: Display Temperature
'E' Command: Display / Edit Log
'H' Command: Select Logical Head
'I' Command: Display / Modify Adaptive Parameter
'I,0' Command: Display / Modify CAP
'I,1' Command: Display / Modify RAP revision 02
'I,1' Command: Display / Modify RAP revision 10
'I,1' Command: Display / Modify RAP revision 11
'I,1' Command: Display / Modify RAP revision 14
'I,2' Command: Display / Modify SAP
'I,3' Command: Display / Modify RW Working Parameters
'K' Command: Set Track Format
'P' Command: Set Buffer Pattern
'Q' Command: Write, Read, Read CHS
'R' Command: Read CHS
Level 8 Commands
'C' Command: Servo Diagnostic Sub Commands
'R' Command: Read Current Servo Destination
'S' Command: Seek to Logical Cylinder and Head
'U' Command: Spin Up Drive
'Z' Command: Spin Down Drive
'd' Command: Head Smash Test
Level A Commands
'C' Command: Translate PBA
'D' Command: Translate Symbols From Index
Level C Commands
'Q' Command: Display ASCII Command Information
'T' Command: Goop Plot
Level E Commands
'B' Command: Write Wedge
'C' Command: Read Wedge
'm' Command: Fast MSESER Measurement
'o' Command: Fine RW Offset Measurement
'w' Command: Slow Write CHS
Level F Commands
'B' Command: Buffer Display
Level G Commands
'B' Command: Fill Correction Buffer
'C' Command: Copy Correction Buffer
'D' Command: Display Correction Buffer
'F' Command: Fill Super Parity RAM
'G' Command: Display Super Parity RAM
Level H Commands
'B' Command: Buffer Display
'P' Command: Set Buffer Pattern
'S' Command: Seek to Logical Cylinder and Head
'b' Command: Contact Detect
Level L Commands
'C' Command: Copy Log File
'D' Command: Display Log File
'E' Command: Enable / Disable Logging
'I' Command: Display Log File Information
'c' Command: Create Log File
'd' Command: Delete Log File
'i' Command: Initialize Log File
Level T Commands
'B' Command: Set Baud Rate
'E' Command: Display / Edit Log
'F' Command: Set Congen Parameter
'O' Command: Select Data Output Mode
'P' Command: Download Generic File
'R' Command: Read Non-Volatile Adaptive Parameters
'T' Command: Odd Even Encroachment Test
'V' Command: Display Defect Lists
'W' Command: Save Adaptives To Flash
'Z' Command: Erase Seacos Data and Code
'i' Command: Initialize Defect List
'm' Command: Format Partition
'[' Command: ASCII Log Control
Online Commands
Carriage Return Command: Abort
ESCAPE Command: Abort Looping Command or Batch File
Space Command: Pause Output
'!' Command: Display Current Read Channel Settings
'$' Command: Display Read/Write Statistics By Zone
Description:
This command terminates any diagnostic command that is in progress and disables looping.
Quick Help:
"Abort";
Input Parameters:
None
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command aborts the looping of a diagnostic command or the execution of a Batch
File.
Quick Help:
"AbortLoopOrBatchFile";
Input Parameters:
None
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"AsciiLogControl, [[LogFunction],[Log]";
Input Parameters:
0 - Select ASCII Log Function.
This parameter selects the following ASCII log functions.
0x09 - Append data to end of ASCII Log.
If Parameter 0 is equal to 9, 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.
0x0A - Enable ASCII Logging.
If Parameter 0 is equal to 0xA, ASCII Logging will be enabled. When
enabled, ASCII Logging will capture all data transfered to the host
over the serial port interface to the ASCII Log.
0x0B - Disable ASCII Logging.
If Parameter 0 is equal to 0xB, ASCII Logging will be disabled.
0x0C - Save ASCII Log.
If Parameter 0 is equal to 0xC, the ASCII Log will be copied to the log
specified by Parameter 1.
0x0D - Display ASCII Log.
If Parameter 0 is equal to 0xD, the ASCII Log will be displayed.
Type:
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.
Type:
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred and the contents of an ASCII Log are being displayed,
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"BatchFileLabel, @[LabelNum]";
Input Parameters:
0 - Label Number.
This parameter specifies the Label Number. The Batch File branch instructions
specify this value as the branch destination.
Type:
Range:
0 to 0xF
Default: None
Output Data:
None
Revision History:
0001.0000
Initial revision.
Description:
This command terminates the entry and execution of a Batch File.
Quick Help:
"BatchFileTerminator, |";
Input Parameters:
None
Output Data:
None
Revision History:
0001.0000
Initial revision.
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.
Quick Help:
Level 1 and 2
"BufferCompare, c[SrcBlk],[RefBlk],[NumBlks],[ContOnErr]";
Level F
"BufferCompare, V[SrcBlk],[RefBlk],[NumBlks],[ContOnErr]";
Input Parameters:
0 - First Source Buffer Block Number.
If this parameter is entered, it specifies the number of the first buffer block
that contains the source data to be compared.
Type:
Range:
Default: If this parameter is not entered, the first block of the Diagnostic
Read Buffer will be the first source block.
1 - First Reference 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 compared.
Type:
Range:
Default: If this parameter is not entered, the first block of the Diagnostic
Write Buffer will be the first reference block.
2 - Number of Buffer Blocks to Compare.
This parameter specifies the number of consecutive buffer blocks to be compared.
Type:
Range:
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
Range:
0 to 0xFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If the error is a buffer miscompare, the following additional information will be
displayed.
"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.
dddddddd is the address of the Source Buffer byte that miscompared.
ee is the value of the Source Buffer byte that miscompared.
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.
hh is the value of the Reference Buffer byte that miscompared.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Buffer Copy command copies the contents of the specified source buffer block(s)
to the specified destination buffer block(s).
Quick Help:
"BufferCopy, C[SrcBlk],[DestBlk],[NumBlks]";
Input Parameters:
0 - First Source Buffer Block Number.
If this parameter is entered, it specifies the number of the first buffer block
that contains the source data to be copied.
Type:
Range:
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.
Type:
Range:
Default: If this parameter is not entered, the first block of the Diagnostic
Write Buffer will be the first destination block.
2 - Number of Buffer Blocks to Copy.
This parameter specifies the number of consecutive buffer blocks to be copied.
Type:
Range:
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:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"BufferDisplay, B[DisplayBlk],[RefBlk],[NumBlks],[Opts],[SymBits]";
Input Parameters:
0 - Display Buffer Block.
This parameter specifies the number of the first buffer block to be displayed.
Type:
Range:
Default: If this parameter is not entered, the First block of Diagnostic Read
Buffer will be displayed.
1 - Reference Buffer Block.
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.
Type:
Range:
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.
Type:
Range:
Default: 1
3 - Options.
This parameter is a bit-significant value that selects the following options.
Bits 31-1: not used
Bit 0:
Range:
0 to 0xFFFFFFFF
Range:
1 to 32
Default: 8
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following header will be displayed.
"Buffer Block cccc (eee Bytes/Block)"
"Buffer Block cccc compared to Buffer Block dddd (eee Bytes/Block)"
or
where
cccc is the number of the Buffer Block being displayed.
dddd if the number of the Buffer Block to which the displayed block is
being compared.
eee is the number of bytes per block.
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"
"ffffffff gg gg gg gg gg gg gg gg gg gg gg gg gg gg gg gg" (repeated)
where
ffffffff is the buffer address of the first byte in the row.
gg is the buffer data byte.
If the memory data is being displayed as non-8-bit symbols, the following information
will be displayed following the header.
"Symbol Size = hh bits"
"Sym 0 1 2 ... "
"iii jj jj jj ... "
(repeated)
where
hh is the size, in bits, of the symbols being displayed.
iii is the number of the first symbol in the row.
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:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command exercises the DRAM read clock DLL tuning routines.
Quick Help:
"BufferDllTune, I[action][DLL]";
Input Parameters:
0 - Action Value.
This parameter specifies what action to take.
0:
1:
2:
3:
4:
5:
9:
Type:
Range:
0, 2, 3, 4, 5, 9
Range:
0 to 0x1FF
Default: none
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, then the output of this command will be displayed as follows:
Current reg = 92
Examples:
Example #1:
To display current DLL values:
F3 1>I
Example #2:
To turn on display of DLL values:
F3 1>I4
Example #3:
To turn off periodic DLL updates:
F3 1>I3
Revision History:
0001.0000
Initial revision.
Description:
The Butterfly Seek Test commmand performs the following seeks on the specified head:
1) Seek to specified 1st cylinder ( minimum cyl addr , OD ) , then to specified
2nd cylinder ( maximum cyl addr , ID ) .
2) Increment 1st cyl, decrement 2nd cyl , seek to 1st , then 2nd .
3) Repeat 2) until seek has again reached original OD and ID cylinders,
but in opposite order of original seek.
4) Decrement 1st cyl, increment 2nd cyl , seek to 1st , then 2nd .
5) Repeat 4) until seek has again reached original OD and ID cylinders.
6) Repeat Steps 2) through 5) until test duration or desired number
seeks is complete.
Quick Help:
"ButterflySeekTest, v[StartPhyCyl0],[StartPhyCyl1],[NumSkPairs],[NumSeconds],[Hd]";
Input Parameters:
0 - Starting first Physical cylinder of seek
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:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command selects the specified Diagnostic Level.
Quick Help:
"ChangeDiagLevel, /[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.
Type:
ASCII character
Range:
Default: Level T
Output Data:
The Diagnostic Level is displayed followed by the command prompt.
Revision History:
0001.0000
Initial revision.
Description:
This command tweaks the write power and fly height values based on the specified
temperature value.
Quick Help:
"ChannelTemperatureAdj, U[TweakTemperature],[Partition],[Hd],[Zone],[Opts]";
Input Parameters:
0 - Tweak Temperature in degrees Celsius.
This parameter specifies the temperature (in degrees Celsius) with which the
write power and fly height are to be tweaked.
Type:
Range:
0 to 0xFF
=
=
=
=
User Partition
System Partition
User Partition
System Partition
Type:
Range:
0, 1, 10 hex or 20 hex
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.
Type:
Range:
Defined by RAP.
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.
Type:
Range:
Defined by RAP.
Default: None
4 - Channel Temperature Adjustment Option.
This parameter is a bit significant value that specifies how the channel
Range:
0 to 0xFFFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following will be displayed
"Write Current = a"
"Write Damping = b"
"Write Damping Duration = c"
where
a is a hex value of write current
b is a hex value of write damping
c is a hex value of write damping duation
"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
a.bbbbbbsEscc is a floating point value for write loss
d.ffffffsEsgg is a floating point value for delta clearance due to temperature
h.iiiiiisEsjj is a floating point value for read fly height
k.llllllsEsmm is a floating point value for write fly height
hh are heater DAC values for preheat, write heat, and read heat
Revision History:
0001.0000
0001.0001
0011.0000
Initial revision.
Added option bit 1 to directly use heat values from RAP without
any tweaking.
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).
Description:
This commmand exercises a simple method of Delta PES contact detection. The methodology is
heavily leveraged from Self Test FW Test 35.
Quick Help:
"ContactDetect, b[Flags],[Revs],[BaselineRevs],[StartWedge],[A],[B],[C],[D],[E],[StartHt],[HtI
"[FixedPESThresh],[FilterDelta]";
Input Parameters:
0 - Flags
Bit 0 Search Mode
0 = Heater Only
1 = Write+Heat
Type:
Range:
0 to 0xFFFFFFFF
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.
Type:
Range:
0 to 0xFF
Default: 50
3 - Starting wedge
This number is the starting wedge from Index.
Type:
Range:
0x0000 to 0xFFFF
Default: 0
4 - Fast IO "A" wedges
This parameter specifies the "A" pre write/read number of wedges for Fast IO.
Type:
Range:
0x0000 to 0xFFFE
Note there is a memory limitation on this value, this # wedges directly
impacts memory set aside for Fast IO.
Default: Scales with number of Servo wedges/track.
5 - Fast IO "B" wedges
This parameter specifies the "B" write/read number of wedges for Fast IO.
Type:
Range:
0x0000 to 0xFFFE
Note there is a memory limitation on this value, this # wedges directly
impacts memory set aside for Fast IO.
Default: Scales with number of Servo wedges/track.
6 - Fast IO "C" wedges
This parameter specifies the "C" post write/read number of wedges for Fast IO.
Type:
Range:
0x0000 to 0xFFFE
Note there is a memory limitation on this value, this # wedges directly
impacts memory set aside for Fast IO.
Default: Scales with number of Servo wedges/track.
7 - Fast IO "D" wedges
This parameter specifies the "D" secondary write/read number of wedges for Fast IO.
Type:
Range:
0x0000 to 0xFFFE
Note there is a memory limitation on this value, this # wedges directly
impacts memory set aside for Fast IO.
Default: 0
8 - Fast IO "E" wedges
This parameter specifies the "E" post secondary write/read number of wedges for Fast IO.
Type:
Range:
0x0000 to 0xFFFE
Note there is a memory limitation on this value, this # wedges directly
impacts memory set aside for Fast IO.
Default: 0
9 - Starting heater DAC
This number is the starting heater DAC.
Type:
Range:
0x00 to 0xFF
Default: 0
10 - Heater DAC coarse increment
This number is the coarse heater DAC increment.
Type:
Range:
0x00 to 0xFF
Default: 1
11 - Fixed PES Threshold
This number is the fixed PES threshold.
Type:
Decimal float
Range:
14 character entry
Default: 0.05
12 - Filter Delta
This number is the filter delta.
Type:
Range:
0x00 to 0xFF
Default: 70
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
where
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
dddddddd is the error code returned by the R/W subsystem
If the Verbose Formatted ASCII Data Output Mode is selected:
Bit 0:
Bits 31-1:
Standard display:
Parameter setup
Heater Only Search
Revs aa
BaselineRevs bb
APreWrNumSvoWedges cccc
BWrNumSvoWedges dddd
CPostWrNumSvoWedges eeee
DRdNumSvoWedges ffff
EPostRdNumSvoWedges gggg
HeaterStart hh
HeaterIncr ii
PesThreshold +j.jjjjjjE+j
FilterDelta kk
where
aa, bb number of iterations of Fast IO measurements.
cccc Fast IO "A" parameter.
dddd Fast IO "B" parameter.
eeee Fast IO "C" parameter.
ffff Fast IO "D" parameter.
gggg Fast IO "E" parameter.
hh Heater Start.
ii Heater Increment.
+j.jjjjjjE+j Fixed PES Threshold.
kk Filter Delta window.
Contact Detect loop
State DAC dPESSigma
a,
bb, c
a,
bb, c
a,
a,
a,
a,
a,
bb,
bb,
bb,
bb,
bb,
c
c
c
c
c
where
a Contact Detect loop state, defined as:
S searching
DC contact detected
DV contact verified
bb Current heater DAC.
c dPES variance, displayed as Scientific Notation floating point value.
Test Summary ffff
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.
bbbbbbbb Target cylinder.
cc Target head.
dddd Frequency in MHz.
ee Write powers.
f Variance at contact.
g Threshold of contact.
h Calculated clearance at contact DAC.
ii Current drive temperature.
jj Heater values.
Revision History:
0001.0000
0001.0001
Initial revision.
Added new parameters:
Starting Heat
Coarse Heater Increment
Fixed PES Threshold
Filter Delta
Added new parameter Baseline Iterations.
This addition lines up naturally with the Iterations parameter, hence all
other parameters shifted down.
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).
0002.0000
0011.0000
Description:
This command converts the specified data track percentage to a servo offset count for
the current target track.
Quick Help:
"ConvertTrackPercentageToOffsetCount, v[Percentage]";
Input Parameters:
0 - Data Track Percentage.
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.
Type:
Range:
0x8000 to 0x7FFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed.
"Phy Cyl cccccccc Log Hd d Data Track Percentage eeee Servo Offset Count ffff Data T
where
cccccccc is the physical cylinder address
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Changed to use Q14 servo count, instead of old servo offset count.
Output also changed to include data track width in Q14 servo counts.
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).
Description:
This command copies the specified segment of the Correction Buffer to another
place in the same buffer.
Quick Help:
"CopyCorrectionBuffer, C[SrcAddr],[DestAddr],[NumSyms]";
Input Parameters:
0 - Source Address Offset of Correction Buffer.
This parameter specifies the source address offset of the correction buffer.
Type:
Range:
0 to 0xffff,
Default: 0
1 - Destination Address Offset of Correction Buffer.
This parameter specifies the destination address offset of the correction buffer.
Type:
Range:
0 to 0xffff
Default: 0
2 - Symbol Count of Correction Buffer Units To Be Copied.
This parameter specifies the count of the symbols in the correction buffer
to be copied.
Type:
Range:
0 to 0xffff
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command copies the specified source log file to the specified destination log file.
Quick Help:
"CopyLogFile, C[SrcLog],[DestLog],[AppendOpt]";
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.
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:
Range:
0 to 0xFFFF
Default: None
1 - Destination Log Number.
This parameter specifies the number of the log that is the destination of the data
to be copied.
Type:
Range:
0 to 0xFFFF
Default: None
2 - Append Source Log to Destination Log.
If any value is entered for this parameter, the specified source log will be
appended to the end of the specified destination log.
Type:
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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 to corrupt. The location within the blocks where the
corruption should occur is determined by the specified offset and option flag. This
Diagnostic command basically does Read Long operation, corrupt the Diag Read buffer
then does Write Long operation with the corrupted Diag Read buffer.
Quick Help:
"CorruptLba, o[Lba],[NumBlocks],[NumBytes],[ByteOffset],[Flags]";
Input Parameters:
0 - LBA (Logical Block Address) Number.
This parameter specifies the address of the first User Area LBA to corrupt.
Type:
Range:
Default: None
1 - Number of Blocks To Corrupt
This parameter specifies the number of consecutive blocks to corrupt.
Type:
Range:
0 to 0xFFFFFFFF
Default: 1
2 - Number of Bytes To Corrupt.
This parameter specifies the number of bytes to be corrupted for each block.
Type:
Range:
0 to 0xffff
Default: None
3 - Starting Byte Offset for Consecutive Corruption
This parameter specifies the starting byte offset for consecutive corruption.
This parameter is valid only when lower 4 bits of the parameter 4 are all 0.
Consecutive bytes starting from the byte offset specified by this parameter
for the number of bytes specified by the parameter 2 will be corrupted.
Type:
Range:
0 to 0xffff
Default: 0
4 - Options
This parameter is a bit-significant value that specifies the following options
Bits 15-5: not used.
Bit 4:
Enable ECC Correction for the Read Long operation part of the
Corrupt LBA diag command.
If this bit is set ECC Correction will be enabled for the read
long operation, else ECC Correction will be disabled.
Bit 0-3:
Type:
Range:
0 to 0xFFFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
iiiiii is the Physical Cylinder Address of the sector in error
j is the Logical Head Address of the sector in error
kkkk is the Physical Sector Address of the sector in error
llllllll is the number of sectors remaining to be read or written
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.
Bit 0:
Bit 1:
Bit 2:
Bit 3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
vvvv is the starting Physical Sector Address
wwwwwwww is the starting Transfer Length
If Bit 4 is set, the Recovery Status will be displayed as follows.
"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
BBBBBB is the Logical Cylinder Address of the last recovered sector
is
is
is
is
minutes
seconds
milliseconds
microseconds
Examples:
Example #1:
To corrupt a single LBA at byte offsets from 0 to 0xF
(in this case LBA at 0x51237)
F3 2>o51237,,10
or
F3 2>o51237,1,10,0,0
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
or
F3 2>o51237,11,20,100,0
Example #3:
To corrupt a single LBA at 16 random byte offsets within data and ECC region
(in this case LBA at 0x51237)
F3 2>o51237,,10,,A
or
F3 2>o51237,1,10,,A
Example #4:
To corrupt a single LBA at 32 random byte offsets within data region only
(in this case LBA at 0x51237)
F3 2>o51237,,20,,D
or
F3 2>o51237,1,20,,D
Example #5:
To corrupt a single LBA at 48 random byte offsets within ECC region only
(in this case LBA at 0x51237)
F3 2>o51237,,30,,E
or
F3 2>o51237,1,30,,E
To enable ECC correction for the Read Long operation before corrupting the buffer
add 0x10 to the parameter 4.
Example #6:
To corrupt a single LBA at byte offsets from 0x30 to 00x37 with ECC correction enabled
(in this case LBA at 0x51237)
F3 2>o51237,,8,30,10
or
F3 2>o51237,1,8,30,10
Example #7:
To corrupt a single LBA at 32 random byte offsets within data region only
with ECC correction enabled
(in this case LBA at 0x51237)
F3 2>o51237,,20,,1D
or
F3 2>o51237,1,20,,1D
Revision History:
0001.0000
Initial revision.
Description:
This command creates the specified log file.
Quick Help:
"CreateLogFile, c[Log],[LogType],[BufferOrDiskOpt],[NumBytes]";
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:
0x0001:
0x0002:
0xFFFC:
0xFFFD:
0xFFFE:
0xFFFF:
Type:
Range:
0 to 0xFFFF
Default: None
1 - Log Type.
This parameter specifies the type of log file to be created.
0 = Error Log
1 = ASCII Log
2 = Read/Write Statistics Log
Type:
Range:
0 to 2
Default: None
2 - Buffer or Disc Log.
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
Type:
Range:
0 to 1
Default: None
3 - Log Size in bytes.
This parameter specifies the size, in bytes, of the log file to be created.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command decrements the number of the Servo Wedge for which the Scope Sync Pulse
will be generated.
Quick Help:
"DecRwScopeSync";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed.
"
Burst cccc"
where
cccc is the current Scope Sync Wedge number
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command deletes the specified log file.
Quick Help:
"DeleteLogFile, d[Log]";
Input Parameters:
0 - Log Number.
This parameter specifies the number of the log to be deleted.
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.
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:
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Disable / Enable Servo ZAP coefficients and ZAP read (Level 5 'd')
Description:
This command disables / enables the servo from using the coefficients in the ZAP table.
Quick Help:
"DisableEnableServoZap, d[ZapControlMode]";
Input Parameters:
0 - ZAP Control Mode.
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:
3:
4:
5:
Enable both Read and Write ZAP coefficients with ZAP data from ZAP table
Reserved for future use
Enable Read ZAP coefficients only with ZAP data from disk
Enable both Read and Write ZAP coefficients with ZAP data from disk
Type:
Range:
0 to 5
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, one of the follwing information will be displayed to indicate
the current ZAP control mode
ZAP
ZAP
ZAP
ZAP
ZAP
ZAP
control:
control:
control:
control:
control:
control:
No
Write ZAP from disc
Read/Write ZAP from table
Reserved
Read ZAP from disc
Read/Write ZAP from disc
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Display Active Status command displays the drives's active status information.
Quick Help:
"DisplayActiveStatus";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
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
cccccccc is the current Read/Write Disk Logical Block Address
dddddd is the current Read/Write Logical Cylinder Address
e is the current Read/Write Logical Head Address
ffff is the current Read/Write Logical Sector Address
gggggg is the current Read/Write Physical Cylinder Address
h is the current Read/Write Logical Head Address
iiii is the current Physical Sector Address
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:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays the revision of the specified ASCII serial port diagnostic
command.
Quick Help:
"DisplayAsciiCmdInfo, Q[CmdLevel],[Cmd]";
Input Parameters:
0 - Diagnostic Command Level.
This parameter specifies the Diagnostic Command Level of the ASCII Serial Port
ASCII character
Range:
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.
Type:
ASCII character
Range:
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 following is displayed:
Level LL 'CC': Rev XXXX.YYYY, RRRRRR, SSSSSS
or
All Levels LL 'CC': Rev XXXX.YYYY, RRRRRR, SSSSSS
or
Online LL 'CC': Rev XXXX.YYYY, RRRRRR, SSSSSS
Where:
LL
CC
XXXX
YYYY
RRRRRR
SSSSSS
=
=
=
=
=
=
Command Level
Command Character
Major Revision Number
Minor Revision Number
"Overlay" or "Flash"
Command help string
Revision History:
0001.0000
Initial revision.
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.
Quick Help:
"DisplayBatchFile, D[BatchFileNum]";
Input Parameters:
0 - Batch File Number.
This parameter specifies the number of the Batch File to be displayed.
Type:
Range:
0 t0 0xFF
Default: 0
Output Data:
Displays the ASCII Serial Port Command sequence contained in the Batch File.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays the Congen information.
Quick Help:
"DisplayCongen";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the Congen data will be displayed as follows:
F3 T>
0000:
0010:
0020:
0030:
0040:
0050:
00
A8
00
03
07
0A
3A
01
5C
00
00
00
00
00
02
00
00
16
0A
0A
26
03
00
00
00
00
00
00
04
00
00
8E
BE
DE
F6
05
08
00
00
00
00
00
06
53
0B
00
00
00
00
07
43
00
00
00
00
00
08
68
01
04
08
1A
00
09
00
00
00
00
00
00
0A
00
0A
16
12
0A
16
0B
00
00
00
00
00
00
0C
01
82
A6
CA
EA
1E
0D
10
00
00
00
00
01
0E
01
00
00
00
00
00
0F
00
00
00
00
00
00
0060:
0070:
0080:
0090:
00A0:
00B0:
00C0:
00D0:
00E0:
00F0:
0100:
0110:
0120:
0130:
0140:
0150:
0160:
0170:
0180:
0190:
01A0:
01B0:
01C0:
01D0:
01E0:
01F0:
0200:
0210:
0220:
0230:
0240:
0250:
0260:
0270:
0280:
0290:
02A0:
02B0:
02C0:
02D0:
02E0:
02F0:
0300:
0310:
0320:
0330:
0340:
0350:
0360:
0370:
0380:
0390:
03A0:
03B0:
03C0:
03D0:
03E0:
03F0:
0400:
0410:
0420:
DC
B4
81
00
40
00
FF
FF
00
00
00
00
36
01
00
00
00
00
45
20
20
00
FF
78
26
03
FE
99
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
32
13
22
22
3E
00
00
00
00
40
99
00
54
00
01
03
0A
00
00
00
00
FF
00
00
00
00
46
37
00
00
00
00
33
20
20
02
FF
00
21
40
FF
A9
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
04
A9
00
15
00
0C
00
C0
00
00
00
00
FF
00
00
00
00
51
03
00
00
00
00
32
20
20
00
FF
00
00
28
00
6B
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
14
61
2D
00
00
00
00
40
00
00
6B
00
3C
00
00
00
08
0E
00
00
00
FF
00
04
00
00
30
40
00
00
00
40
34
20
20
00
0F
00
00
34
00
1C
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
4B
00
15
1C
00
00
00
38
01
FF
00
84
00
00
80
00
BA
00
00
32
DC
BE
3F
00
04
34
20
20
FF
00
00
20
01
00
00
00
00
00
02
00
00
00
00
00
00
00
00
08
00
00
00
00
00
00
33
32
32
1A
00
00
00
00
00
20
00
00
00
00
01
10
00
00
16
00
00
20
00
26
00
00
34
01
00
00
00
00
38
20
20
3F
00
00
20
3C
FE
00
00
00
00
00
00
00
00
00
00
00
00
00
10
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
A0
00
26
00
00
00
00
06
02
00
FF
00
00
00
00
00
31
0C
DC
00
00
20
31
20
10
10
07
00
20
03
00
00
00
24
00
00
00
00
00
00
00
00
00
00
20
00
00
00
00
00
00
24
14
00
00
00
00
00
00
00
2C
08
00
00
00
00
00
00
46
44
00
FF
00
00
05
00
00
00
00
02
00
00
20
30
20
00
00
04
00
20
40
00
00
00
20
00
00
00
00
00
00
00
00
00
00
20
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
01
00
00
00
3E
00
05
02
8A
1C
88
00
9A
00
00
00
00
01
5A
00
00
20
41
20
00
3F
23
00
7E
7F
00
00
00
22
21
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
0F
0F
32
32
12
00
00
00
00
00
00
00
00
00
00
00
00
00
02
20
12
00
0A
00
00
00
00
00
0C
00
00
20
53
20
00
00
00
00
20
00
00
00
00
20
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
DC
00
FF
00
00
00
14
00
00
00
00
00
00
00
FF
00
00
20
20
20
20
10
78
00
1B
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
06
1E
00
00
00
00
00
00
00
00
00
00
00
08
02
00
FF
01
00
00
00
00
02
00
02
00
00
18
3F
00
00
20
20
20
2F
FC
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
48
06
83
01
00
87
FF
8A
00
00
00
80
00
00
37
00
00
20
20
20
00
FB
78
00
6B
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
03
32
3A
32
10
00
00
00
00
00
99
00
D0
00
01
00
16
18
00
0A
FF
0A
00
0A
00
16
00
02
C8
00
00
20
20
20
40
00
00
00
34
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
A9
00
07
00
00
01
0D
01
00
00
00
02
00
00
00
30
00
00
10
00
00
53
20
20
00
10
78
1F
01
FE
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
6B
00
E8
00
00
00
BE
18
00
08
00
00
05
00
00
32
00
00
00
00
00
54
20
20
02
01
00
00
7F
FE
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
1C
00
03
00
Byte:011E:
Byte:0127:
Byte:012F:
Byte:0130:
Byte:0132:
Byte:0133:
DriveNativeInfo Group
PartNumber = 30 32 36 46 51 30 32 34 31
'026FQ0241'
PartNumberWhitespacePad = 00 00 00 00 00 00 00 00
''
PartNumberPad = 00
ProcessControlVersion = 01 37
CongenConfigurationState = 03
WrittenCount = 40
Bytes Returned = 0.
F3 T>
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays the controller registers to the serial port.
Quick Help:
"DisplayControllerRegs";
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:
SATA Vis Mux Registers
400a0600: 0000 0000 0000 0000 0000 0000 0000 0000
400a0610: 0000 0000 0000 0000 0000 0000 0000 0000
Currently, the register blocks output are as follows:
SATA Core Registers
SATA Vis Mux Registers
SATA Test Mux Registers
SATA SSIP / Phy Registers
AT Registers
Traverser Regs
Host Data Manager Regs
Disc Data Manager Registers
PBM Memory Controller Registers
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays the specified segment of Correction Buffer with the expected
data pattern.
Quick Help:
"DisplayCorrectionBuffer, D[StartAddr],[EndAddr],[CompareData]";
Input Parameters:
0 - Start Address Offset of Correction Buffer.
This parameter specifies the start address offset of the correction buffer.
Type:
Range:
0 to 0xffff,
Default: 0
1 - End Address Offset of Correction Buffer.
This parameter specifies the end address offset of the correction buffer.
Type:
Range:
0 to 0xffff
Default: 0
2 - Expected Data Pattern.
This parameter specifies the expected pattern. 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 compare with the data read from the Correction Buffer.
Type:
Range:
0 to 0x03ff
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
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).
Description:
This command displays the current value of the Read Channel, Preamp and Power ASIC
registers.
Quick Help:
"DisplayRdChannelRegs";
Input Parameters:
None
Output Data:
If a single Read Channel register was read, the following information will be displayed.
"Read Channel Reg cccc = dddd"
where
cccc is the address of the register that was read
dddd is the value that was read from the register
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
cccc is the address of the first register in the row
dddd is the value that was read from the register
If a single Preamp register was read, the following information will be displayed.
"Preamp Reg cc = dd"
where
cc is the address of the register that was read
dd is the value that was read from the register
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
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays any combination of the user slip list, the system slip list, the
servo flaws list, and the reassigned sectors table.
Quick Help:
"DisplayDefectLists, V[DefectListSelect],[Hd],[StartCyl],[NumCyls],[DisplaySummaryOpt]";
Input Parameters:
0 - Bit Select.
This input specifies the bit select for the display:
If bit 0 is set, the user track slip list will be displayed. If bit 15 is also
set, the entries will be displayed by index instead of cylinder/head.
If bit 1 is set, the reserved track slip list will be displayed. If bit 15 is also
set, the entries will be displayed by index instead of cylinder/head.
If bit 2 is set (4), the alt list will be displayed.
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.
If bit 15 is set in parameter zero ( Bit Select ), this parameter is ignored.
Type:
Range:
0 to 0xFFFFFFFF
Type:
Range:
Default: 0
3 - Element Count
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.
If bit 15 of parameter 0 (above) is clear, Element Count is the number of list
elements 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 G List Resident and GList Nonresident, Element Count is the number of PBAs of
entries to be displayed.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
4 - Display Summary
If set to 99, this input causes a parser - friendly list summary to be
displayed after all other output. Works with V4 only.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Log cyl, hd, sctr, zn, phys cyl, phys sctr - These indicate the location of
the first sector after slip. This address matches the LBA listed
in the first column. Note that physical head will equal the logical
head.
SFI - Symbols from index of the first sector after the slip. The SFI corresponds
to the LBA listed in the first column
Slips Sample:
F3 T>V8001,,10,6
90EB43
2
90FB09
1
910230
1
910956
1
91107D
1
9117A4
1
Head 0: entries
Head 1: entries
Total Entries
11
12
13
14
15
16
881
882
883
884
885
886
1
1
1
1
1
1
D2
7FA
682
509
391
219
22E
slips
187
slips
3B5 Total Slips
0
0
0
0
0
0
881
882
883
884
885
886
D4
7FB
683
50A
392
21A
5A52
590E
59C6
5882
5956
5A0E
90EB54
90FB1B
910243
91096A
911092
9117BA
phys phys
cyl sctr
881
D4
882 7FB
883 683
884 50A
885 392
886 21A
SFI
5A52
590E
59C6
5882
5956
5A0E
PBA
90EB54
90FB1B
910243
91096A
911092
9117BA
1BBE
3B5
1F73
F3 T>V1,,881,6
User Slip Defect List
LBA
90EB43
90FB09
910230
910956
91107D
9117A4
span
2
1
1
1
1
1
Head 0: entries
Head 1: entries
Total Entries
cumm
11
12
13
14
15
16
log
cyl
881
882
883
884
885
886
log
hd
1
1
1
1
1
1
log
sctr
D2
7FA
682
509
391
219
22E
slips
187
slips
3B5 Total Slips
zn
0
0
0
0
0
0
1BBE
3B5
1F73
span
0
268
Head 0: entries
Total Entries
cumm
0
268
2
slips
2 Total Slips
268
268
Note that SFI is not currently supported for the system area.
F3 T>V4
Reassigned Sectors
Original
New
LBA
PBA
7CD51F 7CD574
7E89B0 7E8A05
8465B0 84662A
36BA8AC 6B46255
415B13A 6B46257
4682DC6 4690DFC
980E2FA A0911D4
List
log log
log
phy phy
cyl hd sctr zn cyl sctr
863 1
22C 0 863 22C
87F 1
6E9 0 87F 6E9
8E0 0
31A 0 8E0 31A
----- - ----- 1 7343 1C5
----- - ----- 1 7343 1C7
4BD9 0
382 1 4BD9 382
----- - ----- 2 AE46 1E8
SFI
51F40
14A6C
205CE
BBM
BBM
BBM
ALT
ALT
950E
BBM
ALT
10EC8C97
14D8E9CF
159F54DE
16E84BE4
17DEECCE
1858833F
19E066FC
1359A486
1689E9C0
1689E9BF
17E41B07
196C0D2D
1860FF31
19E97E01
--------------------1D5F2
1FC8F
0
1
--------------------20F
42B
Alt
Pending Total
Entries Entries Entries
Head 0
3
Head 1
3
Total
8
6
E
Checksum = E964
7
9
9
A
B
B
C
16368
1A9DF
1A9DF
1C9D8
1EFD9
1D5F2
1FC8F
18E
10E
10D
139
153
20F
42B
ALT
ALT
ALT
ALT
ALT
744C8
2AE93
BBM
BBM
Alted Total
Alts Alts
3
The drive does not keep information about where an alt came from.
Therefore LLLCHS and SFI are not available for slips, and the
physical cylinder and physical sector refer to the new location in
the spares.
Possible flags in rightmost columns:
ALT
sector has been reassigned
BBM
sector is marked as untrustworthy (bad block mark)
no write
sector is marked as should not be written
no read
sector is makred as should not be read
reported
(only with reallocation time stamping)
sector has been reported to host
The display summary option works as follows:
F3 T>V4,,,,99
Total Alt Entries:
0
Total Alts of Alts:
0
Total Alts:
0
Total Pendings: 52
Total Entries:
52
F3 T>V8
Servo Flaws List
log
log
phy
head
cyl
cyl wedge status
2 8AA0 8AA0 C3 primary +
2 A542 A542 C2 primary +
2 A542 A542 C4 primary +
2 A54A A54A 2B primary +
3 15B28 15B28 34 primary +
3 17057 17057 FD primary +
3 1BBED 1BBED 1C primary +
3 1BBED 1BBED 2F primary +
3 1C6CB 1C6CB 28 primary +
3 1C6CB 1C6CB 2A primary +
3 25159 25159 B3 primary +
Log head 0: entries
0
Log head 1: entries
0
Log head 2: entries
4
Log head 3: entries
7
Total Entries
B
F3 T>V10
P List
log log
head cyl
0 1A4D
deallocd
deallocd
deallocd
deallocd
deallocd
deallocd
deallocd
deallocd
deallocd
deallocd
deallocd
phy length
cyl in symb SFI flags
1A4D
4B
8A2D1 2 TA
1 1A4E 1A4E
0 1A4F 1A4F
1 1A50 1A50
1 1A51 1A51
1 1A52 1A52
1 1A53 1A53
Head 0 Entries:
2
Head 1 Entries:
5
Total Entries: 7
49
4A
4A
48
4B
4B
8A2D1
8A2D1
8A2D1
8A2D1
8A2D1
8A2D1
1 servo
0
0
0
0
0
F3 T>V20
Primary Servo Flaws List
log log
phy
head cyl
cyl wedge
2 8AA0 8AA0
C3
2 A542 A542
C2
2 A542 A542
C4
2 A54A A54A
2B
3 15B28 15B28
34
3 17057 17057
FD
3 1BBED 1BBED
1C
3 1BBED 1BBED
2F
3 1C6CB 1C6CB
28
3 1C6CB 1C6CB
2A
3 25159 25159
B3
Head 0 Entries: 0
Head 1 Entries: 0
Head 2 Entries: 4
Head 3 Entries: 7
Total Entries: B
F3 T>V40,0,0,20
Nonresident GList
Total entries available: 5
PBA
Len Flags Phy Cyl
0
1
0
0
3F
1
0
0
5290 19
0
9
119C2
2
0
20
1D48B830
1
0
201FD
Flags:
RESERVED
POST_FORMAT_DEFECT
DEFECTIVE_SPARE
GROWN_TO_PRIMARY_LIST
1
2
4
8
5 entries returned
Hd PhySctr
SFI
0
1
1F7
0
41
8164
0
36D 1032CD
0
21
83B66
0
591
7B12B
Revision History:
0001.0000
0002.0000
0003.0000
0004.0000
0011.0000
Initial revision.
Correct headers to servo flaws list and primary servo flaws list.
Improve spacing of G List output.
Make GLists (V40, V80) and primary DST list ( V100) default to displaying
whole list.
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).
Description:
This command displays the defecive sector information on the current Target Track.
Quick Help:
"DisplayDefectsOnCurrentTrk, i";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, then the output of this command will be displayed as follows:
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
"Sector Info:"
"PhySec Wdg
cccc ddd
PhySec Wdg
eeee fff
PhySec Wdg
gggg hhh
PhySec Wdg"
iiii jjj
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:
0011.0000
Initial revision.
Description:
The Display Diagnostic Buffer Information command displays information about buffer
memory used to process diagnostic requests.
Quick Help:
"DisplayDiagBufferInfo";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed for each Diagnostic
Buffer File.
"Blks cccccc-dddddd (eeeeee), BufAddr ffffffff-gggggggg, DBA hhhhhhhh, BytesPerBlk i
where
cccccc is the number of the file's first buffer block
dddddd is the number of the file's last buffer block
eeeeee is the number of buffer blocks
ffffffff is the buffer address of the file's first byte
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays the status (percent complete, etc) of any current Drive
Self Test (DST) activity.
Quick Help:
"DisplayDstStatus";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Sample output shown below:
Total process 8% complete
50% of current test complete
<== NOTE: This line only appears on non-AT drives.
2 out of 7 steps complete in current test
Current operation is aborted.
Current status 0
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays or modifies the specified Log File.
Quick Help:
"DisplayEditLog, E[LogNum],[ErrCodeOrSpecialFuncKey],[SpecialFunc]";
Input Parameters:
0 - Log Number.
This parameter specifies the number of the log to be displayed. If this
parameter is not entered, the Active Error Log will be displayed. If this
parameter is equal to 0, the Active Error Log will be cleared. If this
parameter is entered and is not equal to 0, it specifies the number of the
Log to 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.
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:
Range:
0 to 0xFFFF
Range:
0 to 0xFFFF
Default: None
2 - Select Special Log Function.
This parameter selects the following special log functions.
0x0004 - Display Number of Unused Log Bytes.
If Parameter 2 is equal to 4, the number of unused bytes in the log
specified by Parameter 0 will be displayed.
0x0008 - Clear ASCII Log and update with entered data.
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.
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred and the contents of an Error Log are being displayed,
"Log c
"Count
"----"eeee
Entries d"
DIAGERR RWERR
LBA
LLL CHS
PLP CHS
Partition"
-------- -------- -------- --------------- --------------- ---------"
ffffffff hhhhhhhh iiiiiiii jjjjjjjj.k.llll mmmmmmmm.n.pppp q
"
where
c is the log number
d is the number of valid log entries
eeee is the number of times the error repeated
ffffffff is the Diagnostic Error Code
hhhhhhhh is the Read/Write Subsystem Error Code
where
e is the number of the log whose starting address is being displayed
ffffffff is the starting System Area LBA of a disc log
gggggggg is the starting Buffer Address of a buffer log
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays the Firmware Revision of the drive.
Quick Help:
"DisplayFirmwareRev";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed.
"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.
Package SFW1 Version: IIII, Package SFW2 Version: JJJJ, Package SFW3 Version: KKKK, Packag
where
CCCCCC.CCCC.CCCCCC.CCCCCCCC is the Package Version Field.
DDDDDDDDD is the Package Part Number Field.
EE is the Package Builder ID Field.
MM/DD/YYYY is the Package Build Date Field.
HH:MM:SS is the Package Build Time Field.
GGGG.GGGG.GGGGGG.GGGG is the Package CFW Component Version Field.
IIII Package SFW Component 1 Version Field.
JJJJ Package SFW Component 2 Version Field.
KKKK Package SFW Component 3 Version Field.
LLLL Package SFW Component 4 Version Field.
example output:
"Controller FwRev CCCCCCCC, CustomerRel DDDDDD, Changelist EEEE, ProdType FFFF, Date GG/GG/GGG
where
CCCCCCCC is the Controller Firmware Revision.
DDDD is the Customer Release number.
EEEEEEEE is the Perforce Changelist Number.
FFFF is the Product Type.
GG/GG/GGGG is the date the code was built.
HHHHHH is the time the code was built.
IIIIIIII is the global ID of the person that built the code.
Revision History:
0001.0000
0002.0000
0011.0000
0012.0000
Initial revision.
Added Firmware Package Information to the DSB.
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).
Added RAP FW Implementation Key.
Description:
This command displays the specified log file.
Quick Help:
"DisplayLogFile, D[Log],[ErrCode]";
Input Parameters:
0 - Log Number.
This parameter specifies the number of the log to be displayed.
is not entered, the Active Error Log will be displayed.
If a 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.
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:
Range:
0 to 0xFFFF
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays information about the specified log file.
Quick Help:
"DisplayLogFileInfo, I[Log]";
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.
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:
Range:
0 to 0xFFFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed.
"Log c d"
"e Log
"Starting System Area LBA = ffffffff"
"Starting Buffer Addr = gggggggg"
"Log Bytes = h, Log Entry Bytes = i, Max Entries = j, Valid Entries = k"
where
c is the log number
d is an ASCII string that specifies the log name
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Display Micro Jog for Logical Cylinder and Head (Level 4 'O')
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.
Quick Help:
"DisplayMicroJogForLogChs, O[LogCyl],[Hd],[Opts],[SysAreaOpt]";
Input Parameters:
0 - Logical Cylinder Address.
If Parameter 3 is entered, Parameter 0 is the address of the System Area logical
cylinder for which the micro jog value is to be displayed. If Parameter 3 is not
entered, Parameter 0 is the address of the User Area logical cylinder 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.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
1 - Logical Head Address.
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.
Type:
Range:
0 to 0xFF
Default: None
2 - Display Micro Jog options.
This parameter is a bit-significant value that specifies various options for
displaying the micro jog value. The bits are defined as follows:
bit 0: Disable Micro Jog Display
0 enables the micro jog value to be displayed
1 disables the micro jog value from being displayed
Type:
Range:
0 to 0xFFFF
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred and the track is in the User Area, the following information
will be displayed.
"User LBA cccccccc LLL CHS dddddd.e.ffff PLP CHS gggggg.h.iiii"
"MR Offset = jjjj"
If no error occurred and the track is in the System Area, the following information
will be displayed.
"System LBA cccccccc LLL CHS dddddd.e.ffff PLP CHS gggggg.h.iiii"
"MR Offset = jjjj"
where
cccccccc is the Disk Logical Block Address
dddddd is the Logical Cylinder Address
e is the Logical Head Address
ffff is the Logical Sector Address
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command is used to invoke the Read/Modify Adaptive Parameter subcommands.
Quick Help:
"DisplayModifyAdaptiveParm, I,[GroupId]";
Input Parameters:
0 - Not Used.
Please see the other Read/Modify Adaptive Parameters commands for details regarding
the use of this parameter.
Type:
N/A
Range:
N/A
Default: None
1 - P1 (Adaptive Parameter Group ID).
This parameter specifies the ID of the Adaptive Parameter Group that contains
the value to be displayed or modified.
00
01
02
03
FF
=
=
=
=
=
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
Output Data:
Please see each individual Read/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:
0001.0000
0002.0000
0002.0001
0011.0000
0011.0001
Initial revision.
Corrected Working Parameters display for Maintenance Heat.
Added separate command and diagnostic files to handle the different adaptive
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).
parameters.
Added support for modifying/reading SAP Flex Bias Table and SAP Bias Hysteresis Ta
Description:
This command displays the values of the specified controller adaptive parameters. (It
does not currently support the modification of controller adaptive parameters.)
Quick Help:
"DisplayModifyCap, I[ParmValue],0,[ParmId]";
Input Parameters:
0 - P0 (New CAP Value).
If this parameter is entered, the adaptive value specified by command
parameter 2 will be set equal to the value of this parameter.
Type:
Range:
Default: None
1 - P1 (CAP Group ID = 0).
This parameter specifies the Group ID of the CAP, which is 0.
Type:
Range:
Default: 0
2 - P2 (CAP Value ID).
This parameter specifies the ID of the CAP value to be displayed or modified.
If Parameter 0 is not entered, entering a value of zero for this parameter
Range:
0 to 0xFFFFFFFF
Default: 0
Output Data:
If no error occurred and the CAP data is being displayed, the following is an example
of the CAP data that will be displayed.
(P1=00) CAP:
Validation Key: FFFFFFFF
HDA Serial Number: Invalid
PCBA Serial Number: Invalid
PCBA Part Number: Invalid
Head Count: 01
Node Name Validation Key: FF
Node Name: FF FF FF FF FF FF FF FF
Product Family ID: FF
Product Family Member ID: 01
PCBA Build Code: Invalid
ASIC Info:
00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF
01: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF
02: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF
03: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF
Firmware Key: FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Firmware Key Checksum: FFFF
Date of Manufacture: 10122002
Destroked Buffer Size: FF
Final Mfg Op: Invalid
Final Mfg Erc: Undefined
System Area Prep State: FF
Checksum: FFFF
Examples:
To display the CAP:
F3 2>I,0
F3 2>I
<-- CAP is displayed by default for the "I" command.
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).
Description:
This command displays and optionally modifies the value of the specified read adaptive
parameter.
Quick Help:
"DisplayModifyRap, I[ParmValue],1,[ParmId],[P3],[P4],[P5],[P6],[UpdateOpts]";
Input Parameters:
0 - P0 (New RAP Value).
If this parameter is entered, the adaptive value specified by command
parameters 1 though 7 will be set equal to the value of this parameter.
If this parameter is not entered, the RAP values specified by command
parameters 1 and 2 will be displayed.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
1 - P1 (RAP Group ID = 1).
This parameter specifies the RAP ID (1).
Type:
Range:
Default: NA
2 - P2 (RAP Value ID).
This parameter specifies the ID of the RAP value to be displayed or modified.
If Parameter 0 is not entered, entering a value of zero for this parameter
will display all of the parameters in the group RAP.
3
4
5
6
=
=
=
=
Register Group
Register Index
not used
not used
3
4
5
6
=
=
=
=
Set
Head
Parameter index
Zone Number
Range:
0 to 0xFFFFFFFF
Default: 0
3 - P3 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered and Parameter 1 is set to display RAP, this
parameter will specifies the heads to display their adaptive value based on
the display mode that is set by Level T O comamnd. With Verbose Formatted
ASCII Output Mode, the adaptive value on all heads will be displayed. With
Formatted ASCII Output Mode, if Parameter3 is not entered only the adaptive
Range:
0 to 0xFFFFFFFF
Default: 0
4 - P4 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
5 - P5 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
6 - P6 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
7 - RAP Update Option.
This parameter is a bit significant value that specifies how the modified
RAP values are to be applied. The bits are defined as follows:
Bits 31-2: not used
Bit 1: Enable Track Format update.
If this bit is equal to 1, the Track Format will be updated based on the
RAP values that were modified. If this bit is equal to 0, the
Range:
0 to 0xFFFFFFFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred and the RAP data is being displayed ...
The following is an example of the RAP Drive Configuration information that will
be displayed.
(P1=01) RAP:
(P2=01) RAP Drive Config:
Format Rev: 0010
Contents Rev: 0D00
Drive Serial Number: Invalid
The following is an example of the RAP Temperature Sensor Configuration information
that will be displayed.
(P1=01) RAP:
(P2=02) RAP Temp Sensor Config:
Thermistor Temp Sensor Offset: 00
Thermistor Temp Sensor Scale: 64
Thermistor Temp Table Elements: 1E
Thermistor Temp Lookup Table:
0
1
2
3
4
5
6
7
Temperature: FFD0 FFDA FFE3 FFEC FFFE 000F 001F 002F
A to D Value: FF91 FF8D FF89 FF86 FF7E FF76 FF6E FF67
8
9
A
B
C
D
E
F
Temperature: 003E 004D 005B 0076 0090 00A9 00D9 0107
A to D Value: FF5F FF57 FF50 FF40 FF31 FF21 FF02 FEE3
10 11
12 13 14 15 16 17
Temperature: 0138 016D 01A9 01CA 01EE 0214 023E 0254
00:
01:
02:
00:
StartCyl
00000000
00002BD1
00005511
00007BF5
NumCyls
002BD1
002940
0026E4
00012C
SpareCyls
000011
000010
00000F
00000E
The following is an example of the RAP Tuned Drive Parameters information that will be
displayed.
(P1=01) RAP:
(P2=04) Tuned Drive Parms:
(P3=00) Reg Group 00:
P4=
0
1
2
3
4
5
6
7
8
9
A
B
C
D
Reg Addr: 0000 0001 0055 0084 0085 0086 008C 008E 0090 0092 0095 0099 009B 009C 00
Reg Data: 0390 000B 01C7 8078 11D2 0092 4100 8A00 0073 0003 0021 01E9 0000 000F 00
P4=
10
11 12 13 14 15 16 17 18 19 1A 1B 1C
1D
Reg Addr: 009F 00A0 00A1 00A3 00A4 00A5 00A6 00A7 00B7 00B8 00BC 00BD 00BE 00BF 00
Reg Data: 0000 2000 0000 0000 38DA 14D1 0048 7880 FA00 1986 0000 1525 00F0 7F00 00
P4=
20
21 22 23 24 25 26 27 28 29 2A 2B 2C
2D
Reg Addr: 00DA 00DC 00DD 00DE 00E0 00E2 00E5 00E9 00EB 00EC 00ED 00EE 00EF 00F0 00
Reg Data: 2100 00D4 0000 0000 6817 0000 0000 0000 0000 0000 0000 0000 0000 001C 00
P4=
30
31 32 33 34 35 36 37 38 39 3A
Reg Addr: 00F3 00F5 00F6 00F7 00F8 00F9 00FA 00FB 00FC 00FD 00FE
Reg Data: 0000 0088 0020 0020 0000 0FFF 0000 0000 0000 0040 0000
(P3=01) Reg Group 01:
P4=
0
1
2
3
4
5
6
7
8
9
A
B
C
D
Reg Addr: 0061 0062 0063 0064 0075 0076 00E4 00E5 00E6 00EA 00EB 00EC 00ED 00EE 00
Reg Data: 204F 0044 2630 0000 0520 0000 F20B 0000 0000 0000 0000 0D07 0000 4020 00
P4=
10
11 12 13 14 15 16 17 18 19
Reg Addr: 00F4 00F5 00F6 00F7 00F8 00F9 00FB 00FD 00FE 00FF
Reg Data: 0004 0002 0024 0000 0000 0000 015A 1847 0000 0400
The following is an example of the RAP Tuned Zone Parameters information that will be
displayed.
(P1=01) RAP:
(P5=00)
(P5=01)
(P5=02)
(P5=80)
P4=
Reg Addr:
User Zone 00:
User Zone 01:
User Zone 02:
System Zone 00:
0
0086
006A
0067
0065
0062
(P5=00)
(P5=01)
(P5=02)
(P5=80)
P4=
Reg Addr:
User Zone 00:
User Zone 01:
User Zone 02:
System Zone 00:
0
0060
E1D3
E1D3
E1D3
E1D3
1
0061
204F
204F
204F
204F
2
0063
2630
262B
2633
262F
The following is an example of the RAP Tuned Head Parameters information that will be
displayed.
(P1=01) RAP:
(P2=06) RAP Tuned Head Parms:
(P3=00) Head 00:
(P4=00) Reg Group 00:
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
0
0089
3DF4
3DF4
3DF4
3DF4
1
008A
3DF4
3DF4
3DF4
3DF4
2
008B
A1EF
A1EF
A1EF
A1EF
3
0093
0804
0804
0804
0804
4
0094
0CB8
0C60
0C20
0BC0
5
0096
0004
0004
0004
0004
6
0098
0500
0500
0500
0500
7
0097
C900
C900
C900
C900
8
0098
0100
0100
0100
0100
00
98
AA
A3
A4
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
10
00B9
4026
4026
4026
4026
11
00BB
0800
0800
0800
0800
12
00C0
0000
0000
0000
0000
13
00C1
0000
0000
0000
0000
14
00C2
0000
0000
0000
0000
15
00C3
0000
0000
0000
0000
16
00C4
2828
2828
2828
2828
17
00C5
2828
2828
2828
2828
18
00C6
2828
2828
2828
2828
00
28
28
28
28
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
20
00CE
7C7C
7C7C
7C7C
7C7C
21
00CF
7C00
7C00
7C00
7C00
22
00D0
0000
0000
0000
0000
23
00D1
0000
0000
0000
0000
24
00D2
0000
0000
0000
0000
25
00D3
0000
0000
0000
0000
26
00D4
0000
0000
0000
0000
The following is an example of the RAP Zone Format Budget Parameters information that
will be displayed.
(P1=01) RAP:
(P2=07) RAP Zone Format Budget Parms:
Format Budget Rev: 01
(P4=00)
(P4=01)
(P4=02)
(P4=03)
(P4=04)
(P4=05)
(P4=06)
(P4=07)
(P4=08)
(P4=09)
(P4=0A)
(P4=0B)
(P4=0C)
(P4=0D)
(P4=0E)
(P4=0F)
(P4=80)
InitialPlo Plo
Isg PreSrvGap PostSrvGap SeqPlo1 SeqPlo
(P3=0) (P3=1) (P3=2) (P3=3)
(P3=4) (P3=5) (P3=6)
User Zone 00:
1C
26
0D
20
04
14
1E
User Zone 01:
1B
25
0C
20
05
13
1D
User Zone 02:
1C
26
0B
20
05
13
1D
User Zone 03:
1D
26
0B
20
05
14
1D
User Zone 04:
1C
26
0B
21
05
13
1D
User Zone 05:
1D
25
0B
21
05
14
1C
User Zone 06:
1C
24
0C
21
05
14
1C
User Zone 07:
1B
24
0C
21
05
13
1C
User Zone 08:
1C
25
0A
21
04
13
1C
User Zone 09:
1D
24
0A
20
04
14
1B
User Zone 0A:
1C
23
0A
20
04
13
1A
User Zone 0B:
1C
23
0A
20
05
13
1A
User Zone 0C:
1C
23
0A
1F
04
13
1A
User Zone 0D:
1B
22
0A
1F
04
13
1A
User Zone 0E:
1B
21
09
1F
04
12
18
User Zone 0F:
1B
20
09
1D
04
12
17
System Zone 00:
1A
20
09
1D
04
11
17
(P4=00)
(P4=01)
(P4=02)
(P4=03)
(P4=04)
(P4=05)
(P4=06)
(P4=07)
(P4=08)
(P4=09)
(P4=0A)
(P4=0B)
(P4=0C)
(P4=0D)
(P4=0E)
(P4=0F)
(P4=80)
The following is an example of the RAP Head Format Budget Parameters information that
will be displayed.
(P1=01) RAP:
(P2=08) RAP Head Format Budget Parms:
Format Budget Rev: 01
(P3=00) Head 00:
(P4=00)
(P4=01)
(P4=02)
(P4=03)
(P4=04)
(P4=05)
User
User
User
User
User
User
Zone
Zone
Zone
Zone
Zone
Zone
00:
01:
02:
03:
04:
05:
SeqSgToWg
0F
10
11
11
12
12
(P4=06)
(P4=07)
(P4=08)
(P4=09)
(P4=0A)
(P4=0B)
(P4=0C)
(P4=0D)
(P4=0E)
(P4=0F)
(P4=80)
12
12
12
12
12
12
12
12
12
11
11
The following is an example of the RAP TCC Temperature Point Parameters information
that will be displayed.
(P1=01) RAP:
(P2=09) RAP TCC Temp Point Parms: 19 37 FFFFFFF6
The following is an example of the RAP TCC Preamp Parameters information that will be
displayed.
(P1=01) RAP:
(P2=0A) RAP TCC Preamp Parms:
(P3=00) Head 00:
(P5=00)
(P5=01)
(P5=02)
(P5=80)
The following is an example of the RAP TCC Preamp Offset Parameters information that
will be displayed.
(P1=01) RAP:
(P2=0B) RAP TCC Preamp Offset Parms:
(P3=00) Set 00:
(P4=00) Head 00:
(P6=00)
(P6=01)
(P6=02)
(P6=80)
WrHtOff
(P5=4)
00
00
00
00
WrHtOff
(P5=4)
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
(P6=00)
(P6=01)
(P6=02)
(P6=80)
WrHtOff
(P5=4)
00
00
00
00
Revision History:
0001.0000
0011.0000
Initial revision.
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).
if RAP_FORMAT_14_REV_2
0012.0000
Changed Gamma values. Added new TCS values.
endif
Display / Modify RAP revision 10 (Level 2, 7 'I,1')
Description:
This command displays and optionally modifies the value of the specified read adaptive
parameter.
Quick Help:
"DisplayModifyRap, I[ParmValue],1,[ParmId],[P3],[P4],[P5],[P6],[UpdateOpts]";
Input Parameters:
0 - P0 (New RAP Value).
If this parameter is entered, the adaptive value specified by command
parameters 1 though 7 will be set equal to the value of this parameter.
If this parameter is not entered, the RAP values specified by command
parameters 1 and 2 will be displayed.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
1 - P1 (RAP Group ID = 1).
Range:
Default: NA
2 - P2 (RAP Value ID).
This parameter specifies the ID of the RAP value to be displayed or modified.
If Parameter 0 is not entered, entering a value of zero for this parameter
will display all of the parameters in the group RAP.
3
4
5
6
=
=
=
=
Register Group
Register Index
not used
not used
3
4
5
6
=
=
=
=
Set
Head
Parameter index
Zone Number
Range:
0 to 0xFFFFFFFF
Default: 0
3 - P3 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered and Parameter 1 is set to display RAP, this
parameter will specifies the heads to display their adaptive value based on
the display mode that is set by Level T O comamnd. With Verbose Formatted
ASCII Output Mode, the adaptive value on all heads will be displayed. With
Formatted ASCII Output Mode, if Parameter3 is not entered only the adaptive
value on the existing heads will be displayed; if Parameter3 is entered only
the adaptive value on the requested head will be displayed. Otherwise this
parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
4 - P4 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
5 - P5 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
6 - P6 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
7 - RAP Update Option.
This parameter is a bit significant value that specifies how the modified
RAP values are to be applied. The bits are defined as follows:
Bits 31-2: not used
Bit 1: Enable Track Format update.
If this bit is equal to 1, the Track Format will be updated based on the
RAP values that were modified. If this bit is equal to 0, the
Track Format will not be modified.
Bit 0: Enable Channel Parameter Reload.
If this bit is equal to 1, the Channel Registers will be updated based
on the RAP values that were modified. If this bit is equal
to 0, the Channel Registers will not be modified.
Type:
Range:
0 to 0xFFFFFFFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred and the RAP data is being displayed ...
The following is an example of the RAP Drive Configuration information that will
be displayed.
(P1=01) RAP:
00:
01:
02:
00:
StartCyl
00000000
00002BD1
00005511
00007BF5
NumCyls
002BD1
002940
0026E4
00012C
SpareCyls
000011
000010
00000F
00000E
The following is an example of the RAP Tuned Drive Parameters information that will be
displayed.
(P1=01) RAP:
(P2=04) Tuned Drive Parms:
(P5=00)
(P5=01)
(P5=02)
(P5=80)
P4=
Reg Addr:
User Zone 00:
User Zone 01:
User Zone 02:
System Zone 00:
0
0086
006A
0067
0065
0062
(P5=00)
(P5=01)
(P5=02)
(P5=80)
P4=
Reg Addr:
User Zone 00:
User Zone 01:
User Zone 02:
System Zone 00:
0
0060
E1D3
E1D3
E1D3
E1D3
1
0061
204F
204F
204F
204F
2
0063
2630
262B
2633
262F
The following is an example of the RAP Tuned Head Parameters information that will be
displayed.
(P1=01) RAP:
(P2=06) RAP Tuned Head Parms:
(P3=00) Head 00:
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
0
0089
3DF4
3DF4
3DF4
3DF4
1
008A
3DF4
3DF4
3DF4
3DF4
2
008B
A1EF
A1EF
A1EF
A1EF
3
0093
0804
0804
0804
0804
4
0094
0CB8
0C60
0C20
0BC0
5
0096
0004
0004
0004
0004
6
0098
0500
0500
0500
0500
7
0097
C900
C900
C900
C900
8
0098
0100
0100
0100
0100
00
98
AA
A3
A4
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
10
00B9
4026
4026
4026
4026
11
00BB
0800
0800
0800
0800
12
00C0
0000
0000
0000
0000
13
00C1
0000
0000
0000
0000
14
00C2
0000
0000
0000
0000
15
00C3
0000
0000
0000
0000
16
00C4
2828
2828
2828
2828
17
00C5
2828
2828
2828
2828
18
00C6
2828
2828
2828
2828
00
28
28
28
28
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
20
00CE
7C7C
7C7C
7C7C
7C7C
21
00CF
7C00
7C00
7C00
7C00
22
00D0
0000
0000
0000
0000
23
00D1
0000
0000
0000
0000
24
00D2
0000
0000
0000
0000
25
00D3
0000
0000
0000
0000
26
00D4
0000
0000
0000
0000
The following is an example of the RAP Zone Format Budget Parameters information that
will be displayed.
(P1=01) RAP:
(P2=07) RAP Zone Format Budget Parms:
Format Budget Rev: 01
(P4=00)
(P4=01)
(P4=02)
(P4=03)
(P4=04)
(P4=05)
(P4=06)
(P4=07)
(P4=08)
(P4=09)
(P4=0A)
(P4=0B)
(P4=0C)
(P4=0D)
(P4=0E)
(P4=0F)
(P4=80)
(P4=00)
(P4=01)
(P4=02)
(P4=03)
(P4=04)
(P4=05)
(P4=06)
InitialPlo Plo
Isg PreSrvGap PostSrvGap SeqPlo1 SeqPlo
(P3=0) (P3=1) (P3=2) (P3=3)
(P3=4) (P3=5) (P3=6)
User Zone 00:
1C
26
0D
20
04
14
1E
User Zone 01:
1B
25
0C
20
05
13
1D
User Zone 02:
1C
26
0B
20
05
13
1D
User Zone 03:
1D
26
0B
20
05
14
1D
User Zone 04:
1C
26
0B
21
05
13
1D
User Zone 05:
1D
25
0B
21
05
14
1C
User Zone 06:
1C
24
0C
21
05
14
1C
User Zone 07:
1B
24
0C
21
05
13
1C
User Zone 08:
1C
25
0A
21
04
13
1C
User Zone 09:
1D
24
0A
20
04
14
1B
User Zone 0A:
1C
23
0A
20
04
13
1A
User Zone 0B:
1C
23
0A
20
05
13
1A
User Zone 0C:
1C
23
0A
1F
04
13
1A
User Zone 0D:
1B
22
0A
1F
04
13
1A
User Zone 0E:
1B
21
09
1F
04
12
18
User Zone 0F:
1B
20
09
1D
04
12
17
System Zone 00:
1A
20
09
1D
04
11
17
User
User
User
User
User
User
User
Zone
Zone
Zone
Zone
Zone
Zone
Zone
00:
01:
02:
03:
04:
05:
06:
(P4=07)
(P4=08)
(P4=09)
(P4=0A)
(P4=0B)
(P4=0C)
(P4=0D)
(P4=0E)
(P4=0F)
(P4=80)
02
02
02
02
02
02
02
02
02
02
12
11
11
11
11
11
10
10
10
10
17
16
16
15
15
15
14
13
12
12
08
08
08
08
08
08
07
07
07
06
33
33
34
33
33
33
32
32
32
31
32
32
32
31
2F
2F
2E
2D
2A
2A
The following is an example of the RAP Head Format Budget Parameters information that
will be displayed.
(P1=01) RAP:
(P2=08) RAP Head Format Budget Parms:
Format Budget Rev: 01
(P3=00) Head 00:
(P4=00)
(P4=01)
(P4=02)
(P4=03)
(P4=04)
(P4=05)
(P4=06)
(P4=07)
(P4=08)
(P4=09)
(P4=0A)
(P4=0B)
(P4=0C)
(P4=0D)
(P4=0E)
(P4=0F)
(P4=80)
SeqSgToWg
0F
10
11
11
12
12
12
12
12
12
12
12
12
12
12
11
11
The following is an example of the RAP TCC Temperature Point Parameters information
that will be displayed.
(P1=01) RAP:
(P2=09) RAP TCC Temp Point Parms: 19 37 FFFFFFF6
The following is an example of the RAP TCC Preamp Parameters information that will be
displayed.
(P1=01) RAP:
(P2=0A) RAP TCC Preamp Parms:
(P3=00) Head 00:
0F
0F
0F
08
08
08
0E
0E
0E
The following is an example of the RAP TCC Preamp Offset Parameters information that
will be displayed.
(P1=01) RAP:
(P2=0B) RAP TCC Preamp Offset Parms:
(P3=00) Set 00:
(P4=00) Head 00:
(P6=00)
(P6=01)
(P6=02)
(P6=80)
(P6=00)
(P6=01)
(P6=02)
(P6=80)
(P6=00)
(P6=01)
(P6=02)
(P6=80)
Revision History:
0001.0000
0011.0000
Initial revision.
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).
if RAP_FORMAT_14_REV_2
0012.0000
Changed Gamma values. Added new TCS values.
endif
Display / Modify RAP revision 11 (Level 2, 7 'I,1')
Description:
This command displays and optionally modifies the value of the specified read adaptive
parameter.
Quick Help:
"DisplayModifyRap, I[ParmValue],1,[ParmId],[P3],[P4],[P5],[P6],[UpdateOpts]";
Input Parameters:
0 - P0 (New RAP Value).
If this parameter is entered, the adaptive value specified by command
parameters 1 though 7 will be set equal to the value of this parameter.
If this parameter is not entered, the RAP values specified by command
parameters 1 and 2 will be displayed.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
1 - P1 (RAP Group ID = 1).
This parameter specifies the RAP ID (1).
Type:
Range:
Default: NA
2 - P2 (RAP Value ID).
This parameter specifies the ID of the RAP value to be displayed or modified.
If Parameter 0 is not entered, entering a value of zero for this parameter
will display all of the parameters in the group RAP.
3
4
5
6
=
=
=
=
Register Group
Register Index
not used
not used
3
4
5
6
=
=
=
=
Set
Head
Parameter index
Zone Number
Range:
0 to 0xFFFFFFFF
Default: 0
3 - P3 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered and Parameter 1 is set to display RAP, this
parameter will specifies the heads to display their adaptive value based on
the display mode that is set by Level T O comamnd. With Verbose Formatted
ASCII Output Mode, the adaptive value on all heads will be displayed. With
Formatted ASCII Output Mode, if Parameter3 is not entered only the adaptive
value on the existing heads will be displayed; if Parameter3 is entered only
the adaptive value on the requested head will be displayed. Otherwise this
parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
4 - P4 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
5 - P5 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
6 - P6 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
7 - RAP Update Option.
This parameter is a bit significant value that specifies how the modified
RAP values are to be applied. The bits are defined as follows:
Bits 31-2: not used
Bit 1: Enable Track Format update.
If this bit is equal to 1, the Track Format will be updated based on the
RAP values that were modified. If this bit is equal to 0, the
Track Format will not be modified.
Bit 0: Enable Channel Parameter Reload.
Range:
0 to 0xFFFFFFFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred and the RAP data is being displayed ...
The following is an example of the RAP Drive Configuration information that will
be displayed.
(P1=01) RAP:
(P2=01) RAP Drive Config:
Format Rev: 0010
Contents Rev: 0D00
Drive Serial Number: Invalid
RAP Heads: 0001
RAP User Zones: 0010
RAP System Zones: 0001
Tracks/zone:
Alts/volume:
Sec/track:
Total Cyls:
The following is an example of the RAP Temperature Sensor Configuration information
that will be displayed.
(P1=01) RAP:
(P2=02) RAP Temp Sensor Config:
Thermistor Temp Sensor Offset: 00
Thermistor Temp Sensor Scale: 64
Thermistor Temp Table Elements: 1E
Thermistor Temp Lookup Table:
0
1
2
3
4
5
6
7
Temperature: FFD0 FFDA FFE3 FFEC FFFE 000F 001F 002F
A to D Value: FF91 FF8D FF89 FF86 FF7E FF76 FF6E FF67
E
F
8
9
A
B
C
D
Temperature: 003E 004D 005B 0076 0090 00A9 00D9 0107
Zone
Zone
Zone
Zone
Zone
Zone
Zone
Zone
Zone
00:
01:
02:
03:
04:
05:
06:
07:
08:
Minizones
127
127
12E
A1
8A
A5
CC
103
9B
The following is an example of the RAP Tuned Drive Parameters information that will be
displayed.
(P1=01) RAP:
(P2=04) Tuned Drive Parms:
(P3=00) Reg Group 00:
P4=
0
1
2
3
4
5
6
7
8
9
A
B
C
D
Reg Addr: 0000 0001 0055 0084 0085 0086 008C 008E 0090 0092 0095 0099 009B 009C 00
Reg Data: 0390 000B 01C7 8078 11D2 0092 4100 8A00 0073 0003 0021 01E9 0000 000F 00
P4=
10
11 12 13 14 15 16 17 18 19 1A 1B 1C
1D
Reg Addr: 009F 00A0 00A1 00A3 00A4 00A5 00A6 00A7 00B7 00B8 00BC 00BD 00BE 00BF 00
Reg Data: 0000 2000 0000 0000 38DA 14D1 0048 7880 FA00 1986 0000 1525 00F0 7F00 00
P4=
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
Reg Addr: 00DA 00DC 00DD 00DE 00E0 00E2 00E5 00E9 00EB 00EC 00ED 00EE 00EF 00F0 00
Reg Data: 2100 00D4 0000 0000 6817 0000 0000 0000 0000 0000 0000 0000 0000 001C 00
P4=
30
31 32 33 34 35 36 37 38 39 3A
Reg Addr: 00F3 00F5 00F6 00F7 00F8 00F9 00FA 00FB 00FC 00FD 00FE
Reg Data: 0000 0088 0020 0020 0000 0FFF 0000 0000 0000 0040 0000
(P3=01) Reg Group 01:
P4=
0
1
2
3
4
5
6
7
8
9
A
B
C
D
Reg Addr: 0061 0062 0063 0064 0075 0076 00E4 00E5 00E6 00EA 00EB 00EC 00ED 00EE 00
Reg Data: 204F 0044 2630 0000 0520 0000 F20B 0000 0000 0000 0000 0D07 0000 4020 00
P4=
10
11 12 13 14 15 16 17 18 19
Reg Addr: 00F4 00F5 00F6 00F7 00F8 00F9 00FB 00FD 00FE 00FF
Reg Data: 0004 0002 0024 0000 0000 0000 015A 1847 0000 0400
The following is an example of the RAP Tuned Head Parameters information that will be
displayed.
(P1=01) RAP:
(P2=06) RAP Tuned Head/Zone Parms:
(P3=00) Head 00:
(P4=00) Reg Group 00:
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
0
0089
3DF4
3DF4
3DF4
3DF4
1
008A
3DF4
3DF4
3DF4
3DF4
2
008B
A1EF
A1EF
A1EF
A1EF
3
0093
0804
0804
0804
0804
4
0094
0CB8
0C60
0C20
0BC0
5
0096
0004
0004
0004
0004
6
0098
0500
0500
0500
0500
7
0097
C900
C900
C900
C900
8
0098
0100
0100
0100
0100
00
98
AA
A3
A4
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
10
00B9
4026
4026
4026
4026
11
00BB
0800
0800
0800
0800
12
00C0
0000
0000
0000
0000
13
00C1
0000
0000
0000
0000
14
00C2
0000
0000
0000
0000
15
00C3
0000
0000
0000
0000
16
00C4
2828
2828
2828
2828
17
00C5
2828
2828
2828
2828
18
00C6
2828
2828
2828
2828
00
28
28
28
28
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
20
00CE
7C7C
7C7C
7C7C
7C7C
21
00CF
7C00
7C00
7C00
7C00
22
00D0
0000
0000
0000
0000
23
00D1
0000
0000
0000
0000
24
00D2
0000
0000
0000
0000
25
00D3
0000
0000
0000
0000
26
00D4
0000
0000
0000
0000
The following is an example of the RAP Zone Format Budget Parameters information that
will be displayed.
(P1=01) RAP:
(P2=07) RAP Zone Format Budget Parms:
Format Budget Rev: 01
InitialPlo Plo
Isg PreSrvGap PostSrvGap SeqPlo1 SeqPlo
(P3=0) (P3=1) (P3=2) (P3=3)
(P3=4) (P3=5) (P3=6)
1C
26
0D
20
04
14
1E
(P4=01)
(P4=02)
(P4=03)
(P4=04)
(P4=05)
(P4=06)
(P4=07)
(P4=08)
(P4=09)
(P4=0A)
(P4=0B)
(P4=0C)
(P4=0D)
(P4=0E)
(P4=0F)
(P4=80)
1B
1C
1D
1C
1D
1C
1B
1C
1D
1C
1C
1C
1B
1B
1B
1A
25
26
26
26
25
24
24
25
24
23
23
23
22
21
20
20
0C
0B
0B
0B
0B
0C
0C
0A
0A
0A
0A
0A
0A
09
09
09
20
20
20
21
21
21
21
21
20
20
20
1F
1F
1F
1D
1D
05
05
05
05
05
05
05
04
04
04
05
04
04
04
04
04
13
13
14
13
14
14
13
13
14
13
13
13
13
12
12
11
(P4=00)
(P4=01)
(P4=02)
(P4=03)
(P4=04)
(P4=05)
(P4=06)
(P4=07)
(P4=08)
(P4=09)
(P4=0A)
(P4=0B)
(P4=0C)
(P4=0D)
(P4=0E)
(P4=0F)
(P4=80)
The following is an example of the RAP TCC Temperature Point Parameters information
that will be displayed.
(P1=01) RAP:
(P2=09) RAP TCC Temp Point Parms: 19 37 FFFFFFF6
The following is an example of the RAP Preamp Parameters information that will be
displayed.
(P1=01) RAP:
(P2=0A) RAP Tuned Preamp Parms:
(P3=00) Head 00:
(P5=00)
(P5=01)
(P5=02)
(P5=80)
1D
1D
1D
1D
1C
1C
1C
1C
1B
1A
1A
1A
1A
18
17
17
The following is an example of the RAP TCC Preamp Offset Parameters information that
will be displayed.
(P1=01) RAP:
(P2=0B) RAP TCC Preamp Offset Parms:
(P3=00) Set 00:
(P4=00) Head 00:
(P6=00)
(P6=01)
(P6=02)
(P6=80)
(P6=00)
(P6=01)
(P6=02)
(P6=80)
(P6=00)
(P6=01)
(P6=02)
(P6=80)
The following is an example of the RAP AFH drive parameters information that will be
displayed.
(P1=01) RAP:
(P2=0D) RAP AFH Drive Parms:
C1 (P3=x)
+0.000000E-0
C2
+0.000000E-0
C3
+0.000000E-0
C4
+0.000000E-0
C5
+0.000000E-0
C6
+0.00000
C8
+0.000000E-0
C9
+0.000000E-0
C10
+0.000000E-0
C11
+0.000000E-0
C12
+0.000000E-0
C13
+0.00000
C15
C16
C17
C18
C19
C20
+0.000000E-0
+0.000000E-0
+0.000000E-0
+0.000000E-0
+0.000000E-0
+0.00000
RC1
+0.000000E-0
RC2
+0.000000E-0
RC3
+0.000000E-0
RC4
+0.000000E-0
RC5
+0.000000E-0
RC6
+0.00000
WC1
+0.000000E-0
WC2
+0.000000E-0
WC3
+0.000000E-0
WC4
+0.000000E-0
WC5
+0.000000E-0
WC6
+0.00000
WC8
+0.000000E-0
WC9
+0.000000E-0
WC10
+0.000000E-0
TC1 (P4=x)
+0.000016E-3
+0.000016E-3
TC2
+0.000000E-0
+0.000000E-0
The following is an example of the RAP AFH head/zone parameters information that will be
displayed:
(P1=01) RAP:
(P2=0F) RAP AFH Head Zone Parms:
Heater DAC
(P3=00) Head 00:
(P5=00)
(P5=01)
(P5=02)
(P5=80)
WrPreHt
(P4=0)
User Zone 00:
20
User Zone 01:
20
User Zone 02:
28
System Zone 00:
28
WrHt
RdHt
(P4=1) (P4=2)
1E
1F
1E
1F
26
27
26
27
Clearance
(P3=00) Head 00:
(P5=00)
(P5=01)
(P5=02)
(P5=80)
W+HtClr
(P4=3)
User Zone 00:
20
User Zone 01:
20
User Zone 02:
28
System Zone 00:
28
SWD
(P3=00) Head 00:
(P5=00) User Zone 00:
SWDAvg
(P4=9)
20
SWDDelta SWDFilt
(P4=A) (P4=B)
1E
1F
TargRdClr
(P4=7)
1E
1E
26
26
TargMai
(P4=8)
1F
1F
27
27
20
28
28
1E
26
26
1F
27
27
The following is an example of the RAP Drive Configuration information that will
be displayed.
(P1=01) RAP:
(P2=11) RAP VBAR Config:
Nominal Serpent Width: 32
Head
Head
Head
Head
Head
Head
Head
Head
0
1
2
3
4
5
6
7
The following is an example of the RAP Tuned Head Parameters information that will be
displayed.
(P1=01) RAP:
(P2=12) RAP Channel Parms Info:
Idx
Tbl [Drive=0; Zone=1] Offset
(P3=xx)
(P4=xx)
(P5=xx)
0
0
0
1
0
2
2
1
0
3
1
3
Revision History:
0001.0000
0011.0000
Initial revision.
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).
if RAP_FORMAT_14_REV_2
0012.0000
Changed Gamma values. Added new TCS values.
endif
Description:
This command displays and optionally modifies the value of the specified read adaptive
parameter.
Quick Help:
"DisplayModifyRap, I[ParmValue],1,[ParmId],[P3],[P4],[P5],[P6],[UpdateOpts]";
Input Parameters:
0 - P0 (New RAP Value).
If this parameter is entered, the adaptive value specified by command
parameters 1 though 7 will be set equal to the value of this parameter.
If this parameter is not entered, the RAP values specified by command
parameters 1 and 2 will be displayed.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
1 - P1 (RAP Group ID = 1).
This parameter specifies the RAP ID (1).
Type:
Range:
Default: NA
2 - P2 (RAP Value ID).
This parameter specifies the ID of the RAP value to be displayed or modified.
If Parameter 0 is not entered, entering a value of zero for this parameter
will display all of the parameters in the group RAP.
3
4
5
6
=
=
=
=
Register Group
Register Index
not used
not used
Parameter 3 = Head
Parameter 4 = AFH head/zone parameter index
Parameter 5 = Zone Number
0x00 = User Zone 0
0x01 = User Zone 1
.
.
.
0x80 = System Zone
Parameter 6 = not used
0x10 = Shared registers
Parameter
Parameter
Parameter
Parameter
3
4
5
6
=
=
=
=
Set
Head
Parameter index
Zone Number
Range:
0 to 0xFFFFFFFF
Default: 0
3 - P3 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered and Parameter 1 is set to display RAP, this
parameter will specifies the heads to display their adaptive value based on
the display mode that is set by Level T O comamnd. With Verbose Formatted
ASCII Output Mode, the adaptive value on all heads will be displayed. With
Formatted ASCII Output Mode, if Parameter3 is not entered only the adaptive
value on the existing heads will be displayed; if Parameter3 is entered only
the adaptive value on the requested head will be displayed. Otherwise this
parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
4 - P4 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
5 - P5 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
6 - P6 (select value to be modified).
If Parameter 0 is entered, this parameter is used to select the value to be
modified. The definition of this parameter depends on the value entered for
Parameter 2. See the Parameter 2 description for more information.
If Parameter 0 is not entered, this parameter is not used.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
7 - RAP Update Option.
This parameter is a bit significant value that specifies how the modified
RAP values are to be applied. The bits are defined as follows:
Bits 31-2: not used
Bit 1: Enable Track Format update.
If this bit is equal to 1, the Track Format will be updated based on the
RAP values that were modified. If this bit is equal to 0, the
Track Format will not be modified.
Bit 0: Enable Channel Parameter Reload.
Range:
0 to 0xFFFFFFFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred and the RAP data is being displayed ...
The following is an example of the RAP Drive Configuration information that will
be displayed.
(P1=01) RAP:
(P2=01) RAP Drive Config:
Format Rev: 0010
Contents Rev: 0D00
Drive Serial Number: Invalid
RAP Heads: 0001
RAP User Zones: 0010
RAP System Zones: 0001
Tracks/zone:
Alts/volume:
Sec/track:
Total Cyls:
The following is an example of the RAP Temperature Sensor Configuration information
that will be displayed.
(P1=01) RAP:
(P2=02) RAP Temp Sensor Config:
Thermistor Temp Sensor Offset: 00
Thermistor Temp Sensor Scale: 64
Thermistor Temp Table Elements: 1E
Thermistor Temp Lookup Table:
0
1
2
3
4
5
6
7
Temperature: FFD0 FFDA FFE3 FFEC FFFE 000F 001F 002F
A to D Value: FF91 FF8D FF89 FF86 FF7E FF76 FF6E FF67
E
F
8
9
A
B
C
D
Temperature: 003E 004D 005B 0076 0090 00A9 00D9 0107
A to D Value: FF5F FF57 FF50 FF40 FF31 FF21 FF02 FEE3
10 11
12 13 14 15 16 17
Temperature: 0138 016D 01A9 01CA 01EE 0214 023E 0254
A to D Value: FEC5 FEA6 FE87 FE77 FE68 FE58 FE49 FE41
18 19
1A 1B 1C 1D
Temperature: 026B 0283 029C 02B6 02D2 02EE
A to D Value: FE3A FE32 FE2A FE22 FE1B FE13
The following is an example of the RAP Zone Configuration information that will be
displayed.
(P1=01) RAP:
(P2=03) RAP VBAR Zone Config:
If firmware supports ID System Partition Location:
NominalFirstSysTrack: 0002448A
NumSysTracks: 0000012C
SysSpareTracksPerHd: 0F
ActiveSerpentsPerZoneGroup: 00
If firmware supports MD System Partition Location (or a location enveloped
by the User Partition):
SysStartMinizoneIndex: 02D6
SysNumMinizones: 0002
LBAsPerSysZoneCopy: 000132EA
ActiveSerpentsPerZoneGroup: 00
Head 0
User
User
User
User
User
User
User
User
User
Zone
Zone
Zone
Zone
Zone
Zone
Zone
Zone
Zone
00:
01:
02:
03:
04:
05:
06:
07:
08:
Minizones
127
127
12E
A1
8A
A5
CC
103
9B
The following is an example of the RAP Tuned Drive Parameters information that will be
displayed.
(P1=01) RAP:
(P2=04) Tuned Drive Parms:
(P3=00) Reg Group 00:
P4=
0
1
2
3
4
5
6
7
8
9
A
B
C
D
Reg Addr: 0000 0001 0055 0084 0085 0086 008C 008E 0090 0092 0095 0099 009B 009C 00
Reg Data: 0390 000B 01C7 8078 11D2 0092 4100 8A00 0073 0003 0021 01E9 0000 000F 00
P4=
10
11 12 13 14 15 16 17 18 19 1A 1B 1C
1D
Reg Addr: 009F 00A0 00A1 00A3 00A4 00A5 00A6 00A7 00B7 00B8 00BC 00BD 00BE 00BF 00
Reg Data: 0000 2000 0000 0000 38DA 14D1 0048 7880 FA00 1986 0000 1525 00F0 7F00 00
P4=
20
21 22 23 24 25 26 27 28 29 2A 2B 2C
2D
Reg Addr: 00DA 00DC 00DD 00DE 00E0 00E2 00E5 00E9 00EB 00EC 00ED 00EE 00EF 00F0 00
Reg Data: 2100 00D4 0000 0000 6817 0000 0000 0000 0000 0000 0000 0000 0000 001C 00
P4=
30
31 32 33 34 35 36 37 38 39 3A
Reg Addr: 00F3 00F5 00F6 00F7 00F8 00F9 00FA 00FB 00FC 00FD 00FE
Reg Data: 0000 0088 0020 0020 0000 0FFF 0000 0000 0000 0040 0000
(P3=01) Reg Group 01:
P4=
0
1
2
3
4
5
6
7
8
9
A
B
C
D
Reg Addr: 0061 0062 0063 0064 0075 0076 00E4 00E5 00E6 00EA 00EB 00EC 00ED 00EE 00
Reg Data: 204F 0044 2630 0000 0520 0000 F20B 0000 0000 0000 0000 0D07 0000 4020 00
P4=
10
11 12 13 14 15 16 17 18 19
Reg Addr: 00F4 00F5 00F6 00F7 00F8 00F9 00FB 00FD 00FE 00FF
Reg Data: 0004 0002 0024 0000 0000 0000 015A 1847 0000 0400
The following is an example of the RAP Tuned Head Parameters information that will be
displayed.
(P1=01) RAP:
(P2=06) RAP Tuned Head/Zone Parms:
(P3=00) Head 00:
(P4=00) Reg Group 00:
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
0
0089
3DF4
3DF4
3DF4
3DF4
1
008A
3DF4
3DF4
3DF4
3DF4
2
008B
A1EF
A1EF
A1EF
A1EF
3
0093
0804
0804
0804
0804
4
0094
0CB8
0C60
0C20
0BC0
5
0096
0004
0004
0004
0004
6
0098
0500
0500
0500
0500
7
0097
C900
C900
C900
C900
8
0098
0100
0100
0100
0100
00
98
AA
A3
A4
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
10
00B9
4026
4026
4026
4026
11
00BB
0800
0800
0800
0800
12
00C0
0000
0000
0000
0000
13
00C1
0000
0000
0000
0000
14
00C2
0000
0000
0000
0000
15
00C3
0000
0000
0000
0000
16
00C4
2828
2828
2828
2828
17
00C5
2828
2828
2828
2828
18
00C6
2828
2828
2828
2828
00
28
28
28
28
(P6=00)
(P6=01)
(P6=02)
(P6=80)
P5=
Reg Addr:
User Zone 00 Reg Data:
User Zone 01 Reg Data:
User Zone 02 Reg Data:
System Zone 00 Reg Data:
20
00CE
7C7C
7C7C
7C7C
7C7C
21
00CF
7C00
7C00
7C00
7C00
22
00D0
0000
0000
0000
0000
23
00D1
0000
0000
0000
0000
24
00D2
0000
0000
0000
0000
25
00D3
0000
0000
0000
0000
26
00D4
0000
0000
0000
0000
The following is an example of the RAP Zone Format Budget Parameters information that
will be displayed.
(P1=01) RAP:
(P2=07) RAP Zone Format Budget Parms:
Format Budget Rev: 01
InitialPlo Plo
Isg PreSrvGap PostSrvGap SeqPlo1 SeqPlo
(P3=0) (P3=1) (P3=2) (P3=3)
(P3=4) (P3=5) (P3=6)
1C
26
0D
20
04
14
1E
1B
25
0C
20
05
13
1D
(P4=02)
(P4=03)
(P4=04)
(P4=05)
(P4=06)
(P4=07)
(P4=08)
(P4=09)
(P4=0A)
(P4=0B)
(P4=0C)
(P4=0D)
(P4=0E)
(P4=0F)
(P4=80)
1C
1D
1C
1D
1C
1B
1C
1D
1C
1C
1C
1B
1B
1B
1A
26
26
26
25
24
24
25
24
23
23
23
22
21
20
20
0B
0B
0B
0B
0C
0C
0A
0A
0A
0A
0A
0A
09
09
09
20
20
21
21
21
21
21
20
20
20
1F
1F
1F
1D
1D
05
05
05
05
05
05
04
04
04
05
04
04
04
04
04
13
14
13
14
14
13
13
14
13
13
13
13
12
12
11
(P4=00)
(P4=01)
(P4=02)
(P4=03)
(P4=04)
(P4=05)
(P4=06)
(P4=07)
(P4=08)
(P4=09)
(P4=0A)
(P4=0B)
(P4=0C)
(P4=0D)
(P4=0E)
(P4=0F)
(P4=80)
The following is an example of the RAP TCC Temperature Point Parameters information
that will be displayed.
(P1=01) RAP:
(P2=09) RAP TCC Temp Point Parms: 19 37 FFFFFFF6
The following is an example of the RAP Preamp Parameters information that will be
displayed.
(P1=01) RAP:
(P2=0A) RAP Tuned Preamp Parms:
(P3=00) Head 00:
(P5=00)
(P5=01)
(P5=02)
(P5=80)
The following is an example of the RAP TCC Preamp Offset Parameters information that
1D
1D
1D
1C
1C
1C
1C
1B
1A
1A
1A
1A
18
17
17
will be displayed.
(P1=01) RAP:
(P2=0B) RAP TCC Preamp Offset Parms:
(P3=00) Set 00:
(P4=00) Head 00:
(P6=00)
(P6=01)
(P6=02)
(P6=80)
(P6=00)
(P6=01)
(P6=02)
(P6=80)
(P6=00)
(P6=01)
(P6=02)
(P6=80)
The following is an example of the RAP AFH drive parameters information that will be
displayed.
(P1=01) RAP:
(P2=0D) RAP AFH Drive Parms:
C1 (P3=x)
+0.000000E-0
C2
+0.000000E-0
C3
+0.000000E-0
C4
+0.000000E-0
C5
+0.000000E-0
C6
+0.00000
C8
+0.000000E-0
C9
+0.000000E-0
C10
+0.000000E-0
C11
+0.000000E-0
C12
+0.000000E-0
C13
+0.00000
C15
+0.000000E-0
C16
+0.000000E-0
C17
+0.000000E-0
C18
+0.000000E-0
C19
+0.000000E-0
C20
+0.00000
RC1
+0.000000E-0
RC2
+0.000000E-0
RC3
+0.000000E-0
RC4
+0.000000E-0
RC5
+0.000000E-0
RC6
+0.00000
WC1
+0.000000E-0
WC2
+0.000000E-0
WC3
+0.000000E-0
WC4
+0.000000E-0
WC5
+0.000000E-0
WC6
+0.00000
WC8
+0.000000E-0
WC9
+0.000000E-0
WC10
+0.000000E-0
TC1 (P4=x)
+0.000016E-3
+0.000016E-3
TC2
+0.000000E-0
+0.000000E-0
The following is an example of the RAP AFH head/zone parameters information that will be
displayed:
(P1=01) RAP:
(P2=0F) RAP AFH Head Zone Parms:
Heater DAC
(P3=00) Head 00:
(P5=00)
(P5=01)
(P5=02)
(P5=80)
WrPreHt
(P4=0)
User Zone 00:
20
User Zone 01:
20
User Zone 02:
28
System Zone 00:
28
WrHt
RdHt
(P4=1) (P4=2)
1E
1F
1E
1F
26
27
26
27
Clearance
(P3=00) Head 00:
(P5=00)
(P5=01)
(P5=02)
(P5=80)
W+HtClr
(P4=3)
User Zone 00:
20
User Zone 01:
20
User Zone 02:
28
System Zone 00:
28
SWD
(P3=00) Head 00:
(P5=00) User Zone 00:
(P5=01) User Zone 01:
SWDAvg
(P4=9)
20
20
SWDDelta
(P4=A)
1E
1E
SWDFilt
(P4=B)
1F
1F
TargRdClr
(P4=7)
1E
1E
26
26
TargMai
(P4=8)
1F
1F
27
27
28
28
26
26
27
27
The following is an example of the RAP Drive Configuration information that will
be displayed.
(P1=01) RAP:
(P2=11) RAP VBAR Config:
Nominal Serpent Width: 32
Head
Head
Head
Head
Head
Head
Head
Head
0
1
2
3
4
5
6
7
The following is an example of the RAP Channel Parameters information that will be
displayed.
(P1=01) RAP:
(P2=12) RAP Channel Parms Info:
Idx
Tbl [Drive=0; Zone=1] Offset
(P3=xx)
(P4=xx)
(P5=xx)
0
0
0
1
0
2
2
1
0
3
1
3
Revision History:
0001.0000
0011.0000
Initial revision.
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).
if RAP_FORMAT_14_REV_2
0012.0000
Changed Gamma values. Added new TCS values.
endif
Description:
This command displays and optionally modifies the specified value of the Read/Write
Working Parameters.
Quick Help:
"DisplayModifyRwWorkingParms, I[ParmValue],3,[ParmId],[P3],[P4],,,[P7]";
Input Parameters:
0 - P0 (New RW Working Parameter Value).
If this parameter is entered, the adaptive value specified by command
parameters 3 through 5 will be set equal to the value of this parameter.
Type:
Range:
0 to 0xFFFFFFFF
Default: None.
1 - P1 (RW Working Parameter Group ID = 3).
This parameter specifies the Group ID of the RW Working Parameters, which is 3.
Type:
Range:
Default: None.
2 - P2 (Head).
This parameter specifies the head. If no head is specified, all heads' data are
displayed.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
3 - P3 (RW Working Parameter Subgroup ID).
This parameter specifies the RW Working Parameters Subgroup ID.
valid values for the Subgroup ID:
0x00:
0x01:
0x02:
0x03:
0x04:
0x05:
0x06:
0x07:
0x08:
WRITE_CURRENT_OFS
WRITE_DAMPING_OFS
WRITE_DAMPING_DUR_OFS
TWEAK_TEMP_OFS
WRITE_PREHEAT_OFS
WRITE_HEAT_OFS
READ_HEAT_OFS
MAINTENANCE_HEAT_OFS
RANGE_BITS_OFS
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
4 - P4 (Zone).
This parameter specifies the zone.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
Output Data:
(P1=03) RW Working:
(P2=00) Head 00:
(P4=00)
(P4=01)
.
.
.
(P4=0F)
(P4=10)
(P4=80)
WrkIW
WrkIWDamp
(P3=00) (P3=01)
User Zone 00:
07
02
User Zone 01:
07
02
.
.
.
.
.
.
User Zone 0F:
07
02
User Zone 10:
07
02
System Zone 00: 07
02
(P4=00)
(P4=01)
.
.
.
(P4=0F)
(P4=10)
(P4=80)
WrkPreHt
(P3=04)
User Zone 00:
2D
User Zone 01:
31
.
.
.
User Zone 0F:
29
User Zone 10:
29
System Zone 00: 29
WrkIWDur
(P3=02)
05
05
.
.
.
05
05
05
WrkWriteHt WrkReadHt
(P3=05)
(P3=06)
26
1A
2A
1E
.
.
.
.
.
.
22
14
22
14
23
14
WrkTweakTemp
(P3=03)
1A
1A
.
.
.
1A
1A
1A
WrkMaintHt
(P3=07)
29
31
.
.
.
29
29
1E
WrkHtRange
00
00
.
.
.
00
00
00
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays the values of the specified servo adaptive parameters.
Quick Help:
"DisplayModifySap, I[ParmValue],2,[ParmId],[P3],[P4],[P5]";
Input Parameters:
0 - New SAP Value.
If this parameter is entered, the adaptive value specified by command
parameters 3 through 5 will be set equal to the value of this parameter.
Type:
Range:
0 to 0xFFFFFFFF
Default: None.
1 - SAP Group ID.
This parameter specifies the Group ID of the SAP, which is 2.
Type:
Range:
Default: None.
2 - SAP Subgroup ID.
This parameter specifies the ID of the SAP value to be displayed or modified.
If Parameter 0 is not entered, entering a value of zero for this parameter
will display all of the parameters in the SAP. The following SAP parameters are
supported:
0x00: RAW_HEX_SUBGROUP_ID - Raw Hex dump of the entire SAP
0x01: ALL_SAP_SUBGROUPS_SUBGROUP_ID - All SAP Subgroups ID
0x02: MAX_HEAD_SUBGROUP_ID - Max Head (maximum head supported by servo)
0x03: MR_BIAS_SUBGROUP_ID - MR Bias Table (table of MR bias values)
0x04: MAX_MR_BIAS_SUBGROUP_ID - Max MR Bias Table (table of Max MR bias values)
0x05: BIAS_TABLE_SUBGROUP_ID - Bias Table (table of Flex Bias values)
0x06: BIAS_HYST_TABLE_SUBGROUP_ID - Bias Hysteresis Table (table of Bias Hysteresis value
0xFF: SAP_TOC_SUBGROUP_ID - Table of Contents (all subgroups currently supported by this
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
3 - Parameter 3.
This parameter's meaning depends on the SAP Subgroup ID (P2). The information about
it's meaning is available in the display of the SAP data.
Type:
Range:
0 to 0xFFFFFFFF
Default: None.
4 - Parameter 4.
This parameter's meaning depends on the SAP Subgroup ID (P2). The information about
it's meaning is available in the display of the SAP data.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
5 - Parameter 5.
This parameter's meaning depends on the SAP Subgroup ID (P2). The information about
it's meaning is available in the display of the SAP data.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, then the output of this command will be displayed as follows:
If the option to display a raw hex dump of the SAP was selected, then the following
will be displayed:
Addr 0000: xx xx xx
Addr 0010: xx xx xx
Addr 0020: xx xx xx
......
where xx is the SAP
xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx
data at the specified index position
If the option to display the Display/Modify SAP Table Of Contents was selected, then the
following will be displayed:
(P2=00)
(P2=01)
(P2=02)
(P2=03)
SAP:
SAP:
SAP:
SAP:
(P2=04)
(P2=05)
(P2=06)
(P2=FF)
SAP:
SAP:
SAP:
SAP:
If the option to display servo's Max Head SAP value is selected, then the following is
displayed:
(P2=ss) Max Head: hh
where:
ss = Subgroup ID
hh = Max Head
If the option to display the entire MR Bias table is selected, then the following is
displayed:
(P2=ss) MR Bias:
where:
ss = Subgroup ID
x = Max Head supported by servo
aabb = MR Bias value (including register address)
If the option to display a single MR Bias value is selected, then the following is displayed:
(P2=ss) MR Bias:
(P3=h)
aabb
where:
ss = Subgroup ID
h = Head
aabb = MR Bias value (including register address)
If the option to display the entire Max MR Bias table is selected, then the following is
displayed:
(P2=ss) Max MR Bias:
where:
ss = Subgroup ID
m = Max Head supported by servo
aaaa = Max MR Bias value
If the option to display a single Max MR Bias value is selected, then the following is
displayed:
(P2=ss) Max MR Bias:
(P3=h)
aaaa
where:
ss = Subgroup ID
h = Head
aaaa = Max MR Bias value
If the option to display servo's Flex Bias Table was selected, then the following will be
displayed for each of the requested table entries.
Bias Value
bbbb
(P3=aaaa)
where:
aaaa = is the Offset from the start of the Bias Table
bbbb = is the Bias value at that table location.
If the option to display servo's Bias Hysteresis Table was selected, then the following
will be displayed for each of the requested table entries.
Bias Hysteresis Value
bbbb
(P3=aaaa)
where:
aaaa = is the Offset from the start of the Bias Hysteresis Table
bbbb = is the Bias Hysteresis value at that table location.
Examples:
Example #1:
To display a raw hex dump of the SAP:
F3 2>I,2
F3 2>I,2,0
Example #2:
To display the SAP Table of Contents:
F3 2>I,2,FF
Example #3:
To display all of the supported SAP subgroups in a humanized format:
F3 2>I,2,1
Example #4:
To display any supported SAP subgroup in a humanized format:
F3 2>I,2,s
where 's' is a supported SAP subgroup ID
Example #5:
To display the MR Bias value for head 0:
F3 2>I,2,3,0
Example #6:
To write the Max MR Bias value for head 1 to 0x003E:
F3 2>I3E,2,4,1
Revision History:
0001.0000
0001.0001
0011.0000
Initial revision.
Added support for access to Max Head, MR Bias, and Max MR Bias
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
Added support for modifying/reading SAP Bias Table and SAP Bias Hysteresis Table
Description:
This command displays or modifies the RAM ZAP table.
Quick Help:
"DisplayModifyZapTable, t[EntryNum],[EntryValue]";
Input Parameters:
0 - ZAP Table Entry Number.
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.
Type:
Range:
0 to 0xFFFF
Default: None
1 - ZAP Table Entry Data.
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.
Type:
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the whole Zap Table will be displayed with the following format:
Row 000 xxxx xxxx
Row 001 xxxx xxxx
Row 002 xxxx xxxx
......
where xxxx is the
Revision History:
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
ZAP data at the specified index position of the ZAP table
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays the command history of the Native Interface and Read/Write
subsystem.
Quick Help:
"DisplayInterfaceAndRwCmdHistory";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, following information will be displayed.
"ATA ccc Cmds"
"Ts(ms)
dT(ms) Op Cnt LBA"
"dddddddddd eeeeeeee ff gggg hhhhhhhhhhhh"
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x0A
0x0B
0x0C
0x0D
0x0E
0x0F
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
0x1A
0x1B
0x1C
0x1D
0x1E
0x1F
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
0x29
0x2A
0x2B
0x2C
0x2D
0x2E
0x2F
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x3A
0x3B
0x3C
0x3D
SEEK
XFR_ALT
XFR
RD_CHNL
SRV_MEM
SRV_FLW
DITH
DITH_WR
CAL
ERA_TRK
FDB
FMT_TRK
FMT_SYS
FMT_UNT
HD_RES
HTR_RES
GET_RVFF
ACFF_RECAL
TEMP
TWK_FH
VOLT
HD_DIAG
HD_SPK
REALLOC
MRK_PND
HD_FH
VCM_TEMP
MEM_DBG
PROC_DL
SCRB_DL
PROC_GDL
REF_SRV_MEM
RELD_RAP
ERR_RATE
DL
SRV_EC
SCN_DFCT
SELF_SK
SK_TUNE
SND_SRV
FIX_RAP
DEPOP
INIT_DITH
PES
PREAMP
SET_VOLT
ZAP
SPN_UP
SPN_DN
ZLR
UNKNOWN
UNMRK
TCC
ALT_TONE
XFR_TRK
XFR_WDG
PWR
CLR_ALT
LATCH
SV_ALT
MATLAB
SWEEP
Seek request
Read/Write transfer alternate sector request
Read/Write transfer request
Access Read Channel request
Access Servo Memory request
Add Primary Servo Flaw request
Dithering request
Dithering write enhance request
Drive Calibration request
Erase Track request
Execute FDB Motor Leakage Detection test request
Format Track request
Format System Partition request
Format Unit request
Get Head Resistance request
Get Heater Resistance request
Get Servo RVFF sensor status
ACFF Recalibrate status
Get Temperature request
Tweak fly height values request
Get Voltage Levels request
Head diagnostics test request
Head Spike Screen request
Immediate Reallocation request
Mark Block for Pending Reallocation request
Measure Head Fly Heights request
Measure VCM Temperature and Resistance request
Memory mapped debug capture request
Process defect lists request
Scrub the defect lists request
Process growth defect lists request
Refresh servo memory request
Reload RAP parameters request
Measure error rate
Retrieve defect list request
Retrieve the servo error code FIFO request
Scan defect adjacent sectors request
Self seek request
Seek profile tuning request
Send servo request
Fixup RAP for depop request
Send Servo Electrical Depop request
Initialize Dithering parameters
Servo PES FIFO access request
Set Preamp mode request
Configure voltage margin level request
Configure the ZAP correction mode request
Spinup request
Spindown request
Track ZLR request
Unsupported request
Unmark Block for Pending Reallocation request
Update TCC Manager request
Write SMART Alternating Tones Request
Read/Write transfer track request
Read/Write transfer wedge request
Set R/W Power Management request
Clear R/W User Alt List request
Put heads on the latch request
Save R/W User Alt List to Media request
Enter Servo Matlab Shell request
Perform sweep of media to knock off particles request
0x3E
0x3F
0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4A
CLR_SLIP
FA_AFH
TWK_WR_PWR
SEC2RLL
SWD
CLR_ALT_ENT
ADJ_CLR
FALL
XFR_SEC
DISC_SLIP
RE_ALT
RST_RVFF
HST
0x00040000
0x00040000
0x00080000
0x00100000
0x00200000
request options:
in the voltage margin
for low voltage margin
for nominal voltage margin
for high voltage margin
0x40000000
0x20000000
0x10000000
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays state of the Native Interface command.
Quick Help:
"DisplayInterfaceCmdState";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays the Native Interface configuration information.
Quick Help:
"DisplayInterfaceConfig";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
ee
gg
Else
"Unsupported Native Interface Type"
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays the Native Interface's read cache information.
Quick Help:
"DisplayInterfaceRdCacheInfo";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
is
is
is
is
is
is
the
the
the
the
the
the
is
is
is
is
is
is
is
the
the
the
the
the
the
the
Remarks
* - This line is repeated for the number of cache segment entries implemented
** - This line is repeated until all Valuable cache entries, indicated by
Cc above, are displayed. 16 entries are displayed per line
*** - This line is repeated until all Free cache entries, indicated by Gg
above, are displayed. 16 entries are displayed per line
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command measures and displays the resistance of all heads.
Quick Help:
"DisplayPreampHdResistance, X";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed for each head.
"Head cc Resistance dddd"
where
cc is the logical head address
dddd is the head's resistance value
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command displays read and write error counters for each head.
Use online '$' to get error rates by zone.
Error 100C DETSEC 00008000
- this error is caused by the error stats log being not initialized.
Hit ctl-W to initialize the error log.
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
Quick Help:
"DisplayRwStats";
Input Parameters:
None
Output Data:
Rbit Hard Soft OTF
X.X X.X X.X X.X
X.X X.X X.X X.X
Raw
X.X
X.X
Rsym Sym
X.X X.X
X.X X.X
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.
Sym: Symbol based error rate. This is
-1 * log10 ( bad symbols reported by hardware / symbols read )
Wbit: The number of BITS drive attempted to write. This counter increments by
512*8 once for each sector attempted to be written.
This value is forced to be at least equal to the Wrty value.
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 sectors read ( 10*512*8 bits )
18 OTF corrections
4 soft errors
2 hard errors
--- --- --- --- --- --- --- --- --rbit = log10 (10*512*8)
hard = log10 (
2
/ (10*512*8) )
soft = log10 ( (2+4)
/ (10*512*8) )
OTF = log10 ( (2+4+18) / (10*512*8) )
Examples:
Example #1:
F3 2> `
Rbit Hard Soft
Hd 0 9.4 9.4 9.4
Hd 1 9.3 9.3 9.3
OTF
9.4
9.3
Raw
5.9
5.9
Rsym Sym
8.5 4.9
8.4 4.9
Revision History:
0001.0000
0001.0001
0011.0000
0011.0001
0012.0000
Initial revision.
Changed how stats are calculated if no successful transfers have occurred.
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).
Improve accuracy of logarithm math.
Added support for symbol based error rates.
Description:
This command displays read and write error counters for each head and zone.
Error 100C DETSEC 00008000
- this error is caused by the error stats log being not initialized.
Hit ctl-W to initialize the error log.
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
Quick Help:
"DisplayRwStatsByZone";
Input Parameters:
None
Output Data:
Rbit Hard Soft OTF
X.X X.X X.X X.X
X.X X.X X.X X.X
Raw
X.X
X.X
Rsym Sym
X.X X.X
X.X X.X
Example:
10 sectors read ( 10*512*8 bits )
18 OTF corrections
4 soft errors
2 hard errors
--- --- --- --- --- --- --- --- --rbit = log10 (10*512*8)
hard = log10 (
2
/ (10*512*8) )
soft = log10 ( (2+4)
/ (10*512*8) )
OTF = log10 ( (2+4+18) / (10*512*8) )
Examples:
Example #1:
F3 2> $
Hd Zn Rbit
0 0 8.1
0 1 7.8
0 2 7.9
0 3 8.0
0 4 7.9
0 5 8.0
0 6 8.1
0 7 7.9
0 8 7.5
0 9 7.9
0 A 7.8
0 B 7.9
0 C 7.5
0 D 7.9
0 E 7.5
0 F 7.5
Sumry: 9.1
Hard
8.1
7.8
7.9
8.0
7.9
8.0
8.1
7.9
7.5
7.9
7.8
7.9
7.5
7.9
7.5
7.5
9.1
Soft
8.1
7.8
7.9
8.0
7.9
8.0
8.1
7.9
7.5
7.9
7.8
7.9
7.5
7.9
7.5
7.5
9.1
OTF
7.4
7.0
7.3
7.1
7.1
7.1
7.2
7.2
7.5
7.0
6.9
7.0
7.0
6.9
7.0
6.9
7.1
Raw
5.7
5.9
5.7
6.1
5.7
5.5
5.7
5.7
5.3
5.6
5.5
5.0
5.3
5.5
5.6
5.4
5.5
Rsym
7.2
6.9
6.9
7.0
7.0
7.1
7.1
7.0
6.6
6.9
6.9
6.9
6.6
6.9
6.6
6.5
8.1
Sym
4.6
4.6
4.3
4.6
4.5
4.4
4.4
4.5
4.0
4.3
4.3
3.8
4.2
4.2
4.4
4.1
4.2
Wbit
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
Whrd
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
Wrty
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
Hd Zn
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 A
1 B
1 C
1 D
1 E
1 F
Sumry:
Hard
7.9
7.8
7.9
7.9
8.1
8.1
8.1
8.0
8.0
8.0
7.6
7.5
7.8
7.5
8.0
7.7
9.1
Soft
7.9
7.8
7.9
7.9
8.1
8.1
8.1
8.0
8.0
8.0
7.6
7.5
7.8
7.5
8.0
7.7
9.1
OTF
7.2
7.0
7.2
7.3
7.2
7.2
7.1
7.1
7.1
7.1
7.3
7.5
6.9
7.2
7.1
7.0
7.2
Raw
6.0
5.8
5.8
5.8
6.0
5.8
6.0
5.7
5.9
5.8
5.7
5.8
5.7
5.6
5.6
5.8
5.8
Rsym
6.9
6.9
6.9
7.0
7.2
7.2
7.1
7.1
7.0
7.0
6.6
6.6
6.9
6.6
7.0
6.7
8.1
Sym
4.6
4.5
4.5
4.6
4.6
4.5
4.5
4.4
4.6
4.4
4.4
4.7
4.5
4.4
4.3
4.3
4.5
Wbit
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
Whrd
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
Wrty
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
Rbit
7.9
7.8
7.9
7.9
8.1
8.1
8.1
8.0
8.0
8.0
7.6
7.5
7.8
7.5
8.0
7.7
9.1
Revision History:
0001.0000
0011.0000
0011.0001
0012.0000
Initial revision.
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).
Improve accuracy of logarithm math.
Added support for symbol based error rates.
Description:
This command displays the sign on message, which includes Product configuration,
HDA configuration, PCBA configuration, Firmware revision and Feature configuration
information.
Quick Help:
"DisplaySignOnMsg";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred , the following information will be displayed.
"Product FamilyId: cc, MemberId: dd"
where
cc is the Product Family ID
dd is the Product Family Member ID
"HDA SN: eeeeeeee, RPM: ffff, Wedges: gggg, Heads: h, Lbas: jjjjjjjj, PreampType: kk kk
where
eeeeeeee is the HDA Serial Number
ffff is the spin speed in Rotations per Minute
gggg is the number of servo wedges per track in hex
h is the number of heads
jjjjjjjj is the number of user LBAs in hex
kk kk is the Preamp Type (Preamp Registers 0 and 1)
"PCBA SN: llllllll, Controller: mmmmm, Channel: pppp, PowerAsic: qqqq Rev rr, BufferByt
where
llllllll is the PCBA Serial Number
mmmm is an ASCII string that specifies the controller type
"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.
Package SFW1 Version: IIII, Package SFW2 Version: JJJJ, Package SFW3 Version: KKKK, Packag
where
CCCCCC.CCCC.CCCCCC.CCCCCCCC is the Package Version Field.
DDDDDDDDD is the Package Part Number Field.
EE is the Package Builder ID Field.
MM/DD/YYYY is the Package Build Date Field.
HH:MM:SS is the Package Build Time Field.
GGGG.GGGG.GGGGGG.GGGG is the Package CFW Component Version Field.
IIII Package SFW Component 1 Version Field.
JJJJ Package SFW Component 2 Version Field.
KKKK Package SFW Component 3 Version Field.
LLLL Package SFW Component 4 Version Field.
example output:
Package Version: MS1240.STD1.AA0502.STD10013, Package P/N: 100421943, Package Builder ID:
Package Build Date: 03/08/2007, Package Build Time: 151452, Package CFW Version: MS12.STD1
Package SFW 1 Version: B413, Package SFW 2 Version: C415, Package SFW 3 Version: ----, Pac
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 i
invalid or that this diagnostic does not support the Firmware Package format returned by the d
example output:
Warning: Package Info truncation occurred.
"Controller FwRev CCCCCCCC, CustomerRel DDDDDD, Changelist EEEE, ProdType FFFF, Date GG/GG/GGG
where
CCCCCCCC is the Controller Firmware Revision.
DDDD is the Customer Release number.
EEEEEEEE is the Perforce Changelist Number.
Revision History:
0001.0000
0002.0000
0003.0000
0011.0000
0012.0000
0013.0000
Initial revision.
Added IOEDC and IOECC enabled status.
Added Firmware Package Information to the output data.
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).
Added LTTC-UDR2 disabled, enabled, or compiled off indication
Added RAP FW Implementation Key.
Description:
This command displays the specified segment of the Super Parity RAM.
Quick Help:
"DisplaySuperParityRam, G[StartAddr],[EndAddr]";
Input Parameters:
0 - Start Address Offset of Super Parity RAM.
This parameter specifies the start address offset of the super parity RAM.
Type:
Range:
0 to 0xffff,
Default: 0
1 - End Address Offset of Super Parity RAM.
This parameter specifies the end address offset of the super parity RAM.
Type:
Range:
0 to 0xffff
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This commmand displays the temperature of the specified device (preamp or thermistor).
Quick Help:
"DisplayTemperature, D,[DevSelect]";
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.
If this parameter is equal to 2, the Preamp temperature will be displayed, else the
Thermistor temperature will be displayed.
Type:
Range:
0 to 0xFF
None
Range:
None
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred and the Preamp temperature was returned, the following message
will be displayed.
"Preamp temp cccc, CCd"
where
cccc is the temperature value obtained from preamp (hexadecimal)
CC is the temperature value obtained from preamp (decimal)
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
dddd is the A to D Reference Voltage
Revision History:
0001.0000
0011.0000
0012.0000
Initial revision.
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).
Added Temperature in degrees Celsius (decimal) to output.
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.
Quick Help:
Level 2
"DisplayTrkSectorInfo, X[LogCyl],[Hd],[SysAreaOpt],[Opts],[RowsPerPage]";
Level l
"DisplayTrkInfo, l[LogCyl],[Hd],[SysAreaOpt],[Opts],[RowsPerPage]";
Input Parameters:
0 - Logical Cylinder Address.
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.
Type:
Range:
0 to 0xFFFFFFFF
Range:
0 to 0xFF
Range:
0 to 0xFFFF
Default: None
3 - Display Sector Information option.
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.
Type:
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)
4 - Sector Information Rows Per Page.
If Parameter 3 is entered and this parameter is entered, the sector information
display will pause after the number of rows specified by this parameter and wait for
the user to enter a character. If this parameter is not entered, all of the sector
information will be displayed without pausing.
Type:
Range:
0 to 0xFFFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed:
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
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:
0001.0000
0011.0000
Initial revision.
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).
Phy
pp
Description:
This command displays information about the media partitions (System and User) and
data zones.
Quick Help:
"DisplayZoneInfo, x[Partition],[Hd],[Zone],[DisplayWedgeOpSyms]";
Input Parameters:
0 - Partition.
This parameter specifies the partition for which the zone information is to
be displayed.
0 = User Partition
1 = System Partition
Type:
Range:
0 or 1
Default: If this paremater is not entered, the information will be displayed for
all partitions.
1 - Head.
This parameter specifies the head for which the zone information is to be displayed.
Type:
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.
Type:
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:
Bits 31-1: not used
Bit 0:
Type:
Range:
0 to 0xffffffff
Output Data:
For Non VBAR drives:
If no error occurred, the following information will be displayed.
"System Partition"
" LastLba LastPba HdSkew CylSkew MiniZnSkew"
" cccccccc dddddddd eeee
ffff
gggg"
" Hd FirstCyl LastCyl MiniZnCyls"
" h iiiiii jjjjjj
kkkkkk"
" Zones: ll"
"
First Total Spare First Sec Wedge
Spare
Cum
Last LastMini CumMini
" Zn Cyl Cyls Cyls
Lba
Trk NrzSyms Secs
Slips MiniZn ZnCyls ZnSkew"
" mm nnnnnn pppppp qqqqqq rrrrrrrr ssss tttttttt uuuuuuuu vvvvvvvv wwww xxxxxx yyyy"
"User Partition"
" LastLba LastPba HdSkew CylSkew MiniZnSkew"
" CCCCCCCC DDDDDDDD EEEE
FFFF
GGGG"
" Hd FirstCyl LastCyl MiniZnCyls"
" H IIIIII JJJJJJ
KKKKKK"
" Zones: LL"
"
First Total Spare First Sec Wedge
Spare
Cum
Last LastMini CumMini
" Zn Cyl Cyls Cyls
Lba
Trk NrzSyms Secs
Slips MiniZn ZnCyls ZnSkew"
" MM NNNNNN PPPPPP QQQQQQ RRRRRRRR SSSS TTTTTTTT UUUUUUUU VVVVVVVV WWWW XXXXXX YYYY"
where
cccccccc is the ending Logical Block Address (LBA) of the System Partition.
dddddddd is the ending Physical Block Address of the System Partition.
eeee is the Head Skew in data wedges for the System Partition.
ffff is the Cylinder Skew in data wedges for the System Partition.
gggg is the mini zone skew in data wedges for the System Partition.
h is the Logical Head Address in the System Partition.
iiiiii is the starting physical cylinder address of the System Partition on
the specified head.
jjjjjj is the ending physical cylinder address of the System Partition on
the specified head.
kkkkkk is the mini zone size in cylinders for the System Partition.
ll is the number of System Partition data zones.
mm is the System Partition data zone number.
nnnnnn is the starting physical cylinder address of the System Partition
data zone.
pppppp is the total number of physical cylinders contained in the System
Partition data zone.
qqqqqq is the number of spare cylinders contained in the System Partition data
zone.
rrrrrrrr is the starting Logical Block Address (LBA) of the System Partition
data zone.
ssss is the number of physical sectors per track in the System Partition data
zone.
tttttttt is the size of a data wedge in NRZ Symbols.
uuuuuuuu is the number of spare sectors in the System Partition data zone.
vvvvvvvv is the cummulative number of slips in the System Partition data zone.
wwww is the index of the last mini zone in the System Partition data zone.
xxxxxx is the number of cylinders contained in the last mini zone of the System
Partition data zone.
yyyy is the cummulative skew per mini zone in System Partition data zone.
CCCCCCCC is the ending Logical Block Address (LBA) of the User Partition.
DDDDDDDD is the ending Physical Block Address of the User Partition.
EEEE is the Head Skew in data wedges for the User Partition.
FFFF is the Cylinder Skew in data wedges for the User Partition.
GGGG is the mini zone skew in data wedges for the User Partition.
H is the Logical Head Address in the User Partition.
IIIIII is the starting physical cylinder address of the User Partition on
the specified head.
JJJJJJ is the ending physical cylinder address of the User Partition on
the specified head.
KKKKKK is the mini zone size in cylinders for the User Partition.
LL is the number of User Partition data zones.
MM is the User Partition data zone number.
NNNNNN is the starting physical cylinder address of the User Partition
data zone.
PPPPPP is the total number of physical cylinders contained in the User
Partition data zone.
QQQQQQ is the number of spare cylinders contained in the User Partition data
zone.
RRRRRRRR is the starting Disk Logical Block Address (LBA) of the User Partition
data zone.
SSSS is the number of physical sectors per track in the User Partition data
zone.
TTTTTTTT is the size of a data wedge in NRZ Symbols.
UUUUUUUU is the number of spare sectors in the User Partition data zone.
VVVVVVVV is the cummulative number of slips in the User Partition data zone.
WWWW is the index of the last mini zone in the User Partition data zone.
XXXXXX is the number of cylinders contained in the last mini zone of the User
Partition data zone.
YYYY is the cummulative skew per mini zone in User Partition data zone.
For VBAR drives:
If no error occurred, the following information will be displayed.
"User Partition"
" LBAs CCCCCCCC - DDDDDDDD"
" PBAs EEEEEEEE - FFFFFFFF"
" HdSkew GGGG CylSkew HHHH"
" ZonesPerHd JJ"
" Head K, PhyCyls LLLLLLLL - MMMMMMMM, LogCyls NNNNNNNN - PPPPPPPP"
"
First
Sec
Sym
Sym"
" Zn Cyl
Track Wedge Track
MHz"
" QQ RRRRRRRR SSSS TTTT UUUUUUUU VVVVVVVV"
"System Partition"
" LBAs cccccccc - dddddddd"
" PBAs eeeeeeee - ffffffff"
" HdSkew gggg CylSkew hhhh"
" ZonesPerHd jj"
" Head k, PhyCyls llllllll - mmmmmmmm, LogCyls nnnnnnnn - pppppppp"
"
First
Sec
Sym
Sym"
" Zn Cyl
Track Wedge Track
MHz"
" qq rrrrrrrr ssss tttt uuuuuuuu vvvvvvvv"
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.
JJ is the number of zones per head in the User Partition.
K is the Logical Head Address of the User Partition zone information to follow.
tttt is the size of a data wedge in NRZ Symbols for the System Partition data zone.
uuuuuuuu is the size of a track in NRZ Symbols for the System Partition data zone.
vvvvvvvv is the data frequency, in MHz, for the System Partition data zone.
If the Display Wedge Operation NRZ Symbol Information option is enabled (Parameter 3
Bit 0 set), the following additional information will be displayed for each User and
System partition zone.
"Sym
Sym
Sym
Sym"
"UnFmtDirWr UnFmtDirRd FmtDirWr FmtDirRd"
"WWWW
XXXX
YYYY
ZZZZ"
where
WWWW is the number of NRZ Symbols for an Unformatted Direct Wedge Write operation
in the zone.
XXXX is the number of NRZ Symbols for an Unformatted Direct Wedge Read operation
in the zone.
YYYY is the number of NRZ Symbols for an Formatted Direct Wedge Write operation
in the zone.
ZZZZ is the number of NRZ Symbols for an Formatted Direct Wedge Read operation
in the zone.
Revision History:
0001.0000
0002.0000
0002.0001
0011.0000
Initial revision.
Modified to display the logical cylinder range for each head for
VBAR drives.
Modified to display the NRZ Symbols per sector for each partition
for VBAR drives. Modified to display the NRZ Symbols per Wedge
for Unformatted Direct Wedge Write and Read and Formatted Direct
Wedge Write and Read operations on VBAR drives.
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).
Description:
This command is used to display information from the Directed Offline Scan subsystem.
Quick Help:
"DOS, m[Flags],[StartLba],[EndLba],[MinCount]";
Input Parameters:
0 - Action Mask
This input is a bitmask of what should be displayed:
0x01 counter values
0x02 counter group descriptors
0x04 miscellaneous DOS data
0x08 cylinder and head data
Range:
0 to 0x100
Default: 4 ( thresholds )
1 - Start LBA
This input is to set the LBA of the first data elements to display.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
2 - End LBA
This input is to set the LBA of the last data elements to display
Type:
Range:
0 to 0xFFFFFFFF
Range:
0 to 0xFFFFFFFF
Default: 0
Output Data:
First
LBA
0
aaaa
log
cyl
phys
cyl
0
0
bbbb cccc
Last
LBA
34D3
dddd
Group
Group
phys
Descriptor Descriptor
cyl Count
Type
Value Hd Zn
5
5
0
IDX
0
0 0
eeee ffff gg
hhh
iii
j k
log
cyl
Examples:
F3 7>m1
First
LBA
0
Last
LBA Count
34D3
0
0 0
F3 7>m2
First
LBA
0
Counter
Counter
Group
Group
Last
Descriptor Descriptor
LBA Count
Type
Value
34D3
0
IDX
0
0 0
F3 7>m7
Counter
Counter
Group
Group
First
Last
Descriptor Descriptor
LBA
LBA Count
Type
Value
0
34D3
0
IDX
0
0 0
OughtToScanThreshold: 2000
NeedToScanThreshold: 2000
Writes since last save:
0
Ought to save threshold:
7D0
Need to save threshold:
FA0
F3 7>m1f
First
log
phys
Last
LBA
cyl
cyl
LBA
0
0
0
34D3
OughtToScanThreshold: 2000
NeedToScanThreshold: 2000
Writes since last save:
0
Ought to save threshold:
7D0
Need to save threshold:
FA0
Scans over ought to threshold: 0
Scans over need to threshold: 0
Revision History:
Counter
Counter
Group
Group
log
phys
Descriptor Descriptor
cyl
cyl Count
Type
Value Hd Zn
5
5
0
IDX
0
0 0
0001.0000
0001.0001
0001.0002
0011.0000
Initial revision.
Add ability to clear counters, add display writes since save, add display
limits of writes until save.
Add ability to display cylinder and head information.
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).
Description:
This command downloads a generic file to the drive.
Quick Help:
"DownloadGenericFile, P[FileBytes]";
Input Parameters:
0 - File Bytes.
This parameter specifies the number file bytes to be downloaded.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
Output Data:
None.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command does the drive free fall protection control, measurement and
simulation.
Quick Help:
"DriveFreeFallProtection, F[OpCode],[SimDur],[SimSensorOutputs]";
Input Parameters:
0 - Operation Code Of Drive Free Fall Protection
This parameter specifies the operation code of the drive free fall
protection.
Type:
Range:
0 to 0xFFFF
Default: None
1 - Free-Fall Timer Sensitivity
This parameter specifies the free-fall timer sensitvity.
Type:
Range:
0 to 0xFF
Default: None
2 - Tumble Timer Sensitivity
This parameter specifies the tumble timer sensitvity.
Type:
Range:
0 to 0xFF
Default: None
3 - Simulation Duration
This parameter specifies the duration to simulate the drive free fall
protection.
Type:
Range:
0 to 0xFFFF
Default: None
4 - Simulation Sensor Outputs
This parameter specifies the simulation outputs value to be applied.
Type:
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following will be displayed
Read/Write Drive Free Fall Protection Info
where
AA is the status of Read/Write Free Fall Protection.
BB is the status of Read/Write Free Fall Protection Event.
CC is the status of Read/Write Free Fall Protection Activation.
DD is the status of Servo Free Fall Protection.
EE is the status of Servo Free Fall Protection Event.
FF is the value of Servo Free Fall Sensor Health.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
This command default to editing memory one byte (8-bits) at a time.
************************************** NOTE *********************************************
This command should be used with great caution, since it has the potential to corrupt
critical data stored in the data buffer.
*****************************************************************************************
Quick Help:
"EditBufferMemoryByte, U[AddrHi],[AddrLo],[MemValue],[NumBytes]";
Input Parameters:
0 - Memory Address or Memory Address High.
If Parameter 1 is not entered, this parameter contains the 32-bit address
Range:
Default: 0
1 - Memory Address Low.
If entered, this parameter contains the lower 16-bits of the address of the
first memory byte to be edited.
Type:
Range:
0 to 0xffff
The specified address must be properly aligned for the number of
bytes to be edited. Parameter 3 specifies the number of bytes to
be edited. If Parameter 3 is equal to 4, the specified address
must be a multiple of 4. If Parameter 3 is equal to 2, the
specified address must be a multiple of 2.
Range:
a multiple of 2.
Type:
Range:
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the memory data will be displayed as follows.
"Adr cccccccc ( dddddddd ) = ee --> "
"Adr cccccccc ( dddddddd ) = ffff --> "
"Adr cccccccc ( dddddddd ) = gggggggg --> "
or
or
where
cccccccc is the byte offset from the start of the memory
dddddddd is the processor address
ee is an 8-bit value written to or read from memory
ffff is a 16-bit value written to or read from memory
gggggggg is a 32-bit value written to or read from memory
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"EditProcessorMemoryByte, S[AddrHi],[AddrLo],[MemValue],[NumBytes],[Opts]";
Input Parameters:
0 - Memory Address or Memory Address High.
If Parameter 1 is not entered, this parameter contains the 32-bit address
of the first memory byte to be edited. If Parameter 1 is entered, this
parameter contains the upper 16-bits of the address of the first memory
byte to be edited.
Type:
Range:
Default: 0
1 - Memory Address Low.
If entered, this parameter contains the lower 16-bits of the address of the
first memory byte to be edited.
Type:
Range:
0 to 0xffff
The specified address must be properly aligned for the number of
bytes to be edited. Parameter 3 specifies the number of bytes to
be edited. If Parameter 3 is equal to 4, the specified address
must be a multiple of 4. If Parameter 3 is equal to 2, the
specified address must be a multiple of 2.
Range:
Range:
Range:
0 to 0x0001
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the memory data will be displayed as follows.
"Adr cccccccc ( dddddddd ) = ee --> "
"Adr cccccccc ( dddddddd ) = ffff --> "
"Adr cccccccc ( dddddddd ) = gggggggg --> "
where
or
or
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
This command default to editing memory two bytes (16-bits) at a time.
Quick Help:
"EditProcessorMemoryWord, m[AddrHi],[AddrLo],[MemValue],[NumBytes],[Opts]";
Input Parameters:
0 - Memory Address or Memory Address High.
If Parameter 1 is not entered, this parameter contains the 32-bit address
of the first memory byte to be edited. If Parameter 1 is entered, this
parameter contains the upper 16-bits of the address of the first memory
byte to be edited.
Type:
Range:
Default: 0
Range:
0 to 0xffff
The specified address must be properly aligned for the number of
bytes to be edited. Parameter 3 specifies the number of bytes to
be edited. If Parameter 3 is equal to 4, the specified address
must be a multiple of 4. If Parameter 3 is equal to 2, the
specified address must be a multiple of 2.
Range:
Range:
Range:
0 to 0x0001
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the memory data will be displayed as follows.
"Adr cccccccc ( dddddddd ) = ee --> "
"Adr cccccccc ( dddddddd ) = ffff --> "
"Adr cccccccc ( dddddddd ) = gggggggg --> "
or
or
where
cccccccc is the byte offset from the start of the memory
dddddddd is the processor address
ee is an 8-bit value written to or read from memory
ffff is a 16-bit value written to or read from memory
gggggggg is a 32-bit value written to or read from memory
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command turns on and read / write statistics gathering and zeros the error counters.
Related Commands:
Quick Help:
"RwStatsEnableAndInit";
Input Parameters:
none
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
The following will be displayed
"Rd/Wr stats On"
or
"Rd/Wr stats Off"
( always "Rd/Wr Stats On" for Ctl-W )
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command enables or disables the display of channel registers during retries.
Quick Help:
"EnableDisableChannelPreampRegDisplay, u[EnableDisableOpt]";
Input Parameters:
0 - Enable/Disable Channel/Preamp Register Display.
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
will not be displayed during retries.
Type:
Range:
0 to 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed.
"Channel tracing enabled"
"Preamp tracing enabled"
or
"Channel Tracing disabled"
"Preamp Tracing disabled"
to indicate whether Channel/Preamp tracing has been enabled or disabled. NOTE: If the
read/write does NOT support Channel or Preamp Tracing, then the message will ALWAYS
indicate that the feature is "disabled".
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
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.
Quick Help:
"EnableDisableLogging, E[ErrLoggingOpt],[AsciiLoggingOpt],[RwStatsLoggingOpt]";
Input Parameters:
Range:
0 to 0xFFFF
Default: None
1 - Enable or Disable ASCII Logging.
This parameter enables or disables ASCII Logging. If this parameter is not
entered, the current ASCII Logging mode will not be changed.
0 = Disable ASCII Logging
1 = Enable ASCII Logging
Type:
Range:
0 or 1
Default: None
2 - Enable or Disable Read / Write Statistics Logging.
This parameter enables or disables Read / Write Statistics Logging. If this
parameter is not entered, the current Read / Write Statistics Logging mode will
not be changed.
0 = Disable Read / Write Statistics Logging
1 = Enable Read / Write Statistics Logging
2 = Zero Read / Write Statistics Log
Type:
Range:
0 to 2
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
0011.0001
Initial revision.
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).
Added support for selecting a user-created error log.
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.
Quick Help:
"EnableDisablePesOutput, e[PesLeftShiftCnt],[DisablePesOut]";
Input Parameters:
0 - PES Output Left Shift Count.
This parameter specifies the number of bits the PES value is to be shifted left
before it is outputted.
This parameter is only valid if Parameter 1 is not entered. If Parameter 1 is not
entered and this parameter is not entered, then the current PES output state will
be displayed.
Type: Unsigned 16-bit value
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.
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
Default: None.
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command is used to enable / disable RVFF control in servo.
Quick Help:
"EnableDisableRvff, B[NewRvffControlMode]";
Input Parameters:
0 - New RVFF control mode to be used in servo.
This parameter specifies the new RVFF control mode to be used in servo.
Here is meaning of each bit of the RVFF control mode:
Bit 0 = 0 then disable rv current injection
= 1 then enable rv current injection
Bit 1 = 0 then bypass velocity control portion of rv_ff code
= 1 then execute velocity control portion of rv_ff code
Bit 2 = 0 then bypass track following control portion of rv_ff code
= 1 then execute track following control portion of rv_ff code
Bit 3 = 0 then disable the averaging funtion in the track following portion
= 1 then enable the averaging funtion in the track following portion
Bit 4 = 0 then disable filtx gain parameter adaptation
= 1 then enable filtx gain parameter adaptation
Bit 5 = 0 then disable rv data acquisition during twiddle
= 1 then enable rv data acquisition during twiddle
Bit 6 reserved
Bit 7 = 0 then disable rv current injection in velocity/settle mode
= 1 then enable rv current injection in velocity/settle mode
Bit 8 = 0 then Normal Code (RVFF IIR is tuned up for NearLine RV Spec)
= 1 then Enable 2nd RVFF IIR Tuneup for DeskTop RV Spec
Bit 9 = 0 Normal code
= 1 McKinley DT Shock Detect method with external shock sensor is enabled
Bits 10 - 15 reserved
When this parameter is not entered, this command will simply display the current
RVFF control mode without changing it.
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
Default: None.
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
RVFF control mode: xxxx:
where xxxx is the RVFF control mode in servo (in Hex format)
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command enables or disables servo VCM DAC and / or A to D updates.
Quick Help:
"EnableDisableServoUpdates, U[VcmDacUpdateOpt],[AToDUdateOpt]";
Input Parameters:
0 - Disable / Enable VCM DAC Updates.
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.
Type:
Range:
0 to 0xFF
Default: 1
1 - Disable / Enable A to D Updates.
If this parameter is equal to 0, servo A to D updates will be disabled, else
servo A to D updates will be enabled.
Type:
Range:
0 to 0xFF
Default: 1
Output Data:
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command enables or disables Write Fault errors.
Quick Help:
"EnableDisableWrFault, u[Op]";
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
Type:
Range:
0 to 1
Output Data:
If no error occurred and write faults were disabled, the following message will be
displayed.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command enables looping, with the specified loop count and options, on the next
diagnostic command received.
Quick Help:
"EnableLooping, L[Opts],[CountOrStopOnErrCode]";
Input Parameters:
0 - Looping Options.
This parameter is a bit-significant value that specifies the following options:
Bit 15-7: reserved
Bit 6: Enable Stop on Test Space Wrapped
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 5: Enable Stop on Specified Error
If this bit is equal to 1, looping will be halted if the command
completes with the error code specified by Parameter 1.
Bit 4: Disable Error Display
If this bit is equal to 1, errors that occur while looping will
not be displayed.
Bit 3: reserved
Bit 2: Enable Spin Down on Error
Range:
0 to 0xffff
Range:
0 to 0xffffffff
Default: 0
Output Data:
None
Revision History:
0001.0000
0001.0001
0001.0002
Initial revision.
Increased the size of Parameter 1 (Error Code or Loop Count) to 32-bits.
Add option to enable stopping when the Test Space wraps.
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.
Quick Help:
"EnableEslipSerialPortMode";
Input Parameters:
None
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"EnableAsciiDiagSerialPortMode";
Input Parameters:
None
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"EnableAsciiOnlineSerialPortMode";
Input Parameters:
None
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"EnterBatchFile, E[BatchFileNum]";
Input Parameters:
0 - Batch File Number.
This parameter specifies the number of the Batch File to be entered.
Type:
Range:
0 to 2
Default: 0
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command enters servo matlab shell and never returns. It also spins down the drive
first before entering the servo matlab shell.
Quick Help:
"EnterServoMatlabShell, S";
Input Parameters:
None
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command performs various functions associated with Seacos. This function will
overwrite the Seacos overlay, Seacos security sector, ConGen, disk code and serial
flash.
Input Parameters:
0 - Minimal erase level
"0" to erase serial flash and reboot to mask ROM code
"1" to erase Appcode
Not supported yet
"2" to erase Cert
Not supported yet
"3" to erase Cert Table
Not supported yet
"4" to erase AT Overlays
"5" to erase Congen
Not supported yet
"6" to erase Security
"7" to erase Seasos
Type:
Range:
0 to 0xFF
Default: None
1 - Erase mode
This parameter specifies the following options:
"1" means to erase the level the first param specify.
"0" means to erase from 7th level to the minimal level the first param specify.
Type:
Range:
0 to 0xFF
Default: None
2 - Valid Command Key.
this parameter must be equal to 22 Hex. If this parameter is not equal to 22 Hex,
the command will not be executed.
Type:
Range:
0 to 0xFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
Revision History:
0001.0000
Initial revision.
Description:
This command erases the target track and the specified number of tracks on each side
of the target track.
Quick Help:
"EraseTrk, b[AdjacentTrkCnt],[EraseCntPerTrk],[AcEraseOpt]";
Input Parameters:
0 - Adjacent Tracks to Erase.
This parameter specifies the number of adjacent tacks on each side of the target
track to be erased.
Type:
Range:
0 to 0xFFFF
Default: 0
1 - Erase Count per Track.
This parameter specifies the number of times each track should be erased.
Type:
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.
Type:
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"FastMseserMeasurement, m[]";
Input Parameters:
0 - Start Sector.
This parameter specifies the sector on which to start the read.
When 0xFFFF, it means zero latency read.
Type:
Range:
Default: 0
1 - Number of Sectors to Read.
This parameter specifies the number of sectors to read.
When 0, it means the whole track.
Type:
Range:
Default: 0
2 - Data Collection Options.
This parameter is a bit-significant value that allows the user to control
the data to be collected.
Bit 15-3:
Reserved
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.
Type:
Range:
0 to 0xFFFF
Default: 0 ( MSE, VGAR, and rotate through all FIR Taps and NLFR registers )
3 - Register Address
This parameter specifies the address of the register to read, when
bit 1 or 0 of Parameter 2 is set. If bit 1 is set, the entire 32-bit
value is used to address a controller register. If bit 0 is set, the
lower 16-bit is used to address a Read Channel register.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
4 - Register Bit Mask
This parameter specifies the bit mask that will be bit-AND'ed with
data read from the register specified by parameter 3.
Type:
Range:
0 to 0xFFFF
Range:
Default: 0
6 - Percentage to trim.
This parameter specifies the percent trimming to apply to the data at
both low and high ends.
Type:
Range:
0 to 32h
Default: 0
7 - Display Options.
This parameter is a bit-significant value that allows the user to control
the level of output detail.
Bit 15-2:
Reserved
Bit 1:
Bit 0:
Type:
Range:
0 to 0xFFFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
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
F3
F3
F3
F3
F3
F3
T>A0
T>/7
7>S1000,0
7>K2
7>W,,,1
7>/E
E>m
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"FillCorrectionBuffer, B[StartAddr],[EndAddr],[Pattern],[Opts]";
Input Parameters:
0 - Start Address Offset of Correction Buffer.
This parameter specifies the start address offset of the correction buffer.
Type:
Range:
0 to 0xffff,
Default: 0
1 - End Address Offset of Correction Buffer.
This parameter specifies the end address offset of the correction buffer.
Type:
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.
Type:
Range:
0 to 0x03ff
Default: 0
3 - Options.
This parameter is a bit-significant value that selects the following options.
Bits 15-1: not used
Bit 0:
Type:
Range:
0 to 0xff
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command fills the specified segment of the Super Parity RAM with the specified
data pattern.
Quick Help:
"FillSuperParityRam, F[StartAddr],[EndAddr],[Pattern]";
Input Parameters:
0 - Start Address Offset of Super Parity RAM.
This parameter specifies the start address offset of the super parity RAM.
Type:
Range:
0 to 0xffff,
Default: 0
1 - End Address Offset of Super Parity RAM.
This parameter specifies the end address offset of the super parity RAM.
Type:
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.
Type:
Range:
0 to 0x0fff
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
The first step is to find a legitimate coarse MSE tub.
Since the real offset is unknown, conventional method to find the tub is to sweep certain
ranges of the offset with coarse offset increment. The range must be wide enough to cover
the worst(biggest) ever heads and the increment must be narrow enough not to miss the tub.
Because of this dilemma, finding the coase rw offset can be a very time consuming process.
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 second step is to find the fine rw offset.
The conventional method for doing this is to scan small range, for example, one track,
with a fine, in many cases, the smallest possible, offset increments. This is also a time
consuming process because the increment is very small even though the range is fairly
small.
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.
Quick Help:
"FineRwOffset, o[NumAvgs],[TrkStepSize],[NumGuardTrks]";
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:
Range:
1 to 0xFFFF
Default: 5
1 - Track step size.
This parameter specifies the number of tracks between the sample tracks where
the measurements occur.
Type:
Range:
0 to 0xFFFF
Default: 4
2 - Number of guard tracks.
This parameter specifies the number of guard tracks at each side, ID and OD, of the
sample tracks. These areas will be erased.
Type:
Range:
0 to 0xFFFF
Default: 10
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, following information will be displayed.
"Cyl/Hd cccccc/d OffsetPerTrk: eeeee OffsetDelta: fffff(sh.iiiEsj)"
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:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"FirmwareReset";
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.
"Spin Down Complete"
"Elapsed Time a mins b secs" or
"Elapsed Time b.c secs"
or
"Elapsed Time c.d msecs"
where
a
b
c
d
is
is
is
is
minutes
seconds
milliseconds
microseconds
When delaying following spin down, the following string will be displayed.
"Delaying eeee msec"
where
eeee is the length of the delay in milliseconds
After the delay is complete, the following string will be output to indicate that
the reset is being performed.
"Jumping to Power On Reset"
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command formats the specified partition.
Quick Help:
"FormatPartition, m[Partition],[FormatOpts],[DefectListOpts],[MaxWrRetryCnt],[MaxRdRetryCnt],\
"[MaxEccTLevel],[MaxCertifyTrkRewrites],[ValidKey],[DataPattern]";
Input Parameters:
0 - Partition Number.
This parameter specifies the media partition to be formatted.
0 = User Partition
1 = System Partition
Type:
Range:
0 or 1
Default: 0
1 - Format Options.
This parameter is a bit significant value that selects the following options:
Bits 31-6: not used
Bit 5: Enable SeaCOS XF Space Format.
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.
Bit 4: Enable Zone Re-format Skipping.
If this bit is equal to 1, then the Format Partition command will
enable the zone re-format skipping mode during the format operation.
With this mode enabled, the format operation will not re-format
a zone if grown defects were found in the zone.
NOTE: This feature can be enabled or disabled at compile-time. Use
the quick help to determine whether your code supports this feature.
Bit 3: Enable Event-based Format Logging.
If this bit is equal to 1, then the Format Partition command will
display information about error events that occur during the format
operation. This information will be displayed as interim status as
these events occur.
NOTE: This feature can be enabled or disabled at compile-time. Use
the quick help to determine whether your code supports this feature.
Bit 2: Disable User Partition Certify.
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.
Bit 1: Disable User Partition Format.
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.
Bit 0: Corrupt User Partition Primary Defects.
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.
Type:
Range:
0 or 0xFFFFFFFF
Range:
0 or 0xFFFFFFFF
Range:
0 or 0xFFFF
Default: None.
4 - Maximum Read Retry Count.
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.
Type:
Range:
0 or 0xFFFF
Default: None.
5 - Maximum ECC T-Level.
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.
Type:
Range:
0 or 0xFFFF
Default: None.
6 - Track Rewrite During Certify Retry Threshold.
If this parameter is entered, it specifies the maximum number of rewrite retries
to be performed during the user partition certification pass.
Type:
Range:
0 or 0xFFFF
Default: None. If this parameter is not entered, the default value recommended
by the R/W Firmware will be used.
7 - Valid Command Key.
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.
Type:
Range:
0x22 or 0xDD
Default: None
8 - Data Pattern For Format.
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.
Type:
Range:
0 or 0xFFFFFFFF
Default: 0x00000000.
Output Data:
If the error occurred while processing the defect lists, the following additional
information will be displayed.
"Process Defect List Error"
"R/W Sense cccccccc, R/W Error dddddddd, List Offset eeeeeeee, File Error ffffffff"
where
cccccccc is the sense status that was returned by the R/W subsystem
dddddddd is the error code that was returned by the R/W subsystem
eeeeeeee is the offset of the defect list entry at which the error occurred
ffffffff is the error code that was returned by the system information manager (SIM)
If the error occurred during the format operation, the following additional information
will be displayed.
"User Partition Format Failed - Elapsed Time c"
"R/W Sense dddddddd, R/W Error eeeeeeee, File Error ffffffff"
"Blk Addr gggggggg, Blk Addr Type hh, Cyl iiiiiiii, Hd jj";
where
c is the amount of time that has elapsed since the format operation was started
dddddddd is the sense status that was returned by the R/W subsystem
eeeeeeee is the error code that was returned by the R/W subsystem
ffffffff is the error code that was returned by the system information manager (SIM)
gggggggg is the R/W block address at which the error occurred
hh is the R/W block address type at which the error occurred
iiiiiiii is the R/W cylinder address at which the error occurred
jj is the R/W head address at which the error occurred
If no error occurred and the format operation is still in progress, the following
information will be displayed.
"Max Wr Retries = cc, Max Rd Retries = dd, Max ECC T-Level = ee, Max Certify Rewrite Re
"User Partition Format gg% complete, Zone hh, Pass ii, LBA jjjjjjjj, ErrCode kkkkkkkk,
where
cc is the maximum write retry count to be used
dd is the maximum read retry count to be used
ee is the maximum ECC T-Level to be used
ffff is the certify rewrite rety threshold
gg is the percent of the format operation that has been completed
hh is the data zone that is currently being formatted
ii is the number of the current pass through the data zone
jjjjjjjj is the last LBA that was formatted
kkkkkkkk is the error code that was reported by the R/W subsystem
l is the amount of time that has elapsed since the format operation was started
If no error occurred, the format operation is still in progress, a format event occurs,
and format event reporting is enabled, the following information will be displayed.
"Event: Media Write Start, aaa Format, Zone bb, Start Blk cccccccc, Num Sectors ddddddd
or
"Event: Write Xfer, Start Blk cccccccc, Len eeeeeeee, Next Blk ffffffff, Erc gggggggg,
or
"Event: Media Certify Start, New Format, Zone bb, Start Blk cccccccc, Num Sectors ddddd
or
"Event: Certify Xfer, Start Blk cccccccc, Len eeeeeeee, Next Blk ffffffff, Erc gggggggg
or
"Event:
"Event:
"Event:
"Event:
Unrec
Unrec
Unrec
Unrec
Err,
Err,
Err,
Err,
LBA
LBA
LBA
LBA
iiiiiiii,
iiiiiiii,
iiiiiiii,
iiiiiiii,
PBA
PBA
PBA
PBA
jjjjjjjj,
jjjjjjjj,
jjjjjjjj,
jjjjjjjj,
Erc
Erc
Erc
Erc
gggggggg,
gggggggg,
gggggggg,
gggggggg,
Trk
Trk
Trk
Trk
llll,
llll,
llll,
llll,
Hd
Hd
Hd
Hd
mm,
mm,
mm,
mm,
Sctr
Sctr
Sctr
Sctr
nn,
nn,
nn,
nn,
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
Revision History:
0001.0000
0001.000X
0011.000X
0012.000X
0012.001X
Initial revision.
Added ability to enable and display event-based output.
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).
Added additional parameter 8 for users to input data pattern for format. The
default data pattern is 0x00000000 instead of the 0x77777777 for the User
Partition and 0xFFFFFFFF for the System Partition.
Added option to process the Active Error Log.
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.
Quick Help:
Level 1
"GenericRwRequest, G[Parm0],[Parm1],[Parm2],...[Parm9]";
Level 7
"GenericRwRequest, i[Parm0],[Parm1],[Parm2],...[Parm9]";
Input Parameters:
0 - Generic Read/Write Request Parameter 0.
Type:
Range:
0 to 0xffffffff
Default: 0
1 - Generic Read/Write Request Parameter 1.
Type:
Range:
0 to 0xffffffff
Default: 0
2 - Generic Read/Write Request Parameter 2.
Type:
Range:
0 to 0xffffffff
Default: 0
3 - Generic Read/Write Request Parameter 3.
Type:
Range:
0 to 0xffffffff
Default: 0
4 - Generic Read/Write Request Parameter 4.
Type:
Range:
0 to 0xffffffff
Default: 0
5 - Generic Read/Write Request Parameter 5.
Type:
Range:
0 to 0xffffffff
Default: 0
6 - Generic Read/Write Request Parameter 6.
Type:
Range:
0 to 0xffffffff
Default: 0
7 - Generic Read/Write Request Parameter 7.
Type:
Range:
0 to 0xffffffff
Default: 0
8 - Generic Read/Write Request Parameter 8.
Type:
Range:
0 to 0xffffffff
Default: 0
9 - Generic Read/Write Request Parameter 9.
Type:
Range:
0 to 0xffffffff
Default: 0
Output Data:
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"GenericServoCmd, C[CmdNum],[Parm1],...[Parm7]";
Input Parameters:
0 - Internal Servo Command Number.
This parameter specifies the internal servo command to be run.
Type:
Range:
0 to 0xFFFF
Default: None
1 - 1st parameter following the Internal Servo Command number.
This parameter specifies the the 1st parameter following the Servo Command number.
Type:
Range:
0 to 0xFFFF
Default: 0
2 - 2nd parameter following the Internal Servo Command number.
This parameter specifies the the 2nd parameter following the Servo Command number.
Type:
Range:
0 to 0xFFFF
Default: 0
3 - 3rd parameter following the Internal Servo Command number.
This parameter specifies the the 3rd parameter following the Servo Command number.
Type:
Range:
0 to 0xFFFF
Default: 0
4 - 4th parameter following the Internal Servo Command number.
This parameter specifies the the 4th parameter following the Servo Command number.
Type:
Range:
0 to 0xFFFF
Default: 0
5 - 5th parameter following the Internal Servo Command number.
This parameter specifies the the 5th parameter following the Servo Command number.
Type:
Range:
0 to 0xFFFF
Default: 0
6 - 6th parameter following the Internal Servo Command number.
This parameter specifies the the 6th parameter following the Servo Command number.
Type:
Range:
0 to 0xFFFF
Default: 0
7 - 7th parameter following the Internal Servo Command number.
This parameter specifies the the 7th parameter following the Servo Command number.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command get the thermistor temperature of the drive.
Quick Help:
"GetThermistorTemperature";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred and the Preamp temperature was returned, the following message
will be displayed.
"Preamp temp cccc, CCd"
where
cccc is the temperature value obtained from preamp (hexadecimal)
CC is the temperature value obtained from preamp (decimal)
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:
0001.0000
0011.0000
0012.0000
Initial revision.
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).
Added Temperature in degrees Celsius (decimal) to output.
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)
Quick Help:
"GoopPlot, T[Hd],[StartTrk],[EndTrk],[ECCLvl],[NoFrcSync],[SkipCnt]";
Input Parameters:
0 - Head.
If FF entered, test all heads
If FE entered, test current head
Type:
Range:
0 to 0xFF
Range:
0 to 0xFFFFFFFF
of drive.
Type:
Range:
0 to 0xFFFFFFFF
Range:
0 to MaxECC
Default: 2
4 - Disable Force Sync
If any value is input, Force Sync will NOT be used.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
5 - Skip Count
This input indicates how many tracks are skipped between those tracks that are scanned.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
F3 C>T0,20,40,,,8
Cyl Hd #Sec T=0 02
20
29
32
3B
0
0
0
0
1456d
1456d
1456d
1456d
1451d
1452d
1452d
1448d
4d
4d
3d
8d
1d
0d
1d
0d
F3 C>
Examples:
Example #1:
To scan tracks 80 - 84 with correction threshold 6 on the current head:
F3 C>T,80,84,6
Cyl Hd #Sec
T=0 06
80 0 1456d
0d
1d 1455d
81 0 1456d 1451d
5d
0d
82 0 1456d 1454d
2d
0d
83 0 1456d 1455d
1d
0d
84 0 1456d 1450d
6d
0d
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
Cyl Hd #Sec
T=0 02
C0 0 1456d
0d
1d 1455d
C4 0 1456d 1450d
6d
0d
C8 0 1456d 1451d
5d
0d
CC 0 1456d 1454d
2d
0d
D0 0 1456d 1455d
1d
0d
Revision History:
0001.0000
0001.0001
0002.0000
0011.0000
Initial revision.
Update code to properly handle tracks with no sectors.
Make columns even, output cylinder in hex, add ability
to skip tracks.
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).
Description:
This command is used to perform head smash test towards OD or ID with given acceleration
and deceleration currents / duration.
Quick Help:
"HeadSmashTest, d[HeadDirection],[AccelerationDuration],[DecelerationDuration],[AccelerationCu
Input Parameters:
0 - Head Smashing Direction.
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
Type:
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.
Type:
Range:
0 to 0xFFFF
Range:
0 to 0xFFFF
Range:
0 to 0xFFFF
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
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:
0001.0000
Initial revision.
Description:
This command increments the number of the Servo Wedge for which the Scope Sync Pulse
will be generated.
Quick Help:
"IncRwScopeSync";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed.
"
Burst cccc"
where
cccc is the current Scope Sync Wedge number
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command initializes the Defect List to contain no defects.
Quick Help:
"InitDefectList, i[DefectListSelect],[SaveListOpt],[ValidKey]";
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.
bits 31-3:
bit 2:
bit 1:
bit 0:
Type:
Range:
1 or 4 or 5
Default: None
1 - Action
0 - defects will be cleared in the current, volatile, copy of the defect
list(s) in RAM , but lists won't be written to disk : modification is TEMPORARY .
1 - modified ( cleared ) versions of defect lists will be written
to disk : defects are PERMANENTLY cleared.
2 - the defect list will be read from non-volatile memory, overwriting
any changes in volatile memory.
Type:
Range:
0 to 2
Default: 0
2 - Valid Command Key.
This parameter must be equal to 22 Hex. If this parameter is not equal to
Range:
0x22
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Examples:
Example #1:
To initialize the slip list to zeros:
T> i1,,22
Example #2:
To initialize the alt list to zeroes and save the zeroed list to disk:
T> i4,1,22
Example #3:
To reread the alt list from disk:
T> i4,2,22
Revision History:
0001.0000
0001.0001
0011.0000
Initial revision.
Add ability to reload alt list.
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).
Description:
This command initializes the specified log file to be empty.
Quick Help:
"InitLogFile, i[Log]";
Input Parameters:
0 - Log Number.
This parameter specifies the number of the log to be initialized.
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.
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:
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The command loads or unloads the heads for drives that support this feature.
Quick Help:
"LoadUnloadHeads, b[Cmd],[Velocity],[Dwell],[Lock]";
Input Parameters:
0 - Command Type ID.
This parameter specifies which operation is to be performed.
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.
Type:
Range:
Default: 0
1 - Load or Unload Velocity.
For a 'Load Heads' command, this parameter specifies the load velocity.
For a 'Unload Heads' command, this parameter specifies the unload velocity.
If a value of 0 is entered then the load/unload velocity will not be modified
and the default value in the servo firmware will be used.
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.
The units are ADC counts.
Type:
Range:
-999 to 999
Default: 0
2 - Enable Demod Sync.
This parameter will enable or disable Demod Sync during the Load command.
A value of 1 will enable Sync, a value of 0 will disable Sync.
This parameter is ignored by the Unload command.
Type:
Range:
0 or 1
Default: 0
3 - Enable Dwell.
This parameter will enable or disable Dwell during the Load command.
A value of 1 will enable Dwell, a value of 0 will disable Dwell.
This parameter is ignored by the Unload command.
Type:
Range:
0 or 1
Default: 0
4 - Unload Type.
This parameter specifies the unload type to be done.
0: VCM_BEMF_VELOCITY_CONTROL - Vcm Bemf Control will be used.
1: UNLOAD_IMMEDIATE - Unload Immediate will be used.
2: HARDWARE_RETRACT - Hardware Retract will be used.
This parameter is ignored by the Load command.
Type:
Range:
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred and Verbose Output Mode is selected,
the following information will be displayed.
AAAA LOAD/UNLOAD TYPE
Elapsed Time bbb.bbb msecs
cc Velocity in firmware
d Velocity Cmd
e Enable Demod Sync Cmd
f Enable Dwell Cmd
g Unload Type Cmd
hhhh Load/Unload Time
iiiii Bemf Calibrated Gain
j Calibrated Vcm Bemf Offset
kkk Bemf Calibrated Residual Error
l Bemf Cal Retries
mmmmm Load/Unload Peak Current
nn Load/Unload Max Spin Dip Error
ooo Load/Unload Peak Velocity
p Load Heads Retries
qqqq Load/Unload Status Code
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.
The next several values are entries 'echoed' from the command line:
d is the requested Velocity as entered via the command line.
e is the Enable Demod Sync value as entered via the command line.
f is the Enable Dwell value as entered via the command line.
g is the Unload Type value as entered via the command line.
The remaining values are data returned by servo after command completion:
hhhh is the Load/Unload Time
iiiii is the Bemf Calibrated Gain
j is the value of the Calibrated Vcm Bemf Offset
kkk is the value of Bemf Calibrated Residual Error
l is the number Bemf Cal Retries used
Examples:
To load the heads with a velocity of -85:
F3 3>b0,-85
To unload the heads with a velocity of 317
F3 3>b1,317
Revision History:
0001.0000
Initial revision.
Description:
This command marks tracks around an target area so that the target area may be found
after the disk is developed.
Note this command may take 10's of seconds.
Diagram below shows erased areas as 'E'.
OD
*
E
pointer length *
E
*
E
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
*
undisturbed radius *
*
target flaw
*
undisturbed radius *
*
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
*
E
pointer length *
E
*
E
ID
*
* erase band width
*
*
* erase band width
*
Quick Help:
"MarkMediaFlaw, h[PhyCyl],[Hd],[PhySec],[UndisturbedRadius],[EraseBandTrks],[PtrLen],[WgSpec],
Input Parameters:
0 - Cylinder
This input specifies the physical cylinder to be marked. This cylinder will
not be written.
Type:
Range:
0 to 0xFFFFFFFF
Default: none
1 - Head.
This input specifies the head number of the track to be marked.
Type:
Range:
0 to 0xFFFF
Default: none
2 - Sector or SFI or Wedge
This input specifies which wedge is marked.
If
to
If
If
Type:
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.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0xF
4 - Erase Band Width
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.
Type:
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.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0x3C
6 - Wedge Specifier Type
This input specifies the units of parameter 2 ( sector or SFI or wedge )
will be.
If this value is 0 (default), parameter 2 is physical sector number.
If this value is 1, parameter 2 is servo wedge number.
If this value is 2, parameter 2 is symbols from index.
Type:
Range:
0 to 0xFFFFFFFF
Range:
0 to 0xFFFFFFFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Examples:
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:
0001.0000
0001.0001
0001.0002
0011.0000
0011.0001
Initial revision.
Add support for inputting wedge or SFI as well as physical sector.
Fix bug that prevented operation at extreme OD.
Add ability to mark only one side of a defect.
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).
Improve accuracy of tracks erased
Description:
This command performs the Measure Disc Eccentricity operation.
Quick Help:
"MeasureDiscEccentricity";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, then the following will be displayed for each supported head:
Examples:
Example #1:
To measure disc eccentricity on all heads:
F3 5>E
Revision History:
0001.0000
Initial revision.
Description:
For drives that support this feature, this diagnostic will measure the force required to
push the actuator off of the latch. The diagnostic will perform the measurement the
user-specified number of times and return the minimum, average, and maximum values.
The output data is unscaled (in dac counts).
Quick Help:
"Measure Latch Force, c[NumberOfSamples]";
Input Parameters:
0 - Number of Samples.
This parameter specifies the number of times that the Latch Force Measurement
should be done.
Type:
Range:
1 .. 999
Default: 10
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred the following information will be displayed.
Latch Force:
Min
Avg
aaaaa
bbbbb
Max
ccccc
Where:
aaaaa is the Minimum Latch Force Value
bbbbb is the Average Latch Force Value
ccccc is the Maximum Latch Force Value
Examples:
Example #1:
To measure the latch force 10 times (this is the default):
F3 3>c
Example #2:
To measure the latch force 64 times:
F3 3>c64
Revision History:
0001.0000
Initial revision.
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.
Quick Help:
"MeasureSkAccessTime, D[SkLength],[SkType],[NumSks]";
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.
Type:
Range:
0 to Max Track
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:
0 - Read seeks: Specifies seeks to the read track follow position.
1 - Write seeks: Specifies seeks to the write track follow position.
2 - Write header seeks: Specifies seeks to the write header track follow position.
(This positions the writer to the read track follow position, that is, to the
negative reader/writer offset.)
Type:
Range:
0 to 2
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.
"Sk Length = _____"
"SEEKTYPE"
"Num Seeks = _____"
"Avg Time usec = _____"
"Min Time usec = _____"
"Max time usec = _____"
Examples:
To perform 1000 random read seeks:
F3 3>D0,0,1000
F3 3>D
<-- This works because the defaults are 1000 random read seeks.
To perform 10000 full-stroke write seeks:
F3 3>D9999999,1,10000
To perform 10000 random JIT 3 read seeks:
F3 4>u1,3
<-- Sets the seek speed to JIT 3.
F3 3>D,,10000 <-- No parameters 0 and 1 because the default is random read seeks.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command is used to test the drive's read and write speed.
Quick Help:
"MeasureThroughput, T[Opts],[MinSkew],[MaxSkew],[SkewStep]";
Input Parameters:
0 - Command Flags
This input sets read or write and determines disk access range.
bit 15:
set
write
cleared read
set
scan entire full pack, ignore bits 0-13
cleared sample first cylinders of zones specified below
set
all zones, ignore bits 0-12
cleared single zone
ignored
zone number
bit 14:
bit 13:
bits 4-12
bits 0-3
Type:
Range:
0 to 0xFFFF
Range:
0 to 0xFFFF
Range:
0 to 0xFFFF
Range:
1 to DIAG_THROUGHPUT_MAX_SKEW_STEP ( 10 dec )
Default: 1
Output Data:
throughput KBS = kilobytes / second
Example:
F3 2>T9,1300,1700,1
Min Max Cyl: 13 17
Min Max Head: 0 0
Zone 9 cyl skew 13
Zone 9 cyl skew 14
Zone 9 cyl skew 15
Zone 9 cyl skew 16
Zone 9 cyl skew 17
head
head
head
head
head
skew
skew
skew
skew
skew
0
0
0
0
0
throughput
throughput
throughput
throughput
throughput
KBS:
KBS:
KBS:
KBS:
KBS:
6.134
10.589
10.837
10.832
10.826
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
************************************** NOTE *********************************************
This command allows attempts to read addresses without validation. But reading invalid
addresses may hang the drive. This command should be used with great caution if the
option to override address validation is enabled.
*****************************************************************************************
Quick Help:
"DisplayMemoryBlock, D[AddrHi],[AddrLo],[CompVal],[NumBytes],[Opts],[SizeInBytes]";
Input Parameters:
0 - Memory Address or Memory Address High.
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.
Type:
Default: 0
1 - Memory Address Low.
If entered, this parameter contains the lower 16-bits of the address of the first
memory location to be read and displayed.
Type:
Range:
0 to 0xffff
Range:
If
If
If
If
parameter
parameter
parameter
parameter
5
5
5
5
is
is
is
is
1:
2:
4:
8:
0
0
0
0
to
to
to
to
0xFF
0xFFFF
0xFFFFFFFF
0xFFFFFFFFFFFFFFFF
Default: None
3 - Number of Bytes to display.
This parameter specifies the number of memory bytes to be displayed.
Type:
Range:
1 to 0xFFFFFFFF
Default: 0x200
4 - Options.
This parameter is a bit-significant value that selects the following options.
Bits 31-2: not used
Bit 1: Disable Validation of Memory Address
If this bit is cleared, the memory address will be validated. If this bit
is set, the input memory address will be used without checking with the
memory map.
Bit 0: Disable pause after each block displayed.
If this bit is cleared, the display will pause after each 512-byte block
Range:
0 to 0x00000003
Default: 0
5 - Number Of Bytes Per Memory Access.
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.
Type:
Range:
Default: 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following header will be displayed.
"Processor Memory at Addr cccccccc"
"Processor Memory at Addr cccccccc compared to dd hex"
or
where
cccccccc is the address of the first Processor Memory byte displayed
dd is the byte to which the displayed data was compared
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 half-words (2 bytes), the following
information will be displayed following the header.
" Addr
0
2
4
6
8
A
C
E"
"eeeeeeee ffff ffff ffff ffff ffff ffff ffff ffff" (repeated)
If the memory data is being displayed as words (4 bytes), the following information
will be displayed following the header.
" Addr
0
4
8
C"
"eeeeeeee ffffffff ffffffff ffffffff ffffffff" (repeated)
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:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Merge Alternate 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.
Quick Help:
"MergeAltListIntoSlipList, P";
Input Parameters:
None
Output Data:
The command's output is as follows.
F3 A>P
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Modify Track Defect List command modifies the defect list for the specified
sector(s).
Quick Help:
"ModTrkDfctLst, F[PSctr/LBA],[Action]";
Input Parameters:
0 - Physical Sector or LBA to Modify.
If Parameter 1 is A1, B1, C1, or F1, this value is an LBA.
If parameter 1 is some other value, this parameter is the physical sector number
of the block to be affected. The cylinder and head come from the current address.
Type:
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) .
Range:
0 to 0xFFFFFFFF
Default: 0x0C1
Output Data:
Examples:
Example #1:
To remove LBA 1234 from the alt list:
F3 2>F1234,f1
Revision History:
0001.0000 Initial Revision.
0002.0000 Remove 2>Fx,F; add Fx,F1 to unalt by sector.
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).
Description:
This command will read the specified range of tracks. It will determine how many
sectors fall into various ranges of retry counts.
Quick Help:
"OddEvenEncroachmentTest, T[strt tk],[end tk],[hd],[rtry thrshld][ECC thrshld";
Input Parameters:
0 - Start Logical Cylinder
This parameter specifies the first logical cylinder to be tested.
Type:
Range:
0 to 0xFFFFFFFF
Default: none
1 - End Logical Cylinder
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.
Type:
Range:
0 to 0xFFFFFFFF
Default: none
2 - Head
This parameter specifies logical head to test.
Type:
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.
Type:
Range:
0 to 0xFFFFFFFF
Default: 4
4 - Ecc Level Threshold
This parameter specifies how much ECC correction is done on the fly. This ECC level
defines the "no retries but corrected" retry bucket.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0xA
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
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
20 789
7
0
21 789
7
0
22 78C
4
0
23 78C
4
0
>3
0
0
0
0
Unreadable
0
0
0
0
F3 T>
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Added ECC level threshold
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).
Description:
This command is used to test the drive's ability to read offtrack.
Quick Help:
"OffTrackCapability, c[Sec],[NumSecs],[SecIncrement],[Offset]";
Input Parameters:
0 - Starting Sector
This input is to set the starting physical sector number.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
1 - Sector Count
This input is to set the number of sectors to test.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
2 - Sector Increment
This input specifies how much to increment the sector
number between each test.
Type:
Range:
0 to 0xFFFF
Default: None
3 - Offset to one side
This input specifies how far offtrack the test will start
and finish.
Type:
Range:
0 to 0x200
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
The following
each offset.
. -> Read
* -> Read
| -> Read
+ -> Read
The bottom line shows the average bathtub mid point, the average
greatest readable offset, and the average loweset readable offset.
F3 7>c1B,5,1,80
88889999AAAABBBBCCCCDDDDEEEEFFFF000011112222333344445555666677778
wedge log (phy) 048C048C048C048C048C048C048C048C048C048C048C048C048C048C048C048C0
107 001B(001B) ***.............................|.......................*********
107 001C(001C) **.*............................|.......................*.*******
0 001D(001D) ****............................|....................*.**********
0 001E(001E) ***.............................|......................**********
0 001F(001F) ******..........................|....................**.*********
Average FF8F 56 FFF3
FF8C
FF88
FF90
FF8C
FF98
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command performs the particle sweep operation. To perform particle sweep, a seek
5C
5C
50
58
50
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.
Quick Help:
"ParticleSweep, J[ Start Cyl ],[ End Cyl ],[ Duration mSec ],[ Dwell mSec ],[ JIT mode ]";
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.
Type:
Range:
0 to Maximum 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.
Type:
Range:
0 to Maximum 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.
Type:
Range:
0 to 0xFFFFFFFF
Range:
0 to 0xFFFFFFFF
RW_SEEK_SPEED_0
RW_SEEK_SPEED_1
RW_SEEK_SPEED_2
RW_SEEK_SPEED_3
Type:
Range:
0 to 0xFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If an error occurred, then the following will be displayed:
DiagError aaaaaaaa
where
aaaaaaaa is the diagnostic error code detected
If R/W status information is available upon completion of the diagnostic,
then the following will be displayed:
"Particle Sweep"
"R/W Status c, R/W Error dddddddd
where
c is the status that was returned by the R/W subsystem
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,6000,200
Example #3:
Error handling of an invalid cylinder entry:
F3 2>Jfffffff
DiagError
00003013
Revision History:
0001.0000
Initial revision.
Description:
If Diagnostic Mode is not currently enabled, this command pauses the Interface Task
and enables Diagnostic Mode.
Quick Help:
"PauseInterfaceTask";
Input Parameters:
None
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command pauses the output of a diagnostic command that is in progress. Entering
any character will cause the command output to continue.
Quick Help:
"PauseOutput";
Input Parameters:
None
Output Data:
None
Revision History:
0001.0000
Initial revision.
Description:
The Peek Memory Byte command reads and displays the specified byte (8-bits) of
processor memory.
Quick Help:
"PeekMemoryByte, +[AddrHi],[AddrLo],[Opts]";
Input Parameters:
0 - Memory Address or Memory Address High.
If parameter 1 is not entered, this parameter contains the 32-bit address
of the memory location to be read and displayed. If parameter 1 is entered,
this parameter contains the upper 16-bits of the address of the memory
location to be read and displayed.
Type:
Range:
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
Type:
Range:
0 to 0xffff
Range:
0 to 0x0001
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the memory data will be displayed as follows.
"Adr cccccccc ( dddddddd ) = ee"
where
cccccccc is the byte offset from the start of the memory
dddddddd is the processor address
ee is an 8-bit value written to or read from memory
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Peek Memory Word command reads and displays the specified word (16-bits) of
processor memory.
Quick Help:
"PeekMemoryWord, -[AddrHi],[AddrLo],[Opts]";
Input Parameters:
0 - Memory Address or Memory Address High.
If parameter 1 is not entered, this parameter contains the 32-bit address
of the memory location to be read and displayed. If parameter 1 is entered,
this parameter contains the upper 16-bits of the address of the memory
location to be read and displayed.
Type:
Range:
Range:
0 to 0xfffe
The specified address must be a multiple of 2.
Range:
0 to 0x0001
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the memory data will be displayed as follows.
"Adr cccccccc ( dddddddd ) = ffff"
where
cccccccc is the byte offset from the start of the memory
dddddddd is the processor address
ffff is a 16-bit value written to or read from memory
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Poke Memory Byte command writes the specified byte (8-bits) of processor
memory with the specified data.
Quick Help:
"PokeMemoryByte, =[AddrHi],[AddrLo],[Data],[Opts]";
Input Parameters:
0 - Memory Address or Memory Address High.
If parameter 2 is not entered, this parameter contains the 32-bit address
of the memory location to be written. If parameter 2 is entered, this
parameter contains the upper 16-bits of the address of the memory location
to be written.
Type:
Range:
Default: 0
1 - Memory Address Low or Memory Data.
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.
Type:
Range:
Default: 0
2 - Memory Data.
If entered, this parameter contains the 8-bit data with which the memory
location is to be written.
Type:
Range:
0 to 0xff
Default: None
Range:
0 to 0x0001
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the memory data will be displayed as follows.
"Adr cccccccc ( dddddddd ) = ee"
where
cccccccc is the byte offset from the start of the memory
dddddddd is the processor address
ee is an 8-bit value written to or read from memory
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"RdChs, R[Sec],[NumSecs],,[PhyOpt],[Opts]";
Input Parameters:
0 - Logical or Physical Sector Address.
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.
Type:
Range:
Default: 0
1 - Transfer Length.
This parameter specifies the number of consecutive sectors to read.
Type:
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.
If a Transfer Length is entered, it will be limited to the number of
sectors remaining on the track.
2 - not used.
Type:
None
Range:
None
Default: None
3 - Physical Sector Address Flag.
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.
Type:
Range:
0 to 0xFFFF
Default: None
4 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Bit 3:
not used.
Bit 2:
Bit 1:
Bit 0:
Continue On Error.
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.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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"
is
is
is
is
minutes
seconds
milliseconds
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
F3
F3
F3
2>A3
2>S44,0
2>L,5
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)
Note: An error message will be displayed for each sector in error.
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
2>A0
2>AF,5
2>S45,1
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:
0001.0000
0001.0001
0001.0002
0011.0000
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Moved the Enable Dynamic Sparing option from the parameter 2 to the bit 1 of
the parameter 4.
Added new Rotate Buffer Sector Offset option to the bit 2 of the parameter 4.
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).
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.
Quick Help:
"ReadCurrentServoDestination, R";
Input Parameters:
None.
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following will be displayed
AAAAAAAA DestinationTrackId Q0
BBBBBBBB DestinationPosition Q12
CCCCCCCC MrJogValue Q8
DDDDDDDD OffsetValueMrJog Q8
EEEEE.EEE Current Servo Destination
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).
CCCCCCCC is the total contribution of offset in servo counts that is computed by
servo to account for the read-to-write offsets. It is a Q8 number
(8 bits of fractional information).
DDDDDDDD is a diagnostic offset that is almost exclusively used by self-test to
perform microjog calibration. It's a Q8 number (8 bits of fractional information).
EEEEE.EEE the actual target track with fractional position information that servo
uses for its reference.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"RdLba, R[Lba],[NumLbas],,[Opts]";
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.
Type:
Range:
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.
If a Transfer Length is entered, it will be limited to the number of
LBAs remaining in the Test Space.
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.
Bits 15-6: not used.
Bit 5:
Bit 4:
Bit 3:
not used.
Bit 2:
Bit 1:
Bit 0:
Continue On Error.
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.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
or
is
is
is
is
minutes
seconds
milliseconds
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)
Note: An error message will be displayed for each LBA in error.
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
buffer sector offset by 1 and read a single LBA to the rotated sector
diagnostic read buffer
assumes user ran the Example #9 above right before this example,
LBA 51238 to the sector offset of 6 in the diagnostic read buffer)
F3 A>R51238,,,4
Revision History:
0001.0000
0001.0001
0001.0002
0001.0003
0011.0000
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Modified to read only the LBAs remaining on the track containing the
target LBA, if the LBA and Transfer Length are not entered by the user.
Added new Rotate Buffer Sector Offset option to the bit 2 of the parameter 3.
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).
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.
Quick Help:
"RdLongOrSystemChs, r[LongSec],[LongSecsOrSysSec],[SysSecs],[LongPhySecOpt],[LongOpts],[SysOpt
Input Parameters:
0 - Read Long Starting Logical or Physical Sector Address.
If this parameter is entered, a Read Long operation will be performed starting
at the sector address specified by this parameter. If any value is entered for
Parameter 3, this parameter contains a physical sector address, else it contains
a User Area logical sector address.
If this parameter is not entered, a System Area Read operation will be performed.
Type:
Range:
Default: none
1 - Read Long Transfer Length / System Area Read Starting Logical Sector Address.
If Parameter 0 is entered, this parameter is the number of consecutive sectors
to read long.
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.
Type:
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 a Transfer Length is entered, it will be limited to the number of
sectors remaining on the track.
3 - Read Long Physical Sector Address Flag.
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.
If Parameter 0 is not entered, then this parameter is not used.
Type:
Range:
0 to 0xFFFF
Default: None
4 - Read Long Options.
If Parameter 0 is not entered, this parameter is not used.
If Parameter 0 is entered, this parameter is a bit-significant value that specifies
the following options for a Read Long operation.
Bits 15-1: not used.
Bit 0:
Type:
Range:
0 to 0xFFFF
Bit 3:
not used.
Bit 2:
Bit 1:
Bit 0:
Continue On Error.
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.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
iiiiii is the Physical Cylinder Address of the sector in error
j is the Logical Head Address of the sector in error
kkkk is the Physical Sector Address of the sector in error
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
vvvv is the starting Physical Sector Address
wwwwwwww is the starting Transfer Length
If Bit 4 is set, the Recovery Status will be displayed as follows.
"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
BBBBBB is the Logical Cylinder Address of the last recovered sector
C is the Logical Head Address of the last recovered sector
DDDD is the Logical Sector Address of the last recovered sector
EEEEEE is the Physical Cylinder Address of the last recovered sector
F is the Logical Head Address of the last recovered sector
GGGG is the Physical Sector Address of the last recovered sector
HHHH are the Recovery Flags reported by the Read/Write code
II is the Recovery Count reported by the Read/Write code
If Bit 5 is set, the Fault Status will be displayed as follows.
"Drive Fault Status JJJJ Preamp Fault Status KKKK"
where
JJJJ is the Drive Fault Status reported by the Read/Write code
KKKK is the Preamp Fault Status reported by the Read/Write code
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
b
c
d
is
is
is
is
minutes
seconds
milliseconds
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
F3
F3
F3
2>A3
2>S44,0,,,,1
2>L,5
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)
Note: An error message will be displayed for each sector in error.
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
2>A0
2>AF,5
2>S45,1,,,,1
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:
0001.0000
0001.0001
0001.0002
0011.0000
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Added new Rotate Buffer Sector Offset option to the bit 2 of the parameter 5.
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).
Description:
This command reads the specified adaptive parameters from non-volatile memory.
Quick Help:
Level 7
"RdNonVolatileAdaptiveParms, r[Opts]";
Level T
"RdNonVolatileAdaptiveParms, R[Opts]";
Input Parameters:
0 - Read Adaptive Parameter Options.
This parameter is a bit significant value that specifies which adaptive
Range:
0 to 0xffffffff,
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command reads and displays the contents from the specified register(s) from the
specified peripheral device.
Quick Help:
"RdPeripheralReg, t[OpType],[RegAddr],[NumRegs],[RegMask],[RegPagAddr]";
Input Parameters:
0 - Operation Type.
This parameter selects the type of peripheral device operation to be performed.
0 = Read Preamp Register
1 = Read Read Channel Register
Type:
Range:
0 or 1
Range:
0 to 0xFFFF
Default: 0
2 - Number of Registers to Read.
This parameter specifies the number of consecutive peripheral registers to read
and display.
Type:
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.
Type:
Range:
0 to 0xFFFF
Default: 0xFFFF
4 - Register Page Address.
This parameter specifies the page address of the peripheral register to be
read. If the peripheral registers do not have page address in its address
mode, this input parameter is not needed and its defaul value does not affect
the read from the peripheral register.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If a single Preamp register was read, the following information will be displayed.
"Preamp Reg cc = dd"
where
cc is the address of the register that was read
dd is the value that was read from the register
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
cc is the address of the first register in the row
dd is the value that was read from the register
If a single Read Channel register was read, the following information will be displayed.
"Read Channel Reg cccc = dddd"
where
cccc is the address of the register that was read
dddd is the value that was read from the register
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
cccc is the address of the first register in the row
dddd is the value that was read from the register
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Read Servo RAM at Address command reads and displays the data contained in the
specified Servo RAM locations.
Quick Help:
"RdServoRamAtAddr, R[Addr],[NumBytes]";
Input Parameters:
0 - Servo RAM Address.
This parameter specifies the address of the first servo RAM byte to be read.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
1 - Number of Bytes.
This parameter specifies the number of servo RAM bytes to be read and displayed.
Type:
Range:
Default: 2
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed.
"Servo Data RAM Addr cccccccc RAM Data dd"
"Servo Data RAM Addr cccccccc RAM Data eeee"
"Servo Data RAM Addr cccccccc RAM Data ffffffff"
or
or
where
cccccccc is the address of the first servo RAM byte that was read
dd is an 8-bit value that was read from servo RAM
eeee is a 16-bit value that was read from servo RAM
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"RdServoRamAtIndex, r[Index],[NumBytes],[ByteOffset]";
Input Parameters:
0 - Servo Symbol Table Index.
This parameter specifies the index of the Servo Symbol Table entry that contains
the base address of the Servo RAM location to be read.
Type:
Range:
0 to 0xFFFF
Default: None
1 - Number of Bytes.
This parameter specifies the number of servo RAM bytes to be read and displayed.
Type:
Range:
Default: 2
2 - Byte offset from base address.
This parameter is an optional byte offset which will be added to the address of the
servo RAM location to be read.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
Output Data:
or
or
where
cccccccc is the index of the Servo Symbol Table entry that contains the address
of the Servo RAM location to be read.
dd is an 8-bit value that was read from servo RAM
eeee is a 16-bit value that was read from servo RAM
ffffffff is a 32-bit value that was read from servo RAM
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Read Servo Symbol Table at Index command reads and displays the Servo Symbol Table
entry at the specified index.
Quick Help:
"RdServoSymbolTableAtIndex, i[Index]";
Input Parameters:
0 - Servo Symbol Table Index.
This parameter specifies the index of the Servo Symbol Table entry to be read.
Type:
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"RdSystemChs, r[LogSec],[NumSecs],[Opts]";
Input Parameters:
0 - System Area Logical Sector Address.
This parameter contains the System Area logical sector address of the first sector
to read.
Type:
Range:
Default: 0
1 - Transfer Length.
This parameter specifies the number of consecutive sectors to read.
Type:
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.
If a Transfer Length is entered, it will be limited to the number of
sectors remaining on the track.
2 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Bits 15-5: not used.
Bit 4:
Bit 3:
not used.
Bit 2:
Bit 1:
Bit 0:
Continue On Error.
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.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
or
is
is
is
is
minutes
seconds
milliseconds
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
F3
F3
F3
2>A0
2>S45,1,,,,1
2>/F
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
F3
F3
F3
2>A0
2>S45,1,,,,1
2>/F
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
F3
F3
F3
2>A0
2>S45,1,,,,1
2>/F
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
F3
F3
F3
F3
2>A3
2>S44,0,,,,1
2>/F
F>L,5
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)
Note: An error message will be displayed for each sector in error.
F3
F3
F3
F3
2>A0
2>S45,0,,,,1
2>/F
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
F3
F3
F3
F3
2>A0
2>AF,5
2>S45,1,,,,1
2>/F
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:
0001.0000
0001.0001
0001.0002
0011.0000
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Added new Rotate Buffer Sector Offset option to the bit 2 of the parameter 2.
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).
Description:
This command is used to either read the entire DDR data from DDR buffer, or unlock DDR
buffer to resume DDR data collection.
Quick Help:
"ReadUnlockDdrBuffer, B[OperateCode]";
Input Parameters:
0 - Operate code to determine if this is a read or unlock command
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.
Type: Unsigned 16-bit value
Range: 0 to 0xFFFF
Default: 0.
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
When this is an Unlock DDR Buffer command, the result is
DDR buffer is unlocked
When this is a Read Entire DDR Buffer command, the result is
DDR buffer locked: a
Total Revs:
bbbbb
Revs after Event: ccccc
Data per Servo:
ddddd
Servos per Rev:
eeeee
ffff gggg hhhh ...
...
xxxx yyyy zzzz ...
where
a is either 0 or 1. 0 means DDR buffer is not locked and 1 means DDR buffer is locked.
bbbbb is the total revs of data stored in DDR buffer (in decimal format)
ccccc is the revs of data after the DDR event (in decimal format)
ddddd is the number of DDR data per servo wedge (in decimal format)
eeeee is the number of servo wedges per rev (in decimal format)
ffff, gggg, hhhh, ... , xxxx, yyyy, and zzzz are autual DDR data (in hex format)
The DDR data are displayed in the way that all DDR data from the same servo
wedge are at the same line. So the total number of lines of actual DDR data =
Total Revs (bbbbb) * Servos per Rev (eeee).
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"RdVerifyChs, V[Sec],[NumSecs],[CompareBlk],[Opts]";
Input Parameters:
0 - Logical or Physical Sector Address.
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.
Type:
Range:
Default: 0
1 - Transfer Length.
This parameter specifies the number of consecutive sectors to read.
Type:
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.
If a Transfer Length is entered, it will be limited to the number of
sectors remaining on the track.
2 - Compare Buffer Block Number.
This parameter specifies the number of the buffer block that contains the data to be
compared to the data that is read.
Type:
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.
Bits 15-6: not used.
Bit 5:
Bit 4:
Bit 3:
not used.
Bit 2:
Bit 1:
Bit 0:
Continue On Error.
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.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
iiiiii is the Physical Cylinder Address of the sector in error
j is the Logical Head Address of the sector in error
kkkk is the Physical Sector Address of the sector in error
llllllll is the number of sectors remaining to be read or written
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.
Bit 0:
Bit 1:
Bit 2:
Bit 3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
vvvv is the starting Physical Sector Address
wwwwwwww is the starting Transfer Length
If Bit 4 is set, the Recovery Status will be displayed as follows.
"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
BBBBBB is the Logical Cylinder Address of the last recovered sector
C is the Logical Head Address of the last recovered sector
DDDD is the Logical Sector Address of the last recovered sector
EEEEEE is the Physical Cylinder Address of the last recovered sector
F is the Logical Head Address of the last recovered sector
GGGG is the Physical Sector Address of the last recovered sector
HHHH are the Recovery Flags reported by the Read/Write code
II is the Recovery Count reported by the Read/Write code
is
is
is
is
minutes
seconds
milliseconds
microseconds
or
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
F3
F3
F3
2>A3
2>S44,0
2>L,5
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
F3
F3
F3
2>A0
2>AF,5
2>S45,1
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:
0001.0000
0001.0001
0001.0002
0011.0000
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Added new Rotate Buffer Sector Offset option to the bit 2 of the parameter 3.
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).
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.
Quick Help:
Level 2
"RdWedge, j[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opts],[RegAddr0],...,[RegAddr
Level E
"RdWedge, C[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opts],[RegAddr0],...,[RegAddr
Input Parameters:
0 - Wedge Address.
This parameter specifies the address of the first wedge to be read.
Type:
Range:
Default: 0
1 - Transfer Length.
This parameter specifies the number of wedges to be read.
Type:
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.
If a Transfer Length is entered, it will be limited to the
number of wedges remaining on the track.
2 - Skipped Wedges.
This parameter specifies the number of wedges to skip after each wedge read.
Type:
Range:
0 to 0xFFFF
Range:
0 to 0xFFFFFFFF
Range:
0 to 0xFFFFFFFF
Range:
0 to 0xFFFF
Default: None
6 - Channel Register Address.
This parameter specifies the address of the 2nd Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
7 - Channel Register Address.
This parameter specifies the address of the 3rd Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
8 - Channel Register Address.
This parameter specifies the address of the 4th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
9 - Channel Register Address.
This parameter specifies the address of the 5th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
10 - Channel Register Address.
This parameter specifies the address of the 6th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
11 - Channel Register Address.
This parameter specifies the address of the 7th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
12 - Channel Register Address.
This parameter specifies the address of the 8th Read Channel register
to be read for data collection.
Type:
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.
Type:
Range:
0 to 0xFFFF
Default: None
14 - Channel Register Address.
This parameter specifies the address of the 10th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
15 - Channel Register Address.
This parameter specifies the address of the 11th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
16 - Channel Register Address.
This parameter specifies the address of the 12th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
17 - Channel Register Address.
This parameter specifies the address of the 13th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
18 - Channel Register Address.
This parameter specifies the address of the 14th Read Channel register
to be read for data collection.
Type:
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.
"
"
"
"
"
RegAddr
Min
Max
Mean
StdDev
aaaa
bbbbbbbb
cccccccc
dddddddd
eeeeee.ee
aaaa
bbbbbbbb
cccccccc
dddddddd
eeeeee.ee
aaaa
bbbbbbbb
cccccccc
dddddddd
eeeeee.ee
...
...
...
...
...
aaaa"
bbbbbbbb"
cccccccc"
ddddddddd"
eeeeee.ee"
where
aaaa is the address of the channel register that was read
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.
"Wedge ffff RegAddr gggg RegData hhhhhhhh Error ii"
where
ffff is the wedge address
gggg is the address of the channel register that was read
hhhhhhhh is the value read from the channel register
ii is the error that was logged for the wedge
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.
"Wedges with Sync Errors: jjjj jjjj jjjj ... jjjj"
where
jjjj is the address of a wedge with a sync error
"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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
iiiiii is the Physical Cylinder Address of the sector in error
j is the Logical Head Address of the sector in error
kkkk is the Physical Sector Address of the sector in error
llllllll is the number of sectors remaining to be read or written
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.
Bit 0:
Bit 1:
Bit 2:
Bit 3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
vvvv is the starting Physical Sector Address
wwwwwwww is the starting Transfer Length
If Bit 4 is set, the Recovery Status will be displayed as follows.
"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
BBBBBB is the Logical Cylinder Address of the last recovered sector
C is the Logical Head Address of the last recovered sector
DDDD is the Logical Sector Address of the last recovered sector
EEEEEE is the Physical Cylinder Address of the last recovered sector
F is the Logical Head Address of the last recovered sector
GGGG is the Physical Sector Address of the last recovered sector
HHHH are the Recovery Flags reported by the Read/Write code
II is the Recovery Count reported by the Read/Write code
If Bit 5 is set, the Fault Status will be displayed as follows.
is
is
is
is
minutes
seconds
milliseconds
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
F3
F3
F3
2>A3
2>S44,0
2>L,5
2>j
Example #5:
Revision History:
0001.0000
0001.0001
0002.0000
0011.0000
Initial revision.
Increase the number of channel registers for the data collection.
Added Continue on Sync Error and Formatted Wedge Read options.
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).
Description:
The Read Zap from Disc to Table command reads ZAP data from disc into ZAP table in Servo
ZAP Table.
Quick Help:
"RdZapFromDiscToTable, Z";
Input Parameters:
None
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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 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 seeks for the spefified length, reads/writes one sector at the target track, and
collects 3 words in the following order: Servo Loop Code, 16-bit PES, and Servo Unsafe
status. The collection is from the beginning of the seek until specified extra revs after
the head is settled. (Note: 2 extra 0FFFFh are added at the end of data collected).
Note: The high byte of this sub-command ID is used to determine if this is a read or
write seek. When the high byte is 1, it is a write seek. When the high byte is 0, it
Quick Help:
"RealTimeServoTrace, f[SubCmd],[SubCmdParm0],[SubCmdParm1]";
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 hugh byte is used to determine operation type that will be
perform before collecting servo data.
0 = PES Collection
2 = Seek Profile (High byte value of 1 means a write seek and high byte value
of 0 means a read seek. So 3>f102 is a write seek and 3>f2 is a read seek)
3 = Write And Collect Servo Data
Type:
Unsigned 16-bit value
Range:
0 to 0xFFFF
Default: 0
If Parameter 0's low byte is equal to 0 (PES Collection)
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.
Type:
Range:
0 to 0xffff
Default: 100
If Parameter 0's low byte is equal to 2 (Seek Profile)
1 - Seek Length
This parameter specifies the seek length for the seek operation.
Type:
Range:
0x80000000 to 0x7fffffff
Default: 0
2 - Number of extra revs to be collected after the head is settled
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.
Type:
Range:
0x0000 to 0xffff
Default: 3
Output Data:
The following data will be displayed:
[[[xxxxxxxx...]]]
Where:
xx is a continuous stream of binary data.
and closing brackets.
Revision History:
0001.0000
0011.0000
0012.0000
Initial revision.
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).
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).
Description:
If the Interface Task was previously paused by the Online Control S command, this
command resumes execution of the Interface Task.
Quick Help:
"ResumeInterfaceTask";
Input Parameters:
None
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"RunBatchFile, B[BatchFileNum],[DisplayOpt]";
Input Parameters:
0 - Batch File Number.
This parameter specifies the number of the Batch File to be executed.
Type:
Range:
0 to 0xFF
Default: 0
1 - Options Mask.
This parameter is a bit significant value that selects the following options:
0x08 Continue Predefined Batch File Sequence On Failure.
Continue executing the predefined batch file sequence when a
failure occurs.
0x04 Run Predefined Batch File Sequence.
Starting with the predefined batch file specified by Parameter 0,
execute the predefined batch files in sequence. If Parameter 0
is not entered, start with the first predefined batch file and
execute all of the predefined batch files in sequence.
0x02 Single Step.
Execute the batch file one command at a time, pausing and waiting
for a character to be input between commands.
0x01 Display Batch File Commands.
Type:
Range:
0 to 0x01
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command reads or writes the specified Power ASIC registers.
Quick Help:
"RwPowerAsicReg, V[RegAddr],[RegValue],[WrOpt]";
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.
Type:
Range:
0 to 0xFF
Range:
0 to 0xFFFFFFFF
Default: None
2 - Write Register Valid Command Key.
For register writes, this parameter must be equal to 1. This parameter is not
used for register reads.
Type:
Range:
0 to 0xFF
Default: None
Output Data:
If a single Power ASIC register was read, the following information will be displayed.
"Power ASIC Reg cc = dddd"
where
cc is the address of the register that was read
dddd is the value that was read from the register
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:
0001.0000
0011.0000
Initial revision.
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).
Description:
The SATA Debug command executes the specified SATA Debug function for SPI SSIP.
Input Parameters:
0 - Sub-command ID.
This parameter specifies the ID of the SATA Debug sub-command to be executed.
0 = Peek/Poke SATA registers
1 = Dump SATA registers
2 = Toggle Phy
3 = Send ALIGN pattern
4 = Send High Frequency (D10.2) pattern
5 = Send Mid Frequency (D24.3) pattern
6 = Send Lone Bit pattern
7 = Send Low Frequency (K28.7) pattern
8 = Send User Specified pattern
9 = Send PRBS pattern
A = Enable PRBS checker and watch the results
(Note: This sub-command never returns.)
B = Toggle TX SSC
C = Wait for OOB
D = Toggle speed
E = Set OOB Chirp style
F = Enable Test Muxes
10 = Phy Power Mode
11 = Loopback Mode
Type:
Range:
0 to 0xFFFF
Default: None
If Parameter 0 is equal to 0 (Peek / Poke SATA Registers)
1 - not used.
In the Super10 code this parameter selected the register group (Normal SATA
registers or SSPI registers) to be read or written. In the Super10 Yuma
architecture these registers shared the same address space and a page bit
determined which registers were being accessed. In the Delta architecture
each register group has its own, unique address space, so this parameter is
no longer needed.
Type:
NA
Range:
NA
Default: NA
2 - Register Offset.
This parameter specifies the byte offset from the start of the SATA registers
to the register to be read or written.
Type:
Range:
0 to 0xffffffff
Default: None
3 - Register Data.
This parameter specifies the data to be written to the specified register. If
this parameter is not entered, the register will be read and its value displayed.
Type:
Range:
0 to 0xffff
Default: None
If Parameter 0 is equal to 8 (Send User Pattern)
1 - Pattern.
This parameter specifies the 16-bit pattern to be sent.
Type:
Range:
0 to 0xffff
Default: None
If Parameter 0 is equal to 0xE (Set OOB Type)
1 - OOB Type.
This parameter specifies the OOB Type to be set.
1
2
3
4
=
=
=
=
Normal ALIGN
Normal D24.3
Bit Doubled ALIGN
Bit Doubled D24.3
Type:
Range:
1 to 4
Default: None
Output Data:
If Parameter 0 is equal to 0 (Peek / Poke SATA Registers)
If no error occurred and the SATA register was read, the following information will
be displayed.
"
where
cccc is the offset of the SATA register that was read
dddddddd is the address of the SATA register that was read
eeee is the register value
If no error occurred and the SATA register was written, the following information
will be displayed.
"
where
gggg is the offset of the register that was written
hhhhhhhh is the address of the register that was written
iiii is the value read from the register before it was written
jjjj the value with which the register was written
llll is the value read from the register after it was written
If Parameter 0 is equal to 1 (Dump SATA registers)
(Send
(Send
(Send
(Send
(Send
(Send
(Send
or
or
ALIGN pattern) or
High Frequency pattern) or
Mid Frequency pattern) or
Lone Bit pattern) or
Low Frequency pattern) or
User Specified pattern) or
PRBS pattern)
or
or
or
or
or
or
(repeated)
where
ccccc is the number of times the Error Count saturated and was reset to zero
and a '*' is output for each error that is detected.
If Parameter 0 is equal to B (Toggle TX SSC)
If no error occurred, the following information will be displayed.
"Enable SSC"
"Disable SSC"
or
and
and
and
and
and
and
/
/
/
/
/
or
or
or
or
or
or
or
or
or
or
Else
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The SATA Debug command executes the specified SATA Debug function for the Athos MiPhy365.
Input Parameters:
0 - Sub-command ID.
This parameter specifies the ID of the SATA Debug sub-command to be executed.
0 = Peek/Poke SATA registers
1 = Dump SATA registers
2 = Toggle Phy
3 = Send ALIGN pattern
4 = Send High Frequency (D10.2) pattern
5 = Send Mid Frequency (D24.3) pattern
6 = Send Lone Bit pattern
7 = Send Low Frequency (K28.7) pattern
8 = Send User Specified pattern
9 = Send PRBS pattern
A = Enable PRBS checker and watch the results
(Note: This sub-command never returns.)
B = Toggle TX SSC
C = Wait for OOB
D = Toggle speed
E = Set OOB Chirp style
Range:
0 to 0xFFFF
Default: None
If Parameter 0 is equal to 0 (Peek / Poke SATA Registers)
0 - Peek/Poke SATA registers sub-command (0)
Type:
Range:
Default: None
1 - Register group
In the Super10 code this parameter selected the register group (Normal SATA
registers or SSPI registers) to be read or written. In the Super10 Yuma
architecture these registers shared the same address space and a page bit
determined which registers were being accessed. In the Delta architecture
each register group has its own, unique address space, so this parameter is
no longer needed.
Type:
Unsigned 16 bit
Range:
1 - 2
Default: NA
2 - Register Offset.
This parameter specifies the byte offset from the start of the SATA registers
to the register to be read or written.
Type:
Range:
0 to 0xffffffff
Default: None
3 - Register Data.
This parameter specifies the data to be written to the specified register. If
this parameter is not entered, the register will be read and its value displayed.
Type:
Range:
0 to 0xffff
Default: None
Range:
Default: None
1 - Pattern.
This parameter specifies the 16-bit pattern to be sent.
Type:
Range:
0 to 0xffff
Default: None
If Parameter 0 is equal to 0xE (Set OOB Type)
0 - Set OOB Chirp style sub-command (0xE)
Type:
Range:
0xE
Default: None
1 - OOB Type.
This parameter specifies the OOB Type to be set.
1
2
3
4
=
=
=
=
Normal ALIGN
Normal D24.3
Bit Doubled ALIGN
Bit Doubled D24.3
Type:
Range:
1 to 4
Default: None
Output Data:
If Parameter 0 is equal to 0 (Peek / Poke SATA Registers)
If no error occurred and the SATA register was read, the following information will
be displayed.
"
"
where
SATA/Phy is the type of the SATA register that was read
dddddddd or dddd is the address of the SATA or Phy register that was read
where
gggg or gg is the offset of the register that was written
hhhhhhhh or hhhh is the address of the register that was written
iiii or ii is the value read from the register before it was written
jjjj or jj the value with which the register was written
llll or ll is the value read from the register after it was written
If Parameter 0 is equal to 1 (Dump SATA registers)
If no error occurred, the following information will be displayed.
"ATA registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
"SATA SSIP registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
"SATA Vis Mux registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
"SATA Core TXB registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
"SATA Core TXW registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
"SATA Core TXWB registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
"SATA Core Test registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
where
cccc is the address of the first register in the row
dddd is the register value
If Parameter 0 is equal to 2 (Toggle Phy)
If no error occurred, the following information will be displayed.
"Phy Disabled"
"Phy Enabled - force from initial"
"Invalid Phy State"
or
or
4
5
6
7
8
9
(Send
(Send
(Send
(Send
(Send
(Send
or
or
or
or
or
or
(repeated)
where
ccccc is the number of times the Error Count saturated and was reset to zero
and a '*' is output for each error that is detected.
If Parameter 0 is equal to B (Toggle TX SSC)
If no error occurred, the following information will be displayed.
"Enable SSC"
"Disable SSC"
or
and
and / or
and / or
"COMRESET detected"
"Waiting for COMWAKE"
"COMWAKE detected"
"Invalid OOB State"
and / or
and / or
and / or
or
or
or
or
or
Else
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The SATA Debug command executes the specified SATA Debug function for the Athos
Shanghai 390.
Input Parameters:
0 - Sub-command ID.
This parameter specifies the ID of the SATA Debug sub-command to be executed.
0 = Peek/Poke SATA registers
1 = Dump SATA registers
2 = Toggle Phy
Range:
0 to 0xFFFF
Default: None
If Parameter 0 is equal to 0 (Peek / Poke SATA Registers)
0 - Peek/Poke SATA registers sub-command (0)
Type:
Range:
Default: None
1 - Register group
In the Super10 code this parameter selected the register group (Normal SATA
registers or SSPI registers) to be read or written. In the Super10 Yuma
architecture these registers shared the same address space and a page bit
determined which registers were being accessed. In the Delta architecture
each register group has its own, unique address space, so this parameter is
no longer needed.
Type:
Unsigned 16 bit
Range:
1 - 2
Default: NA
2 - Register Offset.
This parameter specifies the byte offset from the start of the SATA registers
to the register to be read or written.
Type:
Range:
0 to 0xffffffff
Default: None
3 - Register Data.
This parameter specifies the data to be written to the specified register. If
this parameter is not entered, the register will be read and its value displayed.
Type:
Range:
0 to 0xffff
Default: None
If Parameter 0 is equal to 8 (Send User Pattern)
0 - Send User Specified pattern sub-command (8)
Type:
Range:
Default: None
1 - Pattern.
This parameter specifies the 16-bit pattern to be sent.
Type:
Range:
0 to 0xffff
Default: None
If Parameter 0 is equal to 0xE (Set OOB Type)
0 - Set OOB Chirp style sub-command (0xE)
Type:
Range:
0xE
Default: None
1 - OOB Type.
This parameter specifies the OOB Type to be set.
1
2
3
4
=
=
=
=
Normal ALIGN
Normal D24.3
Bit Doubled ALIGN
Bit Doubled D24.3
Type:
Range:
1 to 4
Default: None
Output Data:
If Parameter 0 is equal to 0 (Peek / Poke SATA Registers)
If no error occurred and the SATA register was read, the following information will
be displayed.
"
"
where
SATA/Phy is the type of the SATA register that was read
dddddddd or dddd is the address of the SATA or Phy register that was read
eeee or ee is the register value
If no error occurred and the SATA register was written, the following information
will be displayed.
"
"
where
gggg or gg is the offset of the register that was written
hhhhhhhh or hhhh is the address of the register that was written
iiii or ii is the value read from the register before it was written
jjjj or jj the value with which the register was written
llll or ll is the value read from the register after it was written
If Parameter 0 is equal to 1 (Dump SATA registers)
If no error occurred, the following information will be displayed.
"ATA registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
"SATA SSIP registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
"SATA Vis Mux registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
"SATA Core TXB registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
"SATA Core TXW registers"
"cccc: dddd dddd dddd ... dddd" (repeated)
(Send
(Send
(Send
(Send
(Send
(Send
(Send
or
or
ALIGN pattern) or
High Frequency pattern) or
Mid Frequency pattern) or
Lone Bit pattern) or
Low Frequency pattern) or
User Specified pattern) or
PRBS pattern)
or
or
or
or
or
or
(repeated)
where
ccccc is the number of times the Error Count saturated and was reset to zero
and a '*' is output for each error that is detected.
If Parameter 0 is equal to B (Toggle TX SSC)
If no error occurred, the following information will be displayed.
"Enable SSC"
"Disable SSC"
or
and
and
and
and
and
and
/
/
/
/
/
or
or
or
or
or
or
or
or
or
or
Else
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Save Adaptives To Flash command writes the adaptives currently in memory to flash.
This command takes about 10 seconds to complete.
Quick Help:
"SaveAdaptivesToFlash, w[Seg],,22";
"SaveAdaptivesToFlash, W[Seg],,22";
Input Parameters:
0 - Which adaptive set to save
This parameter specifies which adaptives set to save.
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.
0
1
2
3
CAP
SAP
RAP
IAP
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
1 - Not used.
2 - Valid Command Key.
This value must be 0x22 for the command to execute.
Range:
0x22
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Examples:
Example #1:
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Add valid command key protection.
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).
Description:
This command scans the target track for servo defects and ZAPs.
Quick Help:
"ScanTrackForServoDefectsAndZap, l[RdPositionOpt]";
Input Parameters:
0 - Scan at Read Position option.
If this parameter is entered, the scan will be performed at the read position,
else the scan will be performed at the write position.
Type:
Range:
0 to 0xFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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:
1) Seek to specified 1st ( minimum cyl addr , OD ) cylinder, then to specified
2nd ( maximum cyl addr , ID ) cylinder.
2) Repeat Steps 1) until test duration or desired number
seeks is complete.
Quick Help:
"SeekFromCylToCyl, O[StartPhyCyl0],[StartPhyCyl1],[NumSkPairs],[NumSeconds],[Hd]";
Input Parameters:
0 - Starting first Physical cylinder of seek
Expected to be OD-most bound, but code functions correctly with either OD or ID .
Type:
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:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"SkToLba, S[LbaHi],[LbaLo],[Offset],[OffsetUnitsOpt],[SkType],[Options]";
Input Parameters:
0 - LBA or LBA High.
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.
If Parameter 4 is entered, then the specified LBA is located in the System
Area, else it's located in the User Area.
Type:
Range:
Range:
0 to 0xffff
Range:
0x8000 to 0x7FFF
of tracking
0, the specified
Parameter 3 is
data track width.
Default: 0
3 - 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.
Type:
Range:
0 or 1
Range:
0 to 0xFF
5 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Bits 15-2: not used.
Bit 1:
Bit 0:
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
dddddddd is the error code returned by the R/W subsystem
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.
Bit 0:
Bit 1:
Bit 2:
Bit 3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
Enables
NA
Enables
Enables
NA
NA
Enables
NA
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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.
"Elapsed Time a mins b secs" or
"Elapsed Time b.c secs"
or
"Elapsed Time c.d msecs"
where
a
b
c
d
is
is
is
is
minutes
seconds
milliseconds
microseconds
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).
Hexadecimal output.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"SkToLogCyl, S[Cyl],[Hd],[Offset],[OffsetUnitsOpt],[SkType],[Options]";
Input Parameters:
0 - Logical Cylinder Address.
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:
Range:
0 to 0xFFFFFFFF
Default: None
1 - Logical Head Address.
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.
Type:
Range:
0 to 0xFF
Default: None
2 - Track Follow Offset value.
This parameter is a signed 16-bit number representing the amount
offset to apply in the servo system. If Parameter 3 is equal to
offset will be in units of 1/256th of the servo track width. If
equal to 1, the specified offset will be in units of 0.1% of the
Type:
of tracking
0, the specified
Parameter 3 is
data track width.
Range:
0x8000 to 0x7FFF
Default: 0
3 - 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.
Type:
Range:
0 or 1
Range:
0 to 0xFF
Bit 1:
Bit 0:
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
dddddddd is the error code returned by the R/W subsystem
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.
Bit 0:
Bit 1:
Bit 2:
Bit 3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
Enables
NA
Enables
Enables
NA
NA
Enables
NA
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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.
"Elapsed Time a mins b secs" or
"Elapsed Time b.c secs"
or
"Elapsed Time c.d msecs"
where
a
b
c
d
is
is
is
is
minutes
seconds
milliseconds
microseconds
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
Revision History:
0001.0000
0001.0001
0011.0000
Initial revision.
Changed the parameters to allow some fine output control. Added a new
parameter to allow the output of the data track width of the destination
track, in Q14 servo counts.
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).
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.
Quick Help:
"SkToPhyCyl, s[Cyl],[Hd],[ValidKey],[Offset],[OffsetUnitsOpt],[SkType],[Options]";
Input Parameters:
0 - Physical Cylinder Address.
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
Range:
0 to 0xFFFFFFFF
Default: None
1 - Logical Head Address.
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.
Type:
Range:
0 to 0xFF
Default: None
2 - Valid Command Key.
This parameter must be equal to 22 Hex.
Type:
Range:
0x22
Default: None
3 - Track Follow Offset value.
This parameter is a signed 16-bit number representing the amount
offset to apply in the servo system. If Parameter 4 is equal to
offset will be in units of 1/256th of the servo track width. If
equal to 1, the specified offset will be in units of 0.1% of the
Type:
Range:
0x8000 to 0x7FFF
of tracking
0, the specified
Parameter 4 is
data track width.
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.
Type:
Range:
0 or 1
Range:
0 to 0xFF
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
dddddddd is the error code returned by the R/W subsystem
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.
Bit 0:
Bit 1:
Bit 2:
Bit 3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
Enables
NA
Enables
Enables
NA
NA
Enables
NA
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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.
"Elapsed Time a mins b secs" or
"Elapsed Time b.c secs"
or
"Elapsed Time c.d msecs"
where
a
b
c
d
is
is
is
is
minutes
seconds
milliseconds
microseconds
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).
Hexadecimal output.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command selects the specified Data Output Mode.
Quick Help:
"SelectDataOutputMode, O[Mode],[VerboseOpts]";
Input Parameters:
0 - Data Output Mode.
This parameter specifies the data output mode to be selected.
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.
2 = Raw ASCII Mode. This function outputs an ASCII representation of the
raw data returned in the status packets by the diagnostic functions.
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.
Type:
Range:
0 to 5
disables the outputting of the verbose mode data associated with the bit. The
data that is enabled or disabled by each bit is unique to each command and is
described in the command's data output section.
Type:
Range:
0 to 0xffffffff
Output Data:
Displays the Data Output Mode that is selected.
Revision History:
0001.0000
Initial revision.
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.
Quick Help:
"SelectHd, H[Hd],[SkType],[Options]";
Input Parameters:
0 - Logical Head Address.
If entered, this parameter is the address of the logical head to be selected.
If Parameter 0 is not entered, the next logical head in the Test Space will be
selected.
Type:
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.
0 = Seek to the read track follow position
1 = Seek to the write track follow position
2 = Seek to the write header track follow position
Type:
Range:
0 to 0xFF
following options.
Bits 15-1: not used.
Bit 0:
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
dddddddd is the error code returned by the R/W subsystem
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.
Bit
Bit
Bit
Bit
0:
1:
2:
3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
NA
NA
Enables the Elapsed Time to be displayed
NA
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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.
"Elapsed Time a mins b secs" or
"Elapsed Time b.c secs"
or
"Elapsed Time c.d msecs"
where
a
b
c
d
is
is
is
is
minutes
seconds
milliseconds
microseconds
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"SelectServoController, G[Head],[Controller],[InputShift]";
Input Parameters:
If no parameters are entered, then the command will display the current "controller"
for all heads. Then the current "input shift" will be displayed.
0 - Head
This parameter specifies the head or heads to select the servo controller.
If only parameter 0 is specified:
The command will display the current "controller" selection for the specified head.
Then the "input shift" will be displayed.
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.
If parameter 0 is NOT specified
but either or both parameter 1 and parameter 2 are specified:
All the current "controller" are changed to the specified values for all heads and/or
the "input shift" will be changed to the specified value.
The command will then display the current "controller" for all heads.
Then the "input shift" will be displayed.
Other combinations are invalid.
Type:
Range:
0 .. Max Head
Default: None
1 - Controller
This parameter specifies the servo controller to be used.
Type:
Range:
Defined by Servo
Default: None
2 - Controller Input Shift
This parameter specifies the Conroller Input Shift
Type:
Range:
Defined by Servo
Default: None
Output Data:
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Servo Batch Test command executes the specified servo batch tests
function.
Quick Help:
"ServoBatchTest, U[SubCmd],[SubCmdParm0],[SubCmdParm1],[SubCmdParm2]";
Input Parameters:
0 - Sub-command ID.
This parameter specifies the sub-command ID of the Servo Batch Test command
to be executed.
100D = Plot PES on Screen
Type:
Range:
0 to 0xFFFF
Default: None
If Parameter 0 is equal to 100D (Plot PES on Screen)
0 - Plot PES on Screen sub-command ID (100D)
Type:
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.
Type:
Range:
0 to 0xffff
Default: 100
2 - Revs to collect for NRRO calculation.
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.
Type:
Range:
0 to 0xffff
Default: 100
Output Data:
If Parameter 0 is equal to 100D (Plot PES on Screen)
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Track number, Write Fault Threshold, PES plot, RRO 3 Sigma, and NRRO 3 Sigma are
displayed with the following format:
01000.0, WFT 333 (+1.9E+1 %)
000 FEF2 0060 013A
<
001 FF10 FFE7 00BE
<
002 FF08 FFDB 00BC
<
003 FED7 FFBF 00D0
<
004 FE8C FF97 00E0
<
005 FE75 FF87 0153
<
......
(Repeat for every servo sector)
3 sigma RRO = +4.92E-0 % track
3 sigma NRRO = +7.08E-0 % track
| *
+
*
+
*|
+
* |
+
* |
+
* |
+
>
>
>
>
>
>
**End
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
The measurement will be done at the current servo position.
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.
Quick Help:
"Servo Bode Plot, B[BodeType],[InjAmp],[Fmin],[Fmax],[NumFreq],[NumSamples],[EnableTracing]";
Input Parameters:
0 - Select the Bode measurement type.
Parameter 0 is used to specify the type of servo bode measuement to be done.
Note: for the following measurements, Signal1 is the 'output', Signal2 is the 'input',
and the transfer function is output/input = Signal1/Signal2.
If 0, then the diagnostic will be configured for an open-loop bode measurement,
using vcm current disturbance.
Signal1:
i16_Current2,
Signal2:
i16_Current2Out,
Injection: i16_TrackingVcmDisturbanceCurrent
If 1, then the diagnostic will be configured for a closed-loop bode measurement,
using vcm current disturbance.
Signal1:
i16_Current2,
Signal2:
i16_TrackingVcmDisturbanceCurrent,
Injection: i16_TrackingVcmDisturbanceCurrent
If 2, then the diagnostic will be configured for a structrual bode measurement,
using vcm current disturbance.
Signal1:
i16_DemodPositionError,
Signal2:
i16_Current2Out,
Injection: i16_TrackingVcmDisturbanceCurrent
If 3, then the diagnostic will be configured for an open-loop bode measurement,
using position disturbance.
Signal1:
i16_DemodPositionMeasurementIn,
Signal2:
i16_DemodPositionMeasurementOut,
Injection: i16_TrackingDemodDisturbancePosition
If 4, then the
using position
Signal1:
Signal2:
Injection:
Type:
Hexadecimal value
Range:
Range:
Default: 400
2 - Set the lowest frequency to be measured.
Parameter 2 specifies lowest frequency in Hertz to be used for the servo bode
measurement.
Type:
Range:
Default: 10 Hz
3 - Set the highest frequency to be measured.
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.
Type:
Range:
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.
Type:
Hexadecimal value
Range:
0 or 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred the bode type will be displayed.
example:
OPEN LOOP - POSITION DISTURBANCE
Then the frequency response data will be displayed in floating-point format.
Freq
A
Re1
B
Im1
C
Re2
D
Im2
E
where:
A
B
C
D
E
represents
represents
represents
represents
represents
the
the
the
the
the
measurement frequency
REAL component of the
IMAG component of the
REAL component of the
IMAG component of the
in Hertz.
frequency
frequency
frequency
frequency
in
in
in
in
Signal
Signal
Signal
Signal
1
1
2
2
Examples:
The following command will measure the open loop frequency response using the
defaults parameters.
B
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.
B3,100,2000,3000,50,5000
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.
B,,5000,5010,1,264,1
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"ServoDiagSubCmds, C[SubCmd],[Parm0],[Parm1],[Parm2]";
Input Parameters:
0 - Servo Diag Sub command ID.
This parameter specifies the ID of the servo diag sub command to be executed
05h
08h
0Ch
15h
=
=
=
=
Type:
Range:
0 to 0xFFFF
Default: None
Set Seek Delay command 8>C05 (Parameter 0 is 05h)
Input Parameters:
0 - Level 8 C command's Set Seek Delay sub-command ID (05h)
Type:
Range:
05h
Default: None
1 - Seek Delay in the format of servo sectors
This parameter specifies the new seek delay. If this
parameter is not entered, then the seek delay is not going
to be changed
Type:
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.
Type:
Range:
0 to 0xffff
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
The following will be displayed
Delay between xxxx settle seeks = yyyy servo sectors
zzzz Seeks Enabled
where
xxxx is either slow or fast
yyyy is the seek delay number in servo sectors
zzzz is either Logical or Physical
Random Seeks command 8>C08 (Parameter 0 is 08h)
Input Parameters:
1 - Random Head Only Indicator
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.
Type:
Range:
0 to 0xffff
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, seek average time is displayed with the following format:
-Average = xxx.yyy msecsNote: The beginning and ending chars are rotating all the time to reflect the
fact that the command is running
Seek Between 2 Physical Cylinders command 8>C0C (Parameter 0 is 0Ch)
Input Parameters:
1 - First physical cylinder to be seeked. When this parameter is not entered,
the minimum physical cylinder at the current head is used.
Type:
Range:
0 to 0xffffffff
Range:
0 to 0xffffffff
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, seek average time is displayed with the following format:
-Average = xxx.yyy msecsNote: The beginning and ending chars are rotating all the time to reflect the
fact that the command is running
Change Write Threshold command 8>C15 (Parameter 0 is 15h)
Input Parameters:
1 - Position Threshold
This parameter specifies the new position write threshold. If this
parameter is not entered, then position write threshold is not going
to be changed
Type:
Range:
0 to 0xffff
Default: None
2 - Velocity Threshold (Not supported yet by servo)
This parameter specifies the new velocity write threshold. If this
parameter is not entered, then velocity write threshold is not going
to be changed
Type:
Range:
0 to 0xffff
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following will be displayed
Head XThresh VThresh
00
XXXX
VVVV
01
XXXX
VVVV
...
where
XXXX is the position write threshold
VVVV is the velocity write threshold
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Set Baud Rate command sets the serial port baud rate to the specified value.
Quick Help:
Level T
"SetBaudRate, B[BaudRate],[MsecDelay]";
Level F
"SetBaudRate, b[BaudRate],[MsecDelay]";
Input Parameters:
0 - Desired Baud Rate.
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.
Type:
Decimal value
Range:
0 to 9999999
Default: 38400
1 - Delay Time in Milliseconds.
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.
Type:
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:
0001.0000
0011.0000
Initial revision.
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).
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).
Quick Help:
"BufferSetPattern, P[PatternSelOrPatternLow],[PatternHi],[PatternBits],[Opts],[BlkNum],[NumBlk
Input Parameters:
0 - Select Pre-Defined Data Pattern or Data Pattern Low.
If Parameter 3 bit 1 is cleared, the value of Parameter 0 will first be checked
to determine if it selects any of the following pre-defined patterns and only
if no match is found with any of the pre-defined patterns, will Parameter 0 be
interpreted as the data pattern low.
0x1111 = Incrementing Pattern.
Each buffer block will be filled with a 16-bit value containing
its block offset relative to the first block filled.
0x1212 = Random Pattern.
The buffer will be filled with random data.
0x1313 = Alternating Pattern.
The number of buffer blocks to be filled will be divided in half and
the first group of blocks will be filled with 0x1313 and the second
group of blocks will be filled with random data.
0x1414 = Isolated Pulse Pattern.
00010111
01110011
00101000
11110010
01011011
11011010
11011100
11001001
00000110
00010101
01111111
0000001
(13
(6A
(7D
(0E
17
73
28
F2
5B
DA
DC
C9
06
15
7F
02
hex)
hex)
hex)
hex)
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
01010110
10111110
01110000
11101000
11001110
00010100
01001111
11011010
01011011
00111011
10010011
01100000
10101000
11111110
01000000
(C8
(56
(BE
(70
E8
CE
14
4F
DA
5B
3B
93
60
A8
FE
40
hex)
hex)
hex)
hex)
Range:
0 to 0xffff,
Range:
0 to 0xffffffffffffffffffffffffffffffff
Default: 0
2 - Data Pattern Bits.
This parameter specifies the length, in bits, of the fill pattern specified by
parameters 0 and 1.
Type:
Range:
0 to 0x80
Type:
Range:
0 to 0xFFFFFFFF
Range:
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
aaaaaaaa is the Diagnostic Error Code
Examples:
The following commands will load the Diagnostic Write Buffer with pre-defined patterns:
F3
F3
F3
F3
F3
F3
F3
2>P1111
2>P1212
2>P1313
2>P1414
2>P1515
2>P1616
2>P1717
The following commands will load the Diagnostic Write Buffer with user defined patterns:
F3
F3
F3
F3
2>P1818,01020304050607080910111213141516,80
2>P0304,0102
2>P4,,3
2>P1111,,10,1
(User
(User
(User
(User
The following commands will load the specified buffer blocks with a user defined pattern:
F3 2>P0304,0102,,,D5C,4 (Buffer Blocks D5C-D5F with user 32-bit pattern 0x01020304)
Revision History:
0001.0000
0001.0001
0011.0000
Initial revision.
Added support for 6T pattern and user specified 16-byte pattern.
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).
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 references are provided through parameter names entered as double-quote-delimited strings.
Some known quirkiness:
1) YASPP is fickle about double quotes when using the arrow-up and arrow-down keys. Sometimes it will mysteriously remove the quote characters, the single character command,
or both while perusing the command history.
2) The even number requirement has been fixed. When specifying a byte offset, you may now
use an odd number of characters to specify the offset.
WARNING! Using byte offset references to modify Congen parameters must be done thoughtfully. 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.
Quick Help:
"SetCongenParmCmdHelpMsg, F[ValueRef],[Data],[ResetEnable]";
Input Parameters:
0 - Congen Value Reference.
This parameter references the Congen value to be modified using a quote-delimited
string (double quotes) or using a hex value.
Type:
Range:
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.
Type:
Range:
Default: If this parameter is not entered, then the Congen value associated with
parameter 0 will be displayed.
2 - Reset Congen Info Enable.
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.
Type:
Hex number
Range:
Default: None.
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred and Parameter 0 is not entered, the Congen data will be
displayed as follows:
F3 T>F
Byte:0082:
Byte:0082:
Byte:0082:
Byte:0082:
Byte:0082:
Byte:0082:
Byte:0082:
Byte:0082:
Byte:0082:
Byte:0083:
Byte:0084:
Byte:0085:
Byte:0086:
Byte:0088:
Byte:008A:
Byte:008B:
Byte:008E:
Byte:008F:
Byte:0090:
Byte:0091:
Byte:0092:
Byte:0093:
Byte:0094:
Byte:0095:
Byte:0096:
Byte:0097:
Byte:0098:
Byte:0099:
Byte:009A:
Byte:009B:
Byte:009C:
Byte:009D:
Byte:009E:
Byte:009F:
Byte:00A0:
Byte:00A6:
Byte:00A7:
Byte:00A8:
Byte:00A9:
Byte:00AA:
Byte:00AB:
Byte:00AC:
Byte:00AD:
Byte:00AE:
Byte:00AF:
Byte:00B0:
Byte:00B1:
Byte:00B2:
Byte:00B3:
Byte:00B4:
Byte:00B5:
Byte:00B6:
Byte:00B8:
Byte:00B9:
Byte:00BE:
Byte:00BE:
Byte:00BE:
Byte:00BE:
Byte:00BE:
Byte:00BF:
Byte:00C0:
Byte:00C6:
Byte:00C7:
Byte:00CA:
Byte:00CA:
Byte:00CA:
Byte:00CA:
Byte:00CA:
Byte:00CA:
Byte:00CA:
Byte:00CA:
Byte:00CB:
Byte:00CC:
Byte:00CD:
Byte:00CE:
Byte:00CF:
Byte:00D0:
Byte:00D1:
Byte:00D2:
Byte:00D3:
Byte:00D4:
Byte:00D5:
Byte:00D6:
Byte:00D7:
Byte:00D9:
Byte:00DA:
Byte:00DB:
Byte:00DE:
Byte:00DF:
Byte:00E0:
Byte:00E2:
Byte:00E3:
Byte:00E4:
Byte:00E5:
Byte:00E6:
Byte:00E7:
LogFlags = 02
QueueFlags = 00
AllegianceFlags = 00
RAERHoldOffMSB = 00
RAERHoldOffLSB = 00
BusyTimeoutMSB = 00
BusyTimeoutLSB = 00
ExtendedDstestTimeMSB = 00
ExtendedDstestTimeLSB = 00
Byte:00EB:
Byte:00EC:
Byte:00ED:
Byte:00EE:
Byte:00EF:
Byte:00F0:
Byte:00F1:
Byte:00F2:
Byte:00F3:
Byte:00F7:
Byte:00F8:
Byte:00F9:
Byte:00FA:
Byte:00FB:
Byte:00FC:
Byte:00FD:
Byte:0104:
Byte:0104:
Byte:0104:
Byte:0104:
Byte:0104:
Byte:0105:
Byte:0106:
Byte:0107:
Byte:0108:
Byte:0109:
Byte:010A:
Byte:010B:
Byte:010C:
Byte:0114:
Byte:0114:
Byte:0114:
Byte:0114:
Byte:0115:
Byte:0116:
Byte:0117:
Byte:011E:
Byte:0127:
Byte:012F:
Byte:0130:
Byte:0132:
Byte:0133:
Byte:0138:
Byte:0139:
Byte:013A:
Byte:013B:
Byte:013C:
Byte:013D:
Byte:0148:
Byte:0148:
Byte:0148:
Byte:0148:
Byte:0148:
Byte:0148:
Byte:0148:
Byte:0148:
Byte:0149:
Byte:0149:
Byte:0149:
Byte:0149:
Byte:0149:
Byte:0149:
Byte:0149:
Byte:014A:
Byte:014C:
Byte:014E:
Byte:0154:
Byte:015C:
Byte:0172:
Byte:0174:
Byte:0176:
Byte:017E:
Byte:01A6:
Byte:01A7:
Byte:01A8:
Byte:01AA:
Byte:01AB:
Byte:01AB:
Byte:01AB:
Byte:01AB:
Byte:01AB:
Byte:01AC:
Byte:01AE:
Byte:01B0:
Byte:01B2:
Byte:01B2:
Byte:01B2:
Byte:01B2:
Byte:01B4:
Byte:01B6:
Byte:01B8:
Byte:01BA:
Byte:01BE:
Byte:01C0:
Byte:01C6:
Byte:01C6:
Byte:01C6:
Byte:01C6:
Byte:01C7:
Byte:01C8:
Byte:01C8:
Byte:01C8:
Byte:01CA:
Byte:01CC:
Byte:01CE:
Byte:01D0:
Byte:01D2:
Byte:01D4:
Byte:01D6:
Byte:01D8:
Byte:01DA:
Byte:01DC:
Byte:01DE:
Byte:01E0:
Byte:01E0:
Byte:01E0:
Byte:01E0:
Byte:01E1:
Byte:01E1:
Byte:01E1:
Byte:01E1:
Byte:01E2:
Byte:01E4:
Byte:01E4:
Byte:01E4:
Byte:01E4:
Byte:01E4:
Byte:01E6:
Byte:01E6:
Byte:01E6:
Byte:01E6:
Byte:01E6:
Byte:01E6:
Byte:01E8:
Byte:01E8:
Byte:01E8:
Byte:01E8:
Byte:01E8:
Byte:01E8:
Byte:01E8:
Byte:01E8:
Byte:01EA:
Byte:01EC:
Byte:01EC:
Byte:01EC:
Byte:01EC:
Byte:01EC:
Byte:01EC:
Byte:01EC:
Byte:01ED:
Byte:01ED:
Byte:01ED:
Byte:01ED:
Byte:01ED:
Byte:01ED:
CurrentMultipleSize = 10 01
TotalUserCapacity = FF FF FF 0F
MultiwordDMAModesSupported = 07
Bit:0, MULTIWORD_DMA_MODE_0_SUPPORTED = 1
Bit:1, MULTIWORD_DMA_MODE_1_SUPPORTED = 1
Bit:2, MULTIWORD_DMA_MODE_2_SUPPORTED = 1
MultiwordDMAModeSelected = 04
AdvancedPIOModesSupported = 23 00
Bit:0, PIO_MODE_3_SUPPORTED = 1
Bit:1, PIO_MODE_4_SUPPORTED = 1
MinimumMultiwordDMACycleTime = 78 00
RecommendedMultiwordDMACycleTime = 78 00
MinimumPIOTimeWithoutFlowControl = 78 00
MinimumPIOTimeWithFlowControl = 78 00
Word69 = 00 00
Word70 = 00 00
Word71 = 00 00
Word72 = 00 00
Word73 = 00 00
Word74 = 00 00
QDepth = 1F 00
SATACapabilities = 26 21
Bit:1, SATA_GEN1_SIGNALING_SPEED = 1
Bit:2, SATA_GEN2_SIGNALING_SPEED = 1
Bit:3, SATA_FUTURE_SIGNALING_SPEED_RESERVED = 0
Bit:0, SATA_NCQ_SUPPORTED = 1
Bit:1, HOST_INITIATED_PHY_POWER_MANAGEMENT_SUPPORTED = 0
Bit:2, SATA_PHY_EVENT_COUNTERS_SUPPORTED = 0
Bit:4, UNLOAD_WHILE_NCQ_CMDS_OUTSTANDING_SUPPORTED = 0
Word77 = 00 00
SATAFeaturesSupported = 20 20
Bit:1, DMA_SETUP_NON_ZERO_OFFSET_SUPPORTED = 0
Bit:2, DMA_AUTOACTIVATE_SUPPORTED = 0
Bit:3, DEVICE_INITIATED_POWER_MANAGEMENT_SUPPORTED = 0
Bit:6, PRESERVE_SETTINGS_ON_COMRESET_SUPPORTED = 0
SATAFeaturesEnabled = 20 20
Bit:1, DMA_SETUP_NON_ZERO_OFFSET_ENABLED = 0
Bit:2, DMA_AUTOACTIVATE_ENABLED = 0
Bit:3, DEVICE_INITIATED_POWER_MANAGEMENT_ENABLED = 0
Bit:4, IN_ORDER_DATA_DELIVERY_ENABLED = 0
Bit:6, PRESERVE_SETTINGS_ON_COMRESET_ENABLED = 0
MajorVersionNumber = 7E 20
Bit:1, ATAPI_1_SUPPORTED = 1
Bit:2, ATAPI_2_SUPPORTED = 1
Bit:3, ATAPI_3_SUPPORTED = 1
Bit:4, ATAPI_4_SUPPORTED = 1
Bit:5, ATAPI_5_SUPPORTED = 1
Bit:6, ATAPI_6_SUPPORTED = 1
Bit:7, ATAPI_7_SUPPORTED = 0
MinorVersionNumber = 1B 00
CommandSetSupported = 6B 34
Bit:0, SMART_SUPPORTED = 1
Bit:1, SECURITY_MODE_FEATURE_SET_SUPPORTED = 1
Bit:3, POWER_MANAGEMENT_SUPPORTED = 1
Bit:5, WRITE_CACHE_SUPPORTED = 1
Bit:6, READ_LOOKAHEAD_SUPPORTED = 1
Bit:7, RELEASE_INTERRUPT_SUPPORTED = 0
Bit:0, SERVICE_INTERRUPT_SUPPORTED = 0
Bit:1, DEVICE_RESET_CMD_SUPPORTED = 0
Bit:2, HOST_PROTECTED_AREA_SUPPORTED = 1
Bit:4, WRITE_BUFFER_CMD_SUPPORTED = 1
Bit:5, READ_BUFFER_CMD_SUPPORTED = 1
Bit:6, NOP_CMD_SUPPORTED = 0
Byte:01EE:
Byte:01EE:
Byte:01EE:
Byte:01EE:
Byte:01EE:
Byte:01EE:
Byte:01EE:
Byte:01EE:
Byte:01EF:
Byte:01EF:
Byte:01EF:
Byte:01EF:
Byte:01EF:
Byte:01EF:
Byte:01F0:
Byte:01F0:
Byte:01F0:
Byte:01F0:
Byte:01F0:
Byte:01F0:
Byte:01F0:
Byte:01F0:
Byte:01F0:
Byte:01F1:
Byte:01F1:
Byte:01F1:
Byte:01F1:
Byte:01F1:
Byte:01F1:
Byte:01F1:
Byte:01F2:
Byte:01F2:
Byte:01F2:
Byte:01F2:
Byte:01F2:
Byte:01F2:
Byte:01F2:
Byte:01F3:
Byte:01F3:
Byte:01F3:
Byte:01F3:
Byte:01F4:
Byte:01F4:
Byte:01F4:
Byte:01F4:
Byte:01F4:
Byte:01F4:
Byte:01F4:
Byte:01F4:
Byte:01F4:
Byte:01F5:
Byte:01F5:
Byte:01F5:
Byte:01F5:
Byte:01F5:
Byte:01F5:
Byte:01F6:
Byte:01F6:
Byte:01F6:
Byte:01F6:
Byte:01F6:
Byte:01F6:
Byte:01F6:
CommandSetsSupported = 01 7F
Bit:0, DOWNLOAD_MICROCODE_CMD_SUPPORTED = 1
Bit:1, READ_WRITE_DMA_QUEUED_SUPPORTED = 0
Bit:2, CFA_FEATURE_SUPPORTED = 0
Bit:3, ADVANCED_POWER_MANAGEMENT_SUPPORTED = 0
Bit:4, REMOVABLE_MEDIA_STATUS_NOTIFICATION_FEATURE_SET_SUPPORTED = 0
Bit:5, POWER_UP_IN_STANDBY_SUPPORTED = 0
Bit:6, SET_FEATURES_SPINUP_REQUIRED_SUPPORTED = 0
Bit:0, SET_MAX_SECURITY_EXTENSION_SUPPORTED = 1
Bit:1, AUTO_ACOUSTIC_MANAGEMENT_SUPPORTED = 1
Bit:2, FOURTYEIGHT_BIT_SUPPORTED = 1
Bit:3, DCO_COMMAND_SETS_SUPPORTED = 1
Bit:4, FLUSH_CACHE_SUPPORTED = 1
Bit:5, FLUSH_CACHE_EXT_SUPPORTED = 1
CommandSetSupportedExtension = 03 40
Bit:0, SMART_ERROR_LOGGING_SUPPORTED = 1
Bit:1, SMART_SELF_TEST_SUPPORTED = 1
Bit:2, MEDIA_SERIALNUMBER_SUPPORTED = 0
Bit:3, MEDIA_CARD_PASS_THROUGH_CMD_FEATRUE_SET_SUPPORTED = 0
Bit:4, STREAMING_FEATURE_SET_SUPPORTED = 0
Bit:5, GENERAL_PURPOSE_LOGGING_SUPPORTED = 0
Bit:6, FUA_WRITE_EXT_COMMANDS_SUPPORTED = 0
Bit:7, FUA_WRITE_QUEUED_EXT_COMMANDS_SUPPORTED = 0
Bit:0, SIXTYFOUR_BIT_WWN_SUPPORTED = 0
Bit:1, URG_FOR_READ_STREAM_SUPPORTED = 0
Bit:2, URG_FOR_WRITE_STREAM_SUPPORTED = 0
Bit:3, AV_LITE_SUPPORTED = 0
Bit:4, AV_LITE_RC_WC_SUPPORTED = 0
Bit:5, IDLE_IMMEDIATE_UNLOAD_SUPPORTED = 0
Bit:6, BASE_VALUE_OF_IDENTIFY_WORD_84 = 1
CommandSetEnabled = 28 34
Bit:0, SMART_ENABLED = 0
Bit:1, SECURITY_MODE_FEATURE_SET_ENABLED = 0
Bit:3, POWER_MANAGEMENT_ENABLED = 1
Bit:5, WRITE_CACHE_ENABLED = 1
Bit:6, READ_LOOKAHEAD_ENABLED = 0
Bit:7, RELEASE_INTERRUPT_ENABLED = 0
Bit:0, SERVICE_INTERRUPT_ENABLED = 0
Bit:2, HOST_PROTECTED_AREA_ENABLED = 1
Bit:4, WRITE_BUFFER_CMD_ENABLED = 1
Bit:5, READ_BUFFER_CMD_ENABLED = 1
CommandSetsEnabled = 01 3C
Bit:0, DOWNLOAD_MICROCODE_CMD_ENABLED = 1
Bit:1, READ_WRITE_DMA_QUEUED_ENABLED = 0
Bit:2, CFA_FEATURE_SET_ENABLED = 0
Bit:3, ADVANCED_POWER_MANAGEMENT_ENABLED = 0
Bit:4, REMOVABLE_MEDIA_STATUS_NOTIFICATION_FEATURE_SET_ENABLED = 0
Bit:5, POWER_UP_IN_STANDBY_ENABLED = 0
Bit:6, SET_FEATURES_SPINUP_REQUIRED_ENABLED = 0
Bit:7, ADDRESS_OFFSET_RESERVED_AREA_BOOT = 0
Bit:0, SET_MAX_SECURITY_EXTENSION_ENABLED = 0
Bit:1, AUTO_ACOUSTIC_MANAGEMENT_ENABLED = 0
Bit:2, FOURTYEIGHT_BIT_ENABLED = 1
Bit:3, DCO_COMMAND_SETS_ENABLED = 1
Bit:4, FLUSH_CACHE_ENABLED = 1
Bit:5, FLUSH_CACHE_EXT_ENABLED = 1
CommandSetEnabledExtension = 03 40
Bit:0, SMART_ERROR_LOGGING_ENABLED = 1
Bit:1, SMART_SELF_TEST_ENABLED = 1
Bit:2, MEDIA_SERIALNUMBER_IS_VALID = 0
Bit:3, MEDIA_CARD_PASSTHROUGH_FEATURE_SET_ENABLED = 0
Bit:4, STREAMING_FEATURE_SET_ENABLED = 0
Bit:5, GENERAL_PURPOSE_LOGGING_ENABLED = 0
Byte:01F6:
Byte:01F6:
Byte:01F7:
Byte:01F7:
Byte:01F7:
Byte:01F7:
Byte:01F7:
Byte:01F7:
Byte:01F8:
Byte:01F8:
Byte:01F8:
Byte:01F8:
Byte:01F8:
Byte:01F8:
Byte:01F8:
Byte:01F8:
Byte:01F9:
Byte:01F9:
Byte:01F9:
Byte:01F9:
Byte:01F9:
Byte:01F9:
Byte:01F9:
Byte:01F9:
Byte:01FA:
Byte:01FC:
Byte:01FE:
Byte:0200:
Byte:0202:
Byte:0202:
Byte:0202:
Byte:0202:
Byte:0202:
Byte:0202:
Byte:0202:
Byte:0202:
Byte:0203:
Byte:0203:
Byte:0203:
Byte:0203:
Byte:0203:
Byte:0204:
Byte:0206:
Byte:0208:
Byte:020A:
Byte:020C:
Byte:0210:
Byte:0218:
Byte:021A:
Byte:021C:
Byte:021E:
Byte:0220:
Byte:0222:
Byte:0224:
Byte:0226:
Byte:0230:
Byte:0232:
Byte:0236:
Byte:0236:
Byte:0236:
Byte:0236:
Byte:0236:
Byte:0238:
Bit:6, FUA_WRITE_EXT_COMMANDS_ENABLED = 0
Bit:7, FUA_WRITE_QUEUED_EXT_COMMANDS_ENABLED = 0
Bit:0, SIXTYFOUR_BIT_WWN_ENABLED = 0
Bit:1, URG_FOR_READ_STREAM_ENABLED = 0
Bit:2, URG_FOR_WRITE_STREAM_ENABLED = 0
Bit:3, AV_LITE_ENABLED = 0
Bit:4, AV_LITE_RC_WC_ENABLED = 0
Bit:5, IDLE_IMMEDIATE_UNLOAD_ENABLED = 0
UltraDMAModesSupported = 7F
Bit:0, ULTRA_DMA_MODE0_SUPPORTED = 1
Bit:1, ULTRA_DMA_MODE1_AND_BELOW_SUPPORTED = 1
Bit:2, ULTRA_DMA_MODE2_AND_BELOW_SUPPORTED = 1
Bit:3, ULTRA_DMA_MODE3_AND_BELOW_SUPPORTED = 1
Bit:4, ULTRA_DMA_MODE4_AND_BELOW_SUPPORTED = 1
Bit:5, ULTRA_DMA_MODE5_AND_BELOW_SUPPORTED = 1
Bit:6, ULTRA_DMA_MODE6_AND_BELOW_SUPPORTED = 1
UltraDMAModeSelected = 00
Bit:0, ULTRA_DMA_MODE0_SELECTED = 0
Bit:1, ULTRA_DMA_MODE1_SELECTED = 0
Bit:2, ULTRA_DMA_MODE2_SELECTED = 0
Bit:3, ULTRA_DMA_MODE3_SELECTED = 0
Bit:4, ULTRA_DMA_MODE4_SELECTED = 0
Bit:5, ULTRA_DMA_MODE5_SELECTED = 0
Bit:6, ULTRA_DMA_MODE6_SELECTED = 0
SecurityEraseTime = 00 00
EnhancedSecurityEraseTime = 00 00
CurrentAPMValue = FE FE
MasterPasswordRevisionCode = FE FF
EightyConductorCableDetection = 00 00
Bit:0, DEV0_RESULT = 0
Bit:1, DEV0_RESULT_JUMPER_USED_TO_DETERMINE_DEV_NUM = 0
Bit:2, DEV0_RESULT_CSEL_USED_TO_DETERMINE_DEV_NUM = 0
Bit:3, DEV0_RESULT_PASSED_DIAGNOSTICS = 0
Bit:4, DEV0_RESULT_DETECTED_PDIAG = 0
Bit:5, DEV0_RESULT_DETECTED_DASP = 0
Bit:6, DEV0_RESULT_DEV0_RESPONDS_WHEN_DEV1_SELECTED = 0
Bit:0, DEV1_RESULT = 0
Bit:1, DEV1_RESULT_JUMPER_USED_TO_DETERMINE_DEV_NUM = 0
Bit:2, DEV1_RESULT_CSEL_USED_TO_DETERMINE_DEV_NUM = 0
Bit:3, DEV1_RESULT_ASSERTED_PDIAG = 0
Bit:5, EIGHTY_CONDUCTOR_CABLE_PRESENT_BIT = 0
AcousticLevel = 00 FE
StreamMinRequestSize = 00 00
StreamXferTimeDMA = 00 00
StreamAccessLatency = 00 00
StreamPerformanceGranularity = 00 00 00 00
FortyEightBitAddress = 99 A9 6B 1C 00 00 00 00
StreamXferTimePIO = 00 00
Word105 = 00 00
PhysicalLogicalSectorSize = 00 00
InterSeekDelayForISO7779 = 00 00
NAAIEEEOUIHigh = 00 00
IEEEOUILowAndUniqueIDHigh = 00 00
UniqueIDMid = 00 00
UniqueIDLow = 00 00
AVLiteWorstCaseTimer = 00 00
WordsPerLogicalSector = 00 00 00 00
ATACommandSetSupportedExt2 = 24 20
Bit:1, WRITE_READ_VERIFY_SUPPORTED = 0
Bit:2, WRITE_UNCORRECTABLE_SUPPORTED = 1
Bit:3, READ_AND_WRITE_DMA_EXP_GPL_COMMANDS_SUPPORTED = 0
Bit:4, SEGMENTED_DOWNLOAD_MICROCODE_SUPPORTED = 0
ATACommandSetEnabledExt2 = 22 20
Byte:0238:
Byte:0238:
Byte:0238:
Byte:0248:
Byte:0248:
Byte:0248:
Byte:0248:
Byte:0248:
Byte:0248:
Byte:0248:
Byte:0249:
Byte:024A:
Byte:0254:
Byte:0254:
Byte:0256:
Byte:0288:
Byte:028A:
Byte:02A8:
Byte:02D0:
Byte:02E4:
Byte:02E6:
Byte:0346:
Byte:0348:
Byte:0348:
Byte:034A:
Byte:034C:
Byte:034E:
Byte:0350:
Byte:0352:
Byte:0354:
Byte:0356:
Byte:0358:
Byte:035A:
Byte:035C:
Byte:035E:
Byte:0360:
Byte:0362:
Byte:0364:
Byte:0366:
Bit:1, WRITE_READ_VERIFY_ENABLED = 1
Bit:3, READ_AND_WRITE_DMA_EXP_GPL_COMMANDS_ENABLED = 0
Bit:4, SEGMENTED_DOWNLOAD_MICROCODE_ENABLED = 0
SecurityStatus = 21 00
Bit:0, SECURITY_SUPPORTED = 1
Bit:1, SECURITY_ENABLED = 0
Bit:2, SECURITY_LOCKED = 0
Bit:3, SECURITY_FROZEN = 0
Bit:4, SECURITY_COUNT_EXPIRED = 0
Bit:5, ENHANCED_SECURITY_ERASE_SUPPORTED = 1
Bit:1, SECURITY_LEVEL_MAXIMUM = 0
FirstATAVendorSpecificPad = 00 00 00 00 00 00 00 00 00 00
''
CompaqWord = 02 00
Bit:1, COMPAQ_CAM_COMPLIANT = 1
SecondATAVendorSpecificPad =
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00
''
Word160 = 00 00
CFAWords =
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
''
MediaSerialNumberCopy =
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
''
MediaManufacturerCopy =
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00
''
ATATransportMajorRevisionNumber = 08 10
ATATransportMinorRevisionNumber = 20 20
ATACheckSum = 00 00
ATSMARTConfig =
0F 00 06 00 03 00 00 00 32 00 14 00 33 00 24 00
0F 00 1E 00 32 00 00 00 13 00 61 00 32 00 14 00
32 00 00 00 3A 00 00 00 22 00 2D 00 32 00 00 00
32 00 00 00 32 00 00 00 22 00 00 00 1A 00 00 00
12 00 00 00 10 00 00 00 3E 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
SMART1Status = 0F 00
SMART1Threshold = 06
SMART2Status = 03 00
SMART2Threshold = 00
SMART3Status = 32 00
SMART3Threshold = 14
SMART4Status = 33 00
SMART4Threshold = 24
SMART5Status = 0F 00
SMART5Threshold = 1E
SMART6Status = 32 00
SMART6Threshold = 00
SMART7Status = 13 00
SMART7Threshold = 61
SMART8Status = 32 00
SMART8Threshold = 14
Byte:0368:
Byte:036A:
Byte:036C:
Byte:036E:
Byte:0370:
Byte:0372:
Byte:0374:
Byte:0376:
Byte:0378:
Byte:037A:
Byte:037C:
Byte:037E:
Byte:0380:
Byte:0382:
Byte:0384:
Byte:0386:
Byte:0388:
Byte:038A:
Byte:038C:
Byte:038E:
Byte:0390:
Byte:0392:
Byte:0394:
Byte:0396:
Byte:0398:
Byte:039A:
Byte:039C:
Byte:039E:
Byte:03A0:
Byte:03A2:
Byte:03A4:
Byte:03A6:
Byte:03A8:
Byte:03AA:
Byte:03AC:
Byte:03AE:
Byte:03B0:
Byte:03B2:
Byte:03B4:
Byte:03B6:
Byte:03B8:
Byte:03BA:
Byte:03BC:
Byte:03BE:
Byte:03C0:
Byte:03C0:
Byte:03C2:
Byte:03C4:
Byte:03C5:
Byte:03C6:
Byte:03C7:
Byte:03C8:
Byte:03C8:
Byte:03C8:
Byte:03C8:
Byte:03C9:
Byte:03CA:
Byte:03CB:
Byte:03CC:
Byte:03CD:
Byte:03CE:
Byte:03CF:
Byte:03D0:
SMART9Status = 32 00
SMART9Threshold = 00
SMART10Status = 3A 00
SMART10Threshold = 00
SMART11Status = 22 00
SMART11Threshold = 2D
SMART12Status = 32 00
SMART12Threshold = 00
SMART13Status = 32 00
SMART13Threshold = 00
SMART14Status = 32 00
SMART14Threshold = 00
SMART15Status = 22 00
SMART15Threshold = 00
SMART16Status = 1A 00
SMART16Threshold = 00
SMART17Status = 12 00
SMART17Threshold = 00
SMART18Status = 10 00
SMART18Threshold = 00
SMART19Status = 3E 00
SMART19Threshold = 00
SMART20Status = 00 00
SMART20Threshold = 00
SMART21Status = 00 00
SMART21Threshold = 00
SMART22Status = 00 00
SMART22Threshold = 00
SMART23Status = 00 00
SMART23Threshold = 00
SMART24Status = 00 00
SMART24Threshold = 00
SMART25Status = 00 00
SMART25Threshold = 00
SMART26Status = 00 00
SMART26Threshold = 00
SMART27Status = 00 00
SMART27Threshold = 00
SMART28Status = 00 00
SMART28Threshold = 00
SMART29Status = 00 00
SMART29Threshold = 00
SMART30Status = 00 00
SMART30Threshold = 00
ATSMARTDefaultFlags = 00 00
Bit:0, SMARTDEFAULTON = 0
SCTCommandSetSupported = 40 4B
SCTFanControlMaxOperatingTemp = 00
SCTFanControlOverRangeTemp = 00
SCTFanControlUnderRangeTemp = 00
SCTFanControlMinOperatingTemp = 00
SCTVendorFlags = 00 00
Bit:0, SCT_VENDORFLAGS_SEATOOLS = 0
Bit:1, SCT_VENDORFLAGS_WRITE_SAME = 0
Bit:2, SCT_VENDORFLAGS_CORRECTABLE_BIT = 0
Bit:7, SCT_VENDORFLAGS_DEBUG_MODE = 0
SCTTimerReadDefault = 00
SCTTimerWriteDefault = 00
SCTTenMsecCount = 00
SCTPerformanceFlags = 00
ATAPadSlewRate = 00
ATAIORDYPadControl = 00
PreampHotTweak = 00
Byte:03D1:
Byte:03D2:
Byte:03D4:
Byte:03D6:
Byte:03D8:
Byte:03DA:
Byte:03DC:
Byte:03DE:
Byte:03DF:
Byte:03E0:
Byte:03E2:
Byte:03E4:
Byte:03E6:
Byte:03E8:
Byte:03E9:
Byte:03EA:
Byte:03EB:
Byte:03EC:
Byte:03F0:
Byte:03F4:
Byte:03F4:
Byte:03F4:
Byte:03F4:
Byte:03F4:
Byte:03F4:
Byte:03F4:
Byte:03F4:
Byte:03F4:
Byte:03F5:
Byte:03F5:
Byte:03F5:
Byte:03F5:
Byte:03F5:
Byte:03F5:
Byte:03F5:
Byte:03F5:
Byte:03F6:
Byte:03F6:
Byte:03F6:
Byte:03F6:
Byte:03F6:
Byte:03F6:
Byte:03F6:
Byte:03F6:
Byte:03F8:
Byte:03F8:
Byte:03F8:
Byte:03F8:
Byte:03F8:
Byte:03F8:
Byte:03F8:
Byte:03F8:
Byte:03F8:
Byte:03F9:
Byte:03F9:
Byte:03FA:
Byte:03FC:
Byte:03FD:
Byte:03FE:
Byte:0400:
Byte:0404:
Byte:0408:
Byte:0408:
PreampColdTweak = 00
LubeMitigationRetries = 00 00
LengthOfWriteCommandToTriggerFlush = 00 00
LengthOfWriteSpaceToFlush = 00 00
NDSLBAThresholdA = 00 00
NDSLBAThresholdB = 00 00
NDSPartitionDependencies = 00 00
NDSODOffsetConfig = 00
NDSIDOffsetConfig = 00
APMTimer1mSec = 40 04
APMTimer2mSec = 00 15
APMStandByTimer = 20 00
APMTimerForDither = 2C 01
ReadDelayMinimum = 00
ReadDelayIncremental = 00
WriteDelayMinimum = 00
WriteDelayIncremental = 00
NativeCapacity = 99 A9 6B 1C
HDACapacity = 99 A9 6B 1C
FeatureFlags = 00 A0 08 00
Bit:0, WRITE_CONFIG_DATA_TO_FLASH = 0
Bit:1, SPINUP_WRITE_FAULT_THRESHOLDS_ENABLED = 0
Bit:2, IOEDC_CHECK_ENABLED = 0
Bit:3, IOEDC_ERROR_ENABLED = 0
Bit:4, DOWNLOAD_MICROCODE_FUTURE_USE_ONLY = 0
Bit:5, SUPPRESS_SERIAL_PORT_PRINTS = 0
Bit:6, DRQ_CLEAR_ON_PIO_READ_ERR_SUPPORTED = 0
Bit:7, OFFLINE_SEEK_AWAY = 0
Bit:0, DELAY_SLEEP_STANDBY_CMDCOMPLETE = 0
Bit:1, IDLE_IMMEDIATE_UNLOAD_EMERGENCY = 0
Bit:2, ENABLE_ALLOW_RAW_ERROR_RATE_UPDATE = 0
Bit:3, OP_SHOCK_DETECTION_ENABLED = 0
Bit:4, LOG99_CONTROL = 0
Bit:5, READ_WRITE_LONG_EXTENDED_ENABLED = 1
Bit:6, WRITE_REORDERING_DISABLED = 0
Bit:7, ALLOW_AAM_FEATURE_SET = 1
Bit:0, DATA_LOG_ENABLED = 0
Bit:1, HOST_STREAM_RECORD_FIRST_ERROR_BLOCK = 0
Bit:2, SAVE_ATA_COMMAND_HISTORY_TO_DISC = 0
Bit:3, EIB_ON_POWERUP = 1
Bit:4, LEFT_JUSTIFY_SERIAL_NUMBER = 0
Bit:5, SUN_MICRO_MODEL_NUMBER_UPDATE = 0
Bit:6, REVERTING_TO_POWER_ON_DEFAULTS_SUPPORTED = 0
Bit:7, RIGHT_JUSTIFY_FIRMWARE_REVISION = 0
PerformanceFlags = 00 00
Bit:0, REDUCED_RAW_TRANSITION_FLUSH = 0
Bit:1, REDUCED_AV_RETRIES = 0
Bit:2, READ_LOOKAHEAD_DISABLED_ON_POWER_UP = 0
Bit:3, JIT3 = 0
Bit:4, JIT2 = 0
Bit:5, JIT1 = 0
Bit:6, JIT0 = 0
Bit:7, ZERO_LATENCY_RD_ENABLED = 0
Bit:0, DAR_ENABLED = 0
Bit:1, OFFLINE_SPARING_ENABLED = 0
AggressivelyScanThisManyTimes = 00 00
DOSNeedToScanThreshold = 00
DOSOughtToScanThreshold = 00
SleepStandbyDelay = 00 00
CustomerUniques = 00 00 00 00
CustomerType = 00 00 00 00
AdditionalSATAFeatureConfig = 00 00 00 00
Bit:0, SATA_FORCE_EARLY_STATUS = 0
Byte:0408:
Byte:0408:
Byte:0408:
Byte:0408:
Byte:0408:
Byte:0408:
Byte:0408:
Byte:0409:
Byte:040C:
Byte:040E:
Byte:0410:
Byte:0412:
Byte:0414:
Byte:0416:
Byte:0416:
Byte:0416:
Byte:0416:
Byte:0416:
Byte:0418:
Byte:041A:
Byte:041A:
Byte:041A:
Byte:041A:
Byte:041A:
Byte:041C:
Byte:041E:
Byte:0420:
Byte:0421:
Byte:0422:
Bit:1, SATA_EARLY_STATUS_FORCE_COMRESET = 0
Bit:2, SATA_INTRACOMMAND_PHY_MANAGEMENT_ENABLED = 0
Bit:3, SATA_ENABLE_PHY_PM_CALIBRATION = 0
Bit:4, SATA_ENABLE_SPI_VIS_MODE = 0
Bit:5, SATA_AGGRESSIVE_PHY_SUPPORTED = 0
Bit:6, SATA_ENABLE_SSC = 0
Bit:7, SATA_ACTIVITY_LED = 0
Bit:0, SATA_DISABLE_PRIMITIVE_SCRAMBLING = 0
FactoryODScanMBytes = D0 07
FactoryIDScanMBytes = E8 03
MaxDSTSelfTestTime = 54 15
DSTShortTestTimeLimit = 3C 00
CongenDriveType = 00 26
BootFlagsForROM = 00 00
Bit:0, BOOT_FLAG_POWER_ON_IN_STANDBY = 0
Bit:1, BOOT_FLAG_PARTIAL_OOB = 0
Bit:2, USE_SMALL_ID_FORMAT = 0
Bit:3, LOW_CURRENT_SPINUP = 0
LastCongenWriteCaller = 00 00
RealTimeUpdatedFlags = 08 00
Bit:0, HPA_SET_BY_SETMAX = 0
Bit:1, HPA_SET_BY_SETMAX_EXT = 0
Bit:2, DCO_SET_ACTIVE = 0
Bit:3, CONGEN_READ_FROM_MEDIA = 1
CheckSum = 00 00
HostStreamJumpSizeInSectors = 00 00
HostStreamTotalJumpSteps = 00
SerialDebugLevel = 00
DefaultStandbyTimer = 00
Bytes Returned = 0.
F3 T>
Note: Congen words that can not be modified will be highlighted.
If no error occurred, Parameter 0 is entered and Parameter 1 is not entered, the
current value of the specified Congen Parameter will be displayed.
If no error occurred and Parameter 0 and 1 are both entered, the new value of the
specified Congen Parameter will be displayed.
Examples:
To display the full Congen in a humanized way:
In:
F3 T>F
Out:
(See above for example of full humanized output)
To display a single 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 example with caution!)
In:
F3 T>F421
F3 T>F0421
F3 T>F"SerialDebugLevel"
Out:
Byte:0421:
SerialDebugLevel = 00
SerialDebugLevel = 41
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command is used to set the controller test port mux.
Quick Help:
"SetControllerTestPort, M[Port],[Value]";
Input Parameters:
0 - Test Port.
This input specifies the Test port to set.
Type:
Range:
0 to 0xFF
Default: None
1 - Test Port Value.
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.
Type:
Range:
0 to 0xFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.)
Quick Help:
"SetDerpRetries, Y[Mode],[MaxRdRetries],[MaxWrtRetries],[OtcTLevel],[Options]";
Input Parameters:
0 - Error Recovery Mode.
This parameter specifies the error recovery mode to be used. The following
error recovery modes are available:
0
1
2
3
4
5
6
=
=
=
=
=
=
=
Maximum
Maximum
Default
Default
Minimum
Minimum
Simple
Normal
Full
Normal
Full
Normal
Full
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 Recover Mode is a "Normal" type error recovery mode but with no
additional options enabled.
Error Recovery Mode 0 (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.
Type:
Range:
0 to 6
Default: If this parameter is not entered, the current error recovery mode
will not be changed.
1 - Maximum read retry count allowed.
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.
Type:
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.
2 - Maximum write retry count allowed.
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.
Type:
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.
3 - On-the-fly Correction ECC T-Level.
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.
Type:
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.
4 - Error Recovery Options.
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:
Bit 11: Disable on-the-fly ECC correction - normal retry tweak steps.
If set, on-the-fly ECC correction will be disabled for the normal
error recovery modes for all retry steps.
Bit 12: Disable on-the-fly ECC correction - full-hidden retry tweak steps.
If set, on-the-fly ECC correction will be disabled for the full
error recovery modes for all hidden retry steps. The first 9
steps of the full error recovery modes are defined as hidden retries.
Bit 13: Disable on-the-fly ECC correction - full retry tweak steps.
If set, on-the-fly ECC correction will be disabled for the full
error recovery modes for all retry steps following the hidden
retries. The first 9 retry steps of the full error recovery modes
are defined as hidden retries.
Bit 14: Enable selected ER retry step.
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 15: Skip initial read/write access of request.
Typically, the initial access of a sector is performed without error
recovery. If this bit is set, the initial sector access will be
performed using error recovery. If Mode Options Bit 14 is also set,
a specified error recovery step will be used for the initial sector
access. If Mode Options Bit 14 is cleared, the first error recovery
step will be used for the initial sector access.
Bit 16: Enable ECC selection setting - normal retries only.
If set, a specified ECC T-Level will be used for on-the-fly correction
only during NORMAL retries. (This bit is a "don't care" if Bit 23 is
set.)
Bit 17: Disable retry on track integrity error.
If set, retries will be disabled on track integrity errors.
Bit 18: Allow one retry.
If set, only a single, normal retry will be enabled. (This feature
is not typically enabled in OEM code.)
Bit 19: Disable PFast.
If set, P-Fast will be disabled during preamp fast tweaks.
Bit 20: Enable use of selected maximum read retry count.
If set, only a specified number of read retries will be allowed when
read retries are required.
Bit 21: Enable use of selected maximum write retry count.
If set, only a specified number of write retries will be allowed when
write retries are required.
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 23: Enable ECC selection setting.
If set, a specified ECC T-Level will be used for on-the-fly correction
for all retry modes. Setting this bit causes Bit 16 to be considered
a "don't care."
Bit 24: Disable the extended retries applied to Write Unsafe error.
If set, the extended retries applied to Write Unsafe errors will be
disabled.
Bit 25: Enable reporting of recovered servo seek error to host.
If set, recovered servo seek errors will be reported to the host.
Bit 26: Enable Read/Write to complete transfers in RAW mode.
If set and the Read-After-Write feature is enabled for the product,
the Read/Write firmware is allowed to request that a transfer be
completed in RAW mode.
Bit 24: Enable Reduced Erasure correction.
If set and the Reduced Erasure Correction feature is enabled for
the product, the level of erasure correction applied during retries
will be reduced.
Bit 27: Enable abort during error recovery.
If set, abort request will be honored during error recovery.
Note that this bit only applies for single-block error
recovery. For non single-block error recovery, abort of
error recovery is already allowed.
Bits 28-31: Unused.
To Disable All Retries:
Clear bit 18
Set bits 6, 7, and 8
To Disable OTF Correction:
Set bits 10, 11, 12, and 13
Type:
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:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the current Error Recovery configuration will be displayed
as follows.
"Error Recovery Info:
" P0: Mode a (bbbbbb)"
" P4: Options = eeeeee"
"
"
"
"
"
"
"
B23:
B22:
B21:
B20:
(f)
(f)
(f)
(f)
gggggg
gggggg
gggggg
gggggg
P3:
Max
P1:
P2:
"
"
"
"
B19:
B18:
B17:
B16:
(f)
(f)
(f)
(f)
gggggg
gggggg
gggggg
gggggg
P-Fast"
Single Retry"
Trk Integrity Err Retry"
Selected OTF ECC T-level (Normal Retries ONLY)"
"
"
"
"
B15:
B14:
B13:
B12:
(f)
(f)
(f)
(f)
gggggg
gggggg
gggggg
gggggg
Initial RW Access"
Selected Retry Step = kk"
OTF on Full Retry Steps"
OTF on Full-Hidden Retry Steps"
"
"
"
"
B11:
B10:
B09:
B08:
(f)
(f)
(f)
(f)
gggggg
gggggg
gggggg
gggggg
"
"
"
"
B07:
B06:
B05:
B04:
(f)
(f)
(f)
(f)
gggggg
gggggg
gggggg
gggggg
Full-Hidden Retries"
Normal Retries"
Early Err Recovery Exit"
Restricted Servo Flaw Coasting during Write"
"
"
"
"
B03:
B02:
B01:
B00:
(f)
(f)
(f)
(f)
gggggg
gggggg
gggggg
gggggg
where
a
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:
0001.0000
0002.0000
0010.0000
0011.0000
Initial revision.
Added support for recent changes to the "options" parameter (non-DERP).
Added support for DERP and simple retries. (NOTE: Several revisions have
been skipped because this command shares the same command letter with the
"regular" Set Retries command and the old command must still be supported.)
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).
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.)
Quick Help:
"SetDerpRetryState, y[Type],[PathState],[RetryStateCnt],[LoopCnt1],[LoopCnt2]";
Input Parameters:
IMPORTANT: Either all parameters must be entered or no parameters must be entered. If
all parameters are specified, then the Selected DERP Retry State will be enabled and the
state values will be set to the specified values. If no parameters are specified, then
the Selected DERP Retry State will be disabled. Entering parameters any other way will
cause the command to fail.
0 - DERP Error Type.
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
1
2
3
4
5
6
=
=
=
=
=
=
=
UNDETERMINED
DATA_ERROR
SYNC
TA
DATAORTA
SYNCTA
SYNCORDATA
Type:
Range:
Default: None
1 - DERP Path State
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).
Type:
Range:
0 to 0xFF
Default: None
2 - DERP Retry State Count.
This parameter specifies the retry path count from the current retry sequence that
the DERP Error Recovery system will assume for subsequent diagnostic operations.
Type:
Range:
0 to 0xFF
Default: None
3 - DERP Retry Loop Count 1.
This parameter specifies the first loop counter that the DERP Error Recovery system
will assume for subsequent diagnostic operations.
Type:
Range:
0 to 0xFF
Default: None
4 - DERP Retry Loop Count 2.
This parameter specifies the second loop counter that the DERP Error Recovery system
will assume for subsequent diagnostic operations.
Type:
Range:
0 to 0xFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the current Error Recovery configuration will be displayed
as follows.
P0:
P1:
P2:
P3:
P4:
Error Type:
Path State:
State Count:
Loop Counter 1:
Loop Counter 2:
aa"
bb"
cc"
dd"
ee"
where
aa
bb
cc
dd
ee
is
is
is
is
is
the
the
the
the
the
type of error.
path count from the current retry sequence.
retry path count from the current retry sequence.
first loop counter.
second loop counter.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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).
Quick Help:
"SetDiagIdleMode, M[ModeSelect],[ModeMask],[ResetToPowerOn]";
Input Parameters:
0 - Idle features mode select
This parameter specifies which idle mode features are enabled.
Enable STIR
Enable TCC
Enable Continuous Writer Heat
Enable MR Bias Chop and disable
Continuous Preamp Power
Enable PFAST
Enable Self Seek
Continuous Channel Power
Type:
Range:
0 to 0x3F
0x1
0x2
0x4
0x8
0x10
0x20 (only on some drives)
0x40
Range:
0 to DIAG_POWER_ALL
0x1
0x2
0x4
0x8
0x10
0x20
0x40
Range:
0 to 0xFFFFFFFF
The idle
Default: none
Example: 2> M,,7 sets the idle mode to what it was when the drive powered
on.
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
xxx
xxx
xxx
xxx
xxx
xxx
ctl-P
ctl-P
ctl-P
ctl-P
ctl-P
ctl-P
yyyyyyyyyyy
yyyyyyyyyyy
yyyyyyyyyyy
yyyyyyyyyyy
yyyyyyyyyyy
yyyyyyyyyyy
Where:
xxx is either "On" or "Off"
yyyyyyyyyyy is either "toggles" or "won't toggle"
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
Dithering
TCC
Continuous heat to writer
MR chop / cnt. preamp pwr
PFast
Continuous channel power
On
On
Off
Off
Off
Off
ctl-P
ctl-P
ctl-P
ctl-P
ctl-P
ctl-P
toggles
toggles
toggles
toggles
won't toggle
won't toggle
Note that the second parameter ('f' above) will control what
toggles with control P.
[ issue control P ]
Dithering
TCC
Continuous heat to writer
MR chop / cnt. preamp pwr
PFast
Continuous channel power
Off
Off
On
On
Off
Off
ctl-P
ctl-P
ctl-P
ctl-P
ctl-P
ctl-P
toggles
<toggles
<toggles
<toggles
<won't toggle
won't toggle
used
used
used
used
to
to
to
to
be
be
be
be
ON
ON
OFF
OFF
On
On
Off
Off
Off
Off
ctl-P
ctl-P
ctl-P
ctl-P
ctl-P
ctl-P
toggles
<toggles
<toggles
<toggles
<won't toggle
won't toggle
used
used
used
used
to
to
to
to
be
be
be
be
OFF
OFF
ON
ON
[ issue control P ]
Dithering
TCC
Continuous heat to writer
MR chop / cnt. preamp pwr
PFast
Continuous channel power
Example #2:
To turn off power chop and see RDX/RDY on all the time:
F3 2>M0,8
Dithering
TCC
Continuous heat to writer
MR chop / cnt. preamp pwr
On
On
On
Off
ctl-P
ctl-P
ctl-P
ctl-P
won't toggle
won't toggle
won't toggle
toggles
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Set Direct Write Mode commmand enables or disables Direct Write mode.
Quick Help:
"SetDirectWrite, N[EnableDirWrtModeOpt]";
Input Parameters:
0 - Enable Direct Write Mode.
If Parameter 0 is not entered or is equal to 0, the direct write mode will
disabled and the normal write mode will be restored for the diagnostic write
operation.
If this parameter is entered and is not equal to 0, the direct write mode
will be enabled for the diagnostic write operation.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
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:
0001.0000
Initial revision.
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 does NOT support DERP! To know whether your drive supports DERP,
issue the Online "^L" command to see a list of features supported by the drive.)
Quick Help:
"SetRetries, Y[Config],[Mode],[MaxRdRetryLevel],[MaxWrRetryLevel],[RetryStep],[OtcTLevel],[Max
Input Parameters:
0 - Error Recovery Configuration.
NOTE: This parameter is ignored if entered! Since the Error Recovery Configuration
can be derived from the Error Recovery Mode, it is not necessary to specify it.
However, the parameter is retained for backwards compatibility.
The following error recovery configurations may be set by this command:
0
1
2
3
=
=
=
=
Range:
0 to 3
2
3
4
5
6
=
=
=
=
=
Default
Default
Minimum
Minimum
Simple
Normal
Full
Normal
Full
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.
Error Recovery Mode 0 is the default configuration used by the native interface.
Type:
Range:
0 to 5
Default: If this parameter is not entered, the current error recovery mode
will not be changed.
2 - Maximum Read Retry Level Allowed.
If entered, this parameter specifies the maximum read retry level allowed.
Note: A retry level consists of one or more retry steps and each retry step
performs a single disk transfer after performing one or more tweaks. Therefore,
the retry level is not equivalent to the retry count.
Type:
Range:
0 to 0x0B
Default: If this parameter is not entered, the maximum read retry level for the
specified error recovery mode will not be changed.
3 - Maximum Write Retry Level Allowed.
If entered, this parameter specifies the maximum write retry level allowed.
Note: A retry level consists of one or more retry steps and each retry step
performs a single disk transfer after performing one or more tweaks. Therefore,
the retry level is not equivalent to the retry count.
Type:
Range:
0 to 0x0B
Default: If this parameter is not entered, the maximum write retry level for the
specified error recovery mode will be changed.
Range:
0 to 0xFF
Default: If this parameter is not entered, the retry step for the specified
error recovery mode will not be changed.
5 - On-the-fly Correction ECC T-Level.
If entered, this parameter specifies the ECC T-Level to be used for on-the-fly
correction. The specified value will only be used by the error recovery algorithm,
when Parameter 2 bit 16 is set.
Type:
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.
6 - User media partition maximum retry count allowed.
If entered, this parameter specifies the maximum retry count for user partition
accesses. The specified value will only be used by the error recovery algorithm,
when Parameter 2 bit 20 is set.
Type:
Range:
0 to 0xFFFF
Default: If this parameter is not entered, the maximum user partition retry count
for the specified error recovery mode will not be changed.
7 - Error Recovery Options.
If entered, this parameter selects the following error recovery options.
Bit 0: Enable maximum OTF ECC correction.
If set, maximum on-the-fly ECC correction will be applied.
Bit 1: Apply only minimum ECC correction.
If set, only minimum on-the-fly ECC correction will be applied.
Bit 2: Enable transfer of uncorrectable data block.
If set, uncorrectable sectors will be transfered from the Correction
Buffer to the Read Buffer.
Bit 3: Enable restricted servo flaws coast - read.
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
Bit 4: Enable restricted servo flaws coast - write.
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
Bit 5: Enable early error recovery exit.
If set, error recovery will terminate when the retry step is equal
to the early exit retry step.
Bit 6: Disable normal retry tweak steps.
If set, all retry tweak steps will be disabled for normal error recovery
modes.
Bit 7: Disable full-hidden retry tweak steps.
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.
Bit 8: Disable full retry tweak steps.
If set, all retry steps will be disabled for the full error recovery
modes.
Bit 9: Disable undo of retry tweaks.
If set, the retry tweaks will not be undone after the retry completes.
Bit 10: Disable on-the-fly ECC correction - initial access.
If set, on-the-fly ECC correction will be disabled for the initial
attempt to access a sector.
Bit 11: Disable on-the-fly ECC correction - normal retry tweak steps.
If set, on-the-fly ECC correction will be disabled for the normal
error recovery modes for all retry steps.
Bit 12: Disable on-the-fly ECC correction - full-hidden retry tweak steps.
If set, on-the-fly ECC correction will be disabled for the full
error recovery modes for all hidden retry steps. The first 9
steps of the full error recovery modes are defined as hidden retries.
Bit 13: Disable on-the-fly ECC correction - full retry tweak steps.
If set, on-the-fly ECC correction will be disabled for the full
error recovery modes for all retry steps following the hidden
retries. The first 9 retry steps of the full error recovery modes
are defined as hidden retries.
Bit 14: Enable selected ER retry step.
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 15: Skip initial read/write access of request.
Typically, the initial access of a sector is performed without error
recovery. If this bit is set, the initial sector access will be
performed using error recovery. If Mode Options Bit 14 is also set,
a specified error recovery step will be used for the initial sector
access. If Mode Options Bit 14 is cleared, the first error recovery
step will be used for the initial sector access.
Bit 16: Enable ECC selection setting - normal retries only.
If set, a specified ECC T-Level will be used for on-the-fly correction
only during NORMAL retries. (This bit is a "don't care" if Bit 23 is
set.)
Bit 17: Disable retry on track integrity error.
If set, retries will be disabled on track integrity errors.
Bit 18: Allow one retry.
If set, only a single, normal retry will be enabled. (This feature
is not typically enabled in OEM code.)
Bit 19: Disable PFast.
If set, P-Fast will be disabled during preamp fast tweaks.
Bit 20: Enable use of selected maximum read retry count.
If set, only a specified number of read retries will be allowed when
read retries are required.
Bit 21: Enable use of selected maximum write retry count.
If set, only a specified number of write retries will be allowed when
write retries are required.
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 23: Enable ECC selection setting.
If set, a specified ECC T-Level will be used for on-the-fly correction
for all retry modes. Setting this bit causes Bit 16 to be considered
a "don't care."
Bit 24: Disable the extended retries applied to Write Unsafe error.
If set, the extended retries applied to Write Unsafe errors will be
disabled.
Bit 25: Enable reporting of recovered servo seek error to host.
If set, recovered servo seek errors will be reported to the host.
Bit 26: Enable Read/Write to complete transfers in RAW mode.
Range:
0 to 0xFFFF
Default: If this parameter is not entered, the current error recovery options
will be used.
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the current Error Recovery configuration will be displayed
as follows.
"Error Recovery Info:
"
"
"
"
"
P0:
P0:
P0:
P0:
P0:
Config
Config
Config
Config
Config
0
1
2
3
4
"
"
"
"
P1:
P1:
P1:
P1:
Mode
Mode
Mode
Mode
(Default Normal)"
(Default Full)"
(Max Normal)"
(Max Full)"
0
1
2
3
(Normal)"
(Format User Partition)"
(Format System Partition)"
(Full)"
(Customer)"
or
or
or
or
or
or
or
or
or
or
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
or
"
"
"
"
or
"
"
or
"
"
or
"
"
or
where
cc
is the maximum Read Retry Level for the current Error Recovery Mode
dd
is the maximum Write Retry Level for the current Error Recovery Mode
eeeeee are the Error Recovery Options that are selected for the current Error
Recovery Mode
ff
is the Maximum User Partion Retry Count for the current Error Recovery Mode
gg
is the ECC T-Level to be used for On-The-Fly Correction for the current Error
Recovery Mode
hh
is the Selected Error Retry Step for the current Error Recovery Mode
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Added support for "options" changes (only if DERP is disabled).
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).
Description:
This command sets the JIT seek speed to be used for future diagnostic seek, read and
write operations.
Quick Help:
"SetSkSpeed, u[Opts],[SkSpeed]";
Input Parameters:
0 - Options.
This parameter specifies options for modifying the Diagnostic Seek Speed.
0 = Display current Diagnostic Seek Speed status
Selecting this option will display the current Diagnostic Seek Speed
status.
1 = Enable Diagnostic Seek Speed specified by Parameter 1
Selecting this option will enable the Seek Speed specified by Parameter 1
for future diagnostic seek, read and write operations.
2 = Disable Diagnostic Seek Speed
Selecting this option will disable the Diagnostic Seek Speed. This
will allow the Read/Write subsystem to pick the optimum Seek Speed.
Type:
Range:
0 to 2
Range:
0 to FFh
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed.
"Diag Seek Speed c enabled"
"Diag Seek Speed disabled"
or
where
c is the Diagnostic Seek Speed that is currently selected.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The Set Test Space command configures the diagnostic Test Space based on the parameters
entered.
Quick Help:
"SetTestSpace, A[OptsOrParmSelect],[ParmValue],[AddrType],[HdForCylLimit]";
Input Parameters:
0 - Test Space Parameter select / Test Space Options low.
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.
Bit F-B: not used
Bit A: Sequential 80% and Random 20%
If set, the cylinder and head address will be updated sequentially
80% of the time and randomly 20% of the time.
Bit 9: Random Transfer Length
If set, a random transfer length will be used for read/write
operations.
Bit 8: Random Starting Sector
If set, a random starting sector will be used for read/write
operations. If cleared, read/write operations will start at
sector 0.
Bit 7: Random Data
If set, random data will be used for disk write operations. If
cleared, the existing buffer data will be used for write operations.
Bit 6: Sequential Out
If set, the cylinder and head address will be updated sequentially
from the Inner Diameter to the Outer Diameter. If cleared, the
cylinder and head address will be updated sequentially from the
Outer Diameter to the Inner Diameter.
Bit 5: Odd Cylinders
If set, only odd numbered cylinders will be accessed.
Range:
0 to 0xFFFF
Default: None
Range:
0 to 0xffffffff
Default: None
2 - Test Space Address Type.
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:
If Parameter 2 is equal to 0 (User Area) and a new maximum cylinder address
is being specified (Parameter 0 equal to 9), Parameter 1 will specify the
new maximum logical cylinder address for commands that access the User Area
in LLL CHS mode.
If Parameter 2 is equal to 1 (System Area) and a new maximum cylinder address
is being specified (Parameter 0 equal to 9), Parameter 1 will specify the
new maximum logical cylinder address for commands that access the System Area
in LLL CHS mode.
If Parameter 2 is equal to 2 (Physical) and a new maximum cylinder address is
being specified (Parameter 0 equal to 9), Parameter 1 will specify the maximum
physical cylinder address for commands that use PLP CHS or PLP CHW address
modes.
Type:
Range:
0 to 2
Range:
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the Test Space Limits for the currently selected Address Modes
will be displayed as follows:
One of the following strings will be displayed to indicate the diagnostic address
mode that is currently selected.
"User LBA"
"User LLL CHS"
"User LLP CHW"
"System LBA"
"System LLL CHS"
"System LLP CHW"
"PLP CHS"
"PLP CHW"
or
or
or
or
or
or
or
This may be followed by one or more of the following strings indicating which Test
Space options are selected.
"80% Rnd 20% Seq"
"Rnd Cyls"
"Rnd Hds"
"Seq Out"
"Seq In"
"Even Cyls"
"Odd Cyls"
"Rnd Sec"
"Rnd Wedge"
"Rnd Lngth"
"Rnd Data"
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.
"LBAs cccccccc - dddddddd"
where
cccccccc is the minimum LBA to be tested
dddddddd is the maximum LBA to be tested
For all other address modes, the following strings indicate the range of heads and
cylinders being tested.
"Hd e"
"Hds f - g"
"Cyl hhhhhh"
where
e is the address of the single head being tested
f is the address of the first head being tested
g is the address of the last head being tested
hhhhhh is the address of the single cylinder being tested
iiiiii is the address of the first cylinder being tested
jjjjjj is the address of the last cylinder being tested
The Test Space Limits for all Address Modes will be displayed as follows:
"All Addr Modes"
"User LBA Mode
" LBAs kkkkkkkk - mmmmmmmm"
"System LBA Mode
" LBAs nnnnnnnn - pppppppp"
"User LLL CHS and User LLP CHW Mode
" Hd q Cyls rrrrrr - ssssss"
"System LLL CHS and System LLP CHW Mode
" Hd t Cyls uuuuuu - vvvvvv"
"PLP CHS and User PLP CHW Mode
" Hd w Cyls xxxxxx - yyyyyy"
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
q
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
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.
"Buffer Sector Offset bbbbbbbb"
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:
The following command displays without modifying the Test Space that is currently
selected:
F3 2>A
The following commands specify how the target address is to be updated:
F3
F3
F3
F3
F3
F3
F3
2>A0
2>A1
2>A2
2>A3
2>A5
2>A6
2>A7
F3
F3
F3
F3
2>A12
2>A13
2>A22
2>A23
(sequential
(sequential
(sequential
(sequential
F3
F3
F3
F3
2>A16
2>A17
2>A26
2>A27
(random
(random
(random
(random
F3
F3
F3
F3
F3
F3
2>A42
2>A43
2>A52
2>A53
2>A62
2>A63
(sequential
(sequential
(sequential
(sequential
(sequential
(sequential
inward
inward
inward
inward
F3
F3
F3
F3
F3
F3
F3
F3
F3
F3
F3
F3
F3
F3
2>A8,123,,0
2>A9,234,,0
2>A8,567,,1
2>A9,890,,1
2>A8,11,1,0
2>A9,23,1,0
2>A8,567,2,0
2>A9,876,2,0
2>AA,3
2>AB,4567
2>AC,9876
2>AB,223,1
2>AC,7845,1
2>AE,1
(sets
(sets
(sets
(sets
(sets
(sets
(sets
(sets
(sets
(sets
(sets
(sets
(sets
(sets
the
the
the
the
the
the
the
the
the
the
the
the
the
the
minimum
maximum
minimum
maximum
minimum
maximum
minimum
maximum
maximum
minimum
maximum
minimum
maximum
minimum
The following command resets the Test Space to its default state:
F3 2>AD
The following command sets the Target Buffer Sector Offset to 0
F3 2>AF,0
Revision History:
0001.0000
0002.0000
Initial revision.
Modified for VBAR to support minimum and maximum cylinder address values
for each head.
Added new capability that enables users to set the Target Buffer Sector Offset
to any value they want.
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).
0002.0001
0011.0000
Description:
This command configures the track layout based on the specified track format type.
Quick Help:
"SetTrackFormat, K[UserAreaTrkFormatType],[SysAreaTrkFormatType]";
Input Parameters:
0 - User Partition Track Format Type.
This parameter specifies the track format type to be applied to user
media partition.
0 = Normal Track Format - multiple sectors per wedge w/ splits
1 = No Splits Format - multiple sectors per wedge w/o splits
2 = Single Sector Per Wedge Format
Type:
Range:
0, 1, or 2
Default: 0
Range:
0, 1, or 2
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"SetTrackingOffset, K[OffsetValue],[PersOrTempOpt],[UnitsOpt],[ChanReload]";
Input Parameters:
0 - Track Follow Offset value.
This parameter is a signed 16-bit number representing the amount of tracking
offset to apply in the servo system. Parameter 2 will indicate whether the offset
is in units of 1/256th, a.k.a. Q8 format, or 0.1% of the servo or data track width.
Parameter 2 will also indicate whether the offset is in servo tracks or in data tracks
Type:
Range:
0x8000 to 0x7FFF
Default: 0
Range:
0 or 1
bit is equal
of the servo
bit is equal
the servo or
Type:
Range:
0 to 0xFF
Range:
0 or 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
dddddddd is the error code returned by the R/W subsystem
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.
Bit 0:
Bit 1:
Bit 2:
Bit 3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
Enables
NA
Enables
Enables
NA
NA
Enables
NA
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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.
is
is
is
is
minutes
seconds
milliseconds
microseconds
Examples:
Example #1:
To persistently apply the servo tracking offset in the amount of 256/256th of data track wi
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 w
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 widt
in positive direction
F3 2>A0
F3 2>S1000
F3 2>K3E8,1,3
Revision History:
0001.0000
0001.0001
0011.0000
Initial revision.
Added an option flag to allow the offset input in servo tracks.
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).
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.
Quick Help:
"SlowWrChs, w[Sec],[NumSecs],[ConSec],[Skip],[UnitOfSkip]";
Input Parameters:
0 - Logical or Physical Sector Address.
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.
Type:
Range:
Default: 0
1 - Transfer Length.
This parameter specifies the number of total sectors to write.
Type:
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.
If a Transfer Length is entered, it will be limited to the number of
sectors remaining on the track.
2 - Consecutive Sectors to be Written.
This parameter specifies the number of consecutive sectors to be written
as a segment.
Type:
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.
Type:
Range:
0 to 0xFFFF
Default: 1
4 - Unit of Skip.
This parameter specifies the unit of skip. If Parameter 4 is equal to 0, the
skip is specified in the wedges. If its value is 1, the skip is specified in
the sectors. Otherwise, the skip is specified in the time of micro seconds.
Type:
Range:
0 to 0xFFFF
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
is
is
is
is
minutes
seconds
milliseconds
microseconds
Examples:
Example #1:
To write a single logical sector
2>A3
2>S44,0
2>L,5
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:
0001.0000
0011.0000
Initial revision.
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).
0011.0001
Added physical sector address flag to write in PLP CHS address mode.
Description:
Performs several diagnostic SMART functions.
Quick Help:
"SmartControl, N[SubCmd],[SubCmdParm0],[SubCmdParm1]";
Input Parameters:
0 - Serial Port Command.
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).
0x00: TOGGLE_SMART - toggles SMART on/off.
0x01: INITIALIZE_SMART_DATA - initializes SMART statistics data (both in RAM and SMART
sectors). Also initializes Fast Flush and Media Cache on the disk.
0x02: UPDATE_SMART_ATTRIBUTES - updates SMART's attributes.
0x03: SET_CLEAR_PREFAILURE_BIT - sets/clears specified pre-failure warranty bit.
0x04: INITIALIZE_SMART - is the same as INITIALIZE_SMART_DATA.
0x05: DUMP_SMART_ATTRIBUTES - retrieves SMART's attributes.
0x06: DUMP_SMART_THRESHOLDS - retrieves SMART's thresholds.
0x07: DUMP_SMART_GLIST - retrieves the G-List.
0x08: DUMP_CE_LOG - retrieves the critical event log.
0x09: DUMP_PENDING_LIST - retrieves the pending list.
0x0B: START_SHORT_DST - start the short DST after next power up or ^T.
0x0C: START_LONG_DST - start the long DST after next power up or ^T.
0x10: DUMP_2_HR_LOG - retrieves the 2 hr log.
0x23: CLEAR_PERSISTENT_INFO - clears persistent information.
0xFF: NO_COMMAND
Type:
Range:
0x00 to 0x23
Default: None
1 - Variable Parameter
Multi-purpose parameter. Used in command 01 to initialize Fast Flush and Media cache.
Used in command 03 as the number of the attribute to change.
Type:
Range:
0 to 0xFFFF
Default: None
2 - Boolean Bit Value.
Used in command 03 to set/clear the boolean value for the bit.
Type:
Boolean value
Range:
0 to 0x1
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
N1 - initialize Smart data
N5 - display attribute values
N6 - display threshold values
F3 1>N5
Att
Num Flgs normlzd worst
1 000F 64
64
3 0003 64
64
4 0032 64
64
5 0033 64
64
7 000F 64
FD
9 0032 64
64
A 0013 64
64
C 0032 64
64
B8 0032 64
64
BB 0032 64
64
BC 0032 64
FD
BD 003A 64
64
BE 0022 46
46
C2 0022 1E
28
C3 001A 64
64
C5 0012 64
64
C6 0010 64
64
- etc
raw
00000000000000
00000000000000
00000000000001
00000000000000
00000000000001
00000000000000
00000000000000
00000000000001
00000000000000
00000000000000
00000000000000
00000000000000
0000001E1E001E
00001E0000001E
00000000000000
00000000000000
00000000000000
F3 1>N6
Att Thresh
1
6
3
0
4
14
5
24
7
1E
9
0
- etc
N8 - display critical event log
F3 1>N8
dec
Hours
2103
2103
2103
2103
2103
2103
LBA
10000
10002
10004
10006
100000
100000
R
D
D
D
D
23
23
Theta
8E6F
8EB0
8EF1
8F32
3D2B
3D2B
Z
0
0
0
0
1
1
EC
C4090081
C4090081
C3160080
C3160080
80
C3160080
Cmd
35
35
25
25
25
35
DERP
error DERP
type retry temp type
FF
FF
0 recovered write
FF
FF
0 recovered write
FF
FF
0 data scrubbed
FF
FF
0 data scrubbed
FF
FF
0 marked as BBM
FF
FF
0 write BBM data scrubbed
2103
2103
2103
2103
2103
2103
12000
12000
13000
13000
- 217CAD77
- 217CAD78
FF57
FF57
FF57
FF57
517E
517E
7405
7405
7445
7445
B2C
B51
2
2
2
2
5
5
C4090081
C4090081
C3160080
C3160080
80
80
35
35
35
35
EC
EC
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
0
0
23
23
23
23
wedge reallocated
reallocated
RAW rewrite
RAW reallocated
BGMS marked as BBM
BGMS marked as BBM
Note that the first N entries in the log are preserved from when the
drive entered service. The remaining entries form a circular buffer
where new entries will overwrite old entries when the log
fills up. To find the value of N, see the approriate developer.
What columns mean:
LBA
LBA of log entry
R
physical cylinder normalized to range 0 - max physical cylinder
value shown in DECIMAL not hex
Theta
physical sector number normalized to range 0 - FFFF
Z
head number
EC
error code of log entry
Cmd
interface command prior to event
error type DER error type
retry
DER retry
temp
temperature at time of event
type
text description of log entry type
For further information on critical event log
types, please find the developer of the code
that added the log entry.
Revision History:
0001.0000
Initial revision.
0002.0000
Added display of raw data to the SMART data display.
00011.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).
0011.0001
Added support for SMART Clear Persistent Information (23)
Description:
This command performs the specified Batch File function.
Quick Help:
"SpecialBatchFileFunction, *[FuncId],[FuncParm0],[FuncParm1]";
Input Parameters:
0 - Batch File Function ID.
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.
Range:
0 to B hex
Default: 0
1 - Special Batch File Function Parameter.
This parameter specifies additional information required by the special Batch
File function selected by Parameter 0.
If Parameter 0 is equal to 0, 1, 5, 9 or B this parameter will not be used.
If Parameter 0 is equal to 2, this parameter specifies the number of milliseconds
to delay.
If Parameter 0 is equal to 3, 4 or 8, this parameter specifies the number of the
label to which batch file execution is to branch, when the specified condition is
satisfied.
If Parameter 0 is equal to 6 and this parameter is entered, it specifies the
Diagnostic Error Code on which Batch File execution is to be terminated.
If Parameter 0 is equal to 6 and this parameter is not entered, Batch File
execution will be terminated on any error that occurs.
If Parameter 0 is equal to 7, this parameter specifies the value to which the
batch file Loop Count is to be set.
If Parameter 0 is equal to A, this parameter specifies the expected Diagnostic
Error Code associated with the error that is expected.
Type:
Range:
Range:
0 to 3,
0 to 0xFFFF,
Default: 0
3 - Special Batch File Function Parameter.
This parameter specifies additional information required by the special Batch
File function selected by Parameter 0.
If Parameter 0 is equal to 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 or B this parameter will
not be used.
If Parameter 0 is equal to A, this parameter specifies the maximum number of
times the error specified by Parameter 1 is expected to occur. If the error
occurs more than the specified number of times this will be considered to be a
failing condition.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
None
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"SpinDownAndResetDrive, e[MsecDelay],[Opts]";
Input Parameters:
0 - Delay After Spin Down.
This parameter specifies the number of milliseconds to delay after spinning down
and before resetting the drive.
Type:
Range:
0x1388 to 0xFFFF
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.
"Spin Down Complete"
"Elapsed Time a mins b secs" or
"Elapsed Time b.c secs"
or
"Elapsed Time c.d msecs"
where
a
b
c
d
is
is
is
is
minutes
seconds
milliseconds
microseconds
When delaying following spin down, the following string will be displayed.
"Delaying eeee msec"
where
eeee is the length of the delay in milliseconds
After the delay is complete, one of the following strings will be output to indicate
that the reset is being performed.
"Jumping to Power On Reset"
"Jumping to Boot Loader"
or
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command spins the drive down.
Quick Help:
"SpinDownDrive, Z";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
In addition, one of the following strings will be output to indicate the current Spin
State.
"Spin Down Complete"
"Spin Up held prior to Unlatch"
"Spin Up held prior to Demod Sync"
"Spin Up held prior to Track Follow"
"Spin Up Complete"
"Spin Error"
"Invalid Spin State"
or
or
or
or
or
or
The elapsed time for the spin operation will be displayed as follows.
"Elapsed Time a mins b secs" or
"Elapsed Time b.c secs"
or
"Elapsed Time c.d msecs"
where
a
b
c
d
is
is
is
is
minutes
seconds
milliseconds
microseconds
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
The command spins up the drive. Optionally, the spin up operation can be paused
in several intermediate states.
Quick Help:
"SpinUpDrive, U[HoldState],[Hd],[Cyl]";
Input Parameters:
Range:
0 to 0xFF
Default: 0
1 - Logical Head Address.
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.
Type:
Range:
0 to 0xFF
Range:
0 to 0xFFFFFFFF
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
In addition, one of the following strings will be output to indicate the current Spin
State.
"Spin Down Complete"
"Spin Up held prior to Unlatch"
"Spin Up held prior to Demod Sync"
"Spin Up held prior to Track Follow"
"Spin Up Complete"
"Spin Error"
"Invalid Spin State"
or
or
or
or
or
or
The elapsed time for the spin operation will be displayed as follows.
"Elapsed Time a mins b secs" or
"Elapsed Time b.c secs"
or
"Elapsed Time c.d msecs"
where
a
b
c
d
is
is
is
is
minutes
seconds
milliseconds
microseconds
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command toggles the Debug Display Enable state.
Quick Help:
"ToggleDebugDisplayEnable";
Input Parameters:
None
Output Data:
If the Debug Display is enabled, the following message will be displayed.
"Debug Display enabled"
If the Debug Display is disabled, the following message will be displayed.
"Debug Display disabled"
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"ToggleDiagIdleMode";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
xxx
xxx
xxx
xxx
xxx
xxx
ctl-P
ctl-P
ctl-P
ctl-P
ctl-P
ctl-P
yyyyyyyyyyy
yyyyyyyyyyy
yyyyyyyyyyy
yyyyyyyyyyy
yyyyyyyyyyy
yyyyyyyyyyy
Where:
xxx is either "On" or "Off"
yyyyyyyyyyy is either "toggles" or "won't toggle"
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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
Quick Help:
"ToggleEibTracing";
Input Parameters:
None
Output Data:
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command toggles the Interface Command Echo state
Quick Help:
"ToggleInterfaceCmdEcho";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, following information will be displayed.
If the Toggle Interface Command Echo is enabled, following will be displayed
"EchoInterfaceCmds: On"
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command steps through all possible combinations of enabled / disabled states
for the following three R/W Tracing functions:
Retry Tracing
Command Tracing
Error Tracing
Quick Help:
"ToggleRwTracing";
Input Parameters:
None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the following information will be displayed.
"e c r = a b c"
where
"e c r" is an acronym for "error", "command", "retry" tracing
a is equal to 1 if error tracing is enabled and 0 if error tracing is disabled
b is equal to 1 if command tracing is enabled and 0 if command tracing is disabled
c is equal to 1 if retry tracing is enabled and 0 if retry tracing is disabled
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command translates the specified Logical Block Address (LBA) to the following:
-
Quick Help:
"XlateLba, F[LbaHi],[LbaLo],[SysAreaOpt],[NumLbas]";
Input Parameters:
0 - LBA or LBA High.
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.
If Parameter 2 is entered, then the specified LBA is located in the System
Area, else it is located in the User Area.
Type:
Range:
Default: 0
1 - LBA Low.
This parameter contains the lower 16-bits of the Logical Block Address to be
translated.
If Parameter 2 is entered, then the specified LBA is located in the System
Area, else it is located in the User Area.
Type:
Range:
0 to 0xffff
Range:
0 to 0xffff
Default: None
3 - LBA Count.
This value will specify the number of consecutive LBAs to be translated.
Type:
Range:
0 to 0xffffffff
Default: 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the track information will be displayed as follows.
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
This will be followed by the sector information which will be displayed as follows.
"Sector Info:"
"LBA
PBA
LogSec PhySec Wdg SFI
"
"cccccccc dddddddd eeee
ffff gggg hhhhhhhh"
where
cccccccc
dddddddd
eeee
ffff
gggg
hhhhhhhh
qqq
rrrrrr
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Added Nominal Cylinder and Radius to the Track Info output.
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).
Translate Logical Cylinder, Logical Head and Logical Sector (Level A 'c')
Description:
This command translates the specified LLL CHS (Logical Cylinder, Logical Head and
Logical Sector) address to the following:
-
Quick Help:
"XlateLllChs, c[Cyl],[Hd],[Sec],[SysAreaOpt],[NumSecs]";
Input Parameters:
0 - Logical Cylinder Address.
If Parameter 3 was entered, this parameter specifies a System Area Logical
Cylinder Address to be translated. If Parameter 3 was not entered, this
parameter specifies a User Area Logical Cylinder Address to be translated.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
1 - Logical Head Address.
This parameter specifies the Logical Head Address to be translated.
Type:
Range:
0 to 0xFF
Default: 0
2 - Logical Sector Address.
This parameter specifies the Logical Sector Address to be translated.
Type:
Range:
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.)
Type:
Range:
0 to 0xffffffff
Default: 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the track information will be displayed as follows.
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
This will be followed by the sector information which will be displayed as follows.
"Sector Info:"
"LBA
PBA
LogSec PhySec Wdg SFI
"
"cccccccc dddddddd eeee
ffff gggg hhhhhhhh"
where
cccccccc
dddddddd
eeee
ffff
gggg
hhhhhhhh
qqq
rrrrrr
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Added Nominal Cylinder and Radius to the Track Info output.
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).
Description:
This command translates the specified Logical Sector address on the current track to
the following:
-
Quick Help:
Level 2
"XlateLogSec, l[Sec],[NumSecs]";
Level 3
"XlateLogSec, q[Sec],[NumSecs]";
Input Parameters:
0 - Logical Sector Address.
This parameter specifies the address of the Logical Sector on the current
track to be translated.
Type:
Range:
Default: 0
1 - 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.)
Type:
Range:
0 to 0xffffffff
Default: 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the track information will be displayed as follows.
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
This will be followed by the sector information which will be displayed as follows.
"Sector Info:"
"LBA
PBA
LogSec PhySec Wdg SFI
"
"cccccccc dddddddd eeee
ffff gggg hhhhhhhh"
where
cccccccc
dddddddd
eeee
ffff
gggg
hhhhhhhh
qqq
rrrrrr
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Added Nominal Cylinder and Radius to the Track Info output.
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).
Description:
This command translates the specified Nominal cylinder and logical head address to the followi
- LBA (Logical Block Address)
Quick Help:
"XlateNominalCyl, e[Cyl],[Hd],[Sec],[SysAreaOpt]";
Input Parameters:
0 - Nominal Cylinder Address.
This parameter specifies the Nominal Cylinder Address to be translated.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
1 - Logical Head Address.
This parameter specifies the Logical Head Address to be translated.
Type:
Range:
0 to 0xFF
Default: 0
2 - Logical Sector Address.
This parameter specifies the Logical Sector Address to be translated.
Type:
Range:
Default: 0
3 - System Area Flag.
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.
Type:
Range:
0 to 0xFFFF
Default: None
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the track information will be displayed as follows.
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
This will be followed by the sector information which will be displayed as follows.
"Sector Info:"
"LBA
PBA
LogSec PhySec Wdg SFI
"
"cccccccc dddddddd eeee
ffff gggg hhhhhhhh"
where
cccccccc
eeee
ffff
gggg
hhhhhhhh
qqq
rrrrrr
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"XlatePba, C[PbaHi],[PbaLow],[NumPbas]";
Input Parameters:
0 - PBA or PBA High.
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.
Type:
Range:
Default: 0
1 - PBA Low.
This parameter contains the lower 16-bits of the Physical Block Address to be
translated.
Type:
Range:
0 to 0xffff
Range:
0 to 0xffffffff
Default: 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the track information will be displayed as follows.
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
This will be followed by the sector information which will be displayed as follows.
"Sector Info:"
"LBA
PBA
LogSec PhySec Wdg SFI
"
"cccccccc dddddddd eeee
ffff gggg hhhhhhhh"
where
cccccccc
dddddddd
eeee
ffff
hhhhhhhh
qqq
rrrrrr
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Added Nominal Cylinder and Radius to the Track Info output.
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).
Description:
This command translates the specified Physical Sector address on the current track to
the following:
-
Quick Help:
Level 2
"XlatePhySec, h[Sec],[NumSecs]";
Level 3
"XlatePhySec, p[Sec],[NumSecs]";
Input Parameters:
0 - Physical Sector Address.
This parameter specifies the address of the Physical Sector on the current
track to be translated.
Type:
Range:
Default: 0
1 - Physical Sector Count.
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.)
Type:
Range:
0 to 0xffffffff
Default: 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the track information will be displayed as follows.
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
This will be followed by the sector information which will be displayed as follows.
"Sector Info:"
"LBA
PBA
LogSec PhySec Wdg SFI
"
"cccccccc dddddddd eeee
ffff gggg hhhhhhhh"
where
cccccccc
dddddddd
eeee
ffff
gggg
hhhhhhhh
qqq
rrrrrr
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Added Nominal Cylinder and Radius to the Track Info output.
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).
Translate Physical Cylinder, Logical Head and Physical Sector (Level A 'd')
Description:
This command translates the specified PLP CHS (Physical Cylinder, Logical Head and
Physical Sector) address to the following:
-
Quick Help:
"XlatePlpChs, d[Cyl],[Hd],[Sec],[NumSecs]";
Input Parameters:
0 - Physical Cylinder Address.
This parameter specifies the Physical Cylinder Address to be translated.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
1 - Logical Head Address.
This parameter specifies the Logical Head Address to be translated.
Type:
Range:
0 to 0xFF
Default: 0
2 - Physical Sector Address.
This parameter specifies the Physical Sector Address to be translated.
Type:
Range:
Default: 0
3 - Physical Sector Count.
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.)
Type:
Range:
0 to 0xffffffff
Default: 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the track information will be displayed as follows.
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
This will be followed by the sector information which will be displayed as follows.
"Sector Info:"
"LBA
PBA
LogSec PhySec Wdg SFI
"
"cccccccc dddddddd eeee
ffff gggg hhhhhhhh"
where
cccccccc
dddddddd
eeee
ffff
gggg
hhhhhhhh
qqq
rrrrrr
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Added Nominal Cylinder and Radius to the Track Info output.
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).
Translate Physical Cylinder, Logical Head and Physical Wedge (Level A 'f')
Description:
This command translates the specified PLP CHW (Physical Cylinder, Logical Head and
Physical Wedge) address to the following:
-
Quick Help:
"XlatePlpChw, f[Cyl],[Hd],[Wdg],[NumWdgs]";
Input Parameters:
0 - Physical Cylinder Address.
This parameter specifies the Physical Cylinder Address to be translated.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
1 - Logical Head Address.
This parameter specifies the Logical Head Address to be translated.
Type:
Range:
0 to 0xFF
Default: 0
2 - Physical Wedge Address.
This parameter specifies the Physical Wedge Address to be translated.
Type:
Range:
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:
Range:
0 to 0xffffffff
Default: 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the track information will be displayed as follows.
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
This will be followed by the sector information which will be displayed as follows.
"Sector Info:"
"LBA
PBA
LogSec PhySec Wdg SFI
"
"cccccccc dddddddd eeee
ffff gggg hhhhhhhh"
where
cccccccc
dddddddd
eeee
ffff
gggg
hhhhhhhh
qqq
rrrrrr
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Added Nominal Cylinder and Radius to the Track Info output.
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).
Description:
This function translates the specified Physical Cylinder, Logical Head, Starting Symbol
Offset from Index and Symbol Length to the following:
Quick Help:
"XlateSfi, D[PhyCyl],[Hd],[Sfi],[NumSfis]";
Input Parameters:
0 - Physical Cylinder Address.
This parameter specifies the Physical Cylinder Address to be translated.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
1 - Logical Head Address.
This parameter specifies the Logical Head Address to be translated.
Type:
Range:
0 to 0xFF
Default: 0
2 - Symbol From Index.
This parameter specifies the Symbol From Index to be translated.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
2 - Length In Symbols.
This parameter specifies the length in symbols to be translated.
Type:
Range:
0 to 0xFFFFFFFF
Default: 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the track information will be displayed as follows.
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
This will be followed by the sector information which will be displayed as follows.
"Sector Info:"
"LBA
PBA
LogSec PhySec Wdg SFI
SymLen SecLen WdgLen"
"cccccccc dddddddd eeee
ffff gggg hhhhhhhh iiiiiiii jjjjjj kkkkkk"
where
cccccccc
eeee
ffff
gggg
hhhhhhhh
iiiiiiii
jjjjjj
kkkkkk
qqq
rrrrrr
Revision History:
0001.0000
0011.0000
Initial revision.
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).
Description:
This command translates the specified Physical Wedge address on the current track to
the following:
- LBA (Logical Block Address)
Quick Help:
"XlateWedge, t[Wdg],[NumWdgs]";
Input Parameters:
0 - Physical Wedge Address.
This parameter specifies the Physical Wedge Address to be translated.
Type:
Range:
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:
Range:
0 to 0xffffffff
Default: 1
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
If no error occurred, the track information will be displayed as follows.
"Track Info:"
"Partition PhyCyl LogCyl
NomCyl Radius_mils LogHd Zn FirstLba FirstPba LogSecs PhySec
"User
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
"System
cccccccc dddddddd nnnnnnnn o.ooooooEoo ee
ff gggggggg hhhhhhhh iiii
jjjj
where
cccccccc
dddddddd
ee
ff
gggggggg
hhhhhhhh
iiii
jjjj
kkkk
llll
mmmm
nnnnnnnn
o.ooooooEoo
This will be followed by the sector information which will be displayed as follows.
"Sector Info:"
"LBA
PBA
LogSec PhySec Wdg SFI
"
"cccccccc dddddddd eeee
ffff gggg hhhhhhhh"
where
cccccccc
dddddddd
eeee
ffff
gggg
hhhhhhhh
qqq
rrrrrr
Revision History:
0001.0000
0002.0000
0011.0000
Initial revision.
Added Nominal Cylinder and Radius to the Track Info output.
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).
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.
Quick Help:
"WrChs, W[Sec],[NumSecs],,[PhyOpt],[Opts]";
Input Parameters:
0 - Logical or Physical Sector Address.
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.
Type:
Range:
Default: 0
1 - Transfer Length.
This parameter specifies the number of consecutive sectors to write.
Type:
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.
If a Transfer Length is entered, it will be limited to the number of
sectors remaining on the track.
2 - not used.
Type:
None
Range:
None
Default: None
3 - Physical Sector Address Flag.
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.
Type:
Range:
0 to 0xFFFF
Default: None
4 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Bits 15-5: not used.
Bit 4:
Bit 3:
not used.
Bit 2:
Bit 1:
Bit 0:
Continue On Error.
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.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
iiiiii is the Physical Cylinder Address of the sector in error
j is the Logical Head Address of the sector in error
kkkk is the Physical Sector Address of the sector in error
llllllll is the number of sectors remaining to be read or written
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.
Bit 0:
Bit 1:
Bit 2:
Bit 3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
vvvv is the starting Physical Sector Address
wwwwwwww is the starting Transfer Length
If Bit 4 is set, the Recovery Status will be displayed as follows.
"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
BBBBBB is the Logical Cylinder Address of the last recovered sector
C is the Logical Head Address of the last recovered sector
DDDD is the Logical Sector Address of the last recovered sector
EEEEEE is the Physical Cylinder Address of the last recovered sector
F is the Logical Head Address of the last recovered sector
GGGG is the Physical Sector Address of the last recovered sector
HHHH are the Recovery Flags reported by the Read/Write code
II is the Recovery Count reported by the Read/Write code
If Bit 5 is set, the Fault Status will be displayed as follows.
"Drive Fault Status JJJJ Preamp Fault Status KKKK"
where
JJJJ is the Drive Fault Status reported by the Read/Write code
KKKK is the Preamp Fault Status reported by the Read/Write code
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
b
c
d
is
is
is
is
minutes
seconds
milliseconds
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
F3
F3
F3
2>A3
2>S44,0
2>L,5
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)
Note: An error message will be displayed for each sector in error.
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
F3
F3
F3
2>A0
2>AF,5
2>S45,1
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:
0001.0000
0001.0001
0001.0002
0011.0000
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Moved the Enable Dynamic Sparing option from the parameter 2 to the bit 1 of
the parameter 4.
Added new Rotate Buffer Sector Offset option to the bit 2 of the parameter 4.
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).
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.
Quick Help:
"WrLba, W[Lba],[NumLbas],,[Opts]";
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.
Type:
Range:
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.
If a Transfer Length is entered, it will be limited to the number of
LBAs remaining in the Test Space.
2 - not used.
In the ST-10 code, entering this parameter enables a 512-byte block to be
written 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.
Bits 15-6: not used.
Bit 5:
Bit 4:
Bits 3-2:
not used.
Bit 1:
Bit 0:
Continue On Error.
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.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
iiiiii is the Physical Cylinder Address of the sector in error
j is the Logical Head Address of the sector in error
kkkk is the Physical Sector Address of the sector in error
llllllll is the number of sectors remaining to be read or written
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.
Bit 0:
Bit 1:
Bit 2:
Bit 3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
vvvv is the starting Physical Sector Address
wwwwwwww is the starting Transfer Length
If Bit 4 is set, the Recovery Status will be displayed as follows.
"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"
is
is
is
is
minutes
seconds
milliseconds
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)
Note: An error message will be displayed for each LBA in error.
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:
0001.0000
0001.0001
0001.0002
0011.0000
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Modified to write only the LBAs remaining on the track containing the
target LBA, if the LBA and Transfer Length are not entered by the user.
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).
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.
Quick Help:
"WrLongOrSystemChs, w[LongSec],[LongSecsOrSysSec],[SysSecs],[LongPhySecOpt],,[SysOpts]";
Input Parameters:
0 - Write Long Starting Logical or Physical Sector Address.
If this parameter is entered, a Write Long operation will be performed starting
at the sector address specified by this parameter. If any value is entered for
Parameter 3, this parameter contains a physical sector address, else it contains
a User Area logical sector address.
If this parameter is not entered, a System Area Write operation will be performed.
Type:
Range:
Default: none
1 - Write Long Transfer Length / System Area Write Starting Logical Sector Address.
If Parameter 0 is entered, this parameter is the number of consecutive sectors
to write long.
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.
Type:
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 a Transfer Length is entered, it will be limited to the number of
sectors remaining on the track.
Range:
0 to 0xFFFF
Default: None
4 - not used.
Type:
None
Range:
None
Default: None
5 - System Area Write Options.
If Parameter 0 is entered, this parameter is not used.
If Parameter 0 is not entered, this parameter is a bit-significant value that
allows the user to select the following options for a System Area Write operation.
Bits 15-5: not used.
Bit 4:
Bit 3:
not used.
Bit 2:
Bit 1:
Bit 0:
Continue On Error.
If this bit is set and an error occurs, the write operation will
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
iiiiii is the Physical Cylinder Address of the sector in error
j is the Logical Head Address of the sector in error
kkkk is the Physical Sector Address of the sector in error
llllllll is the number of sectors remaining to be read or written
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.
Bit
Bit
Bit
Bit
0:
1:
2:
3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
vvvv is the starting Physical Sector Address
wwwwwwww is the starting Transfer Length
If Bit 4 is set, the Recovery Status will be displayed as follows.
"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
BBBBBB is the Logical Cylinder Address of the last recovered sector
C is the Logical Head Address of the last recovered sector
DDDD is the Logical Sector Address of the last recovered sector
EEEEEE is the Physical Cylinder Address of the last recovered sector
F is the Logical Head Address of the last recovered sector
GGGG is the Physical Sector Address of the last recovered sector
HHHH are the Recovery Flags reported by the Read/Write code
II is the Recovery Count reported by the Read/Write code
If Bit 5 is set, the Fault Status will be displayed as follows.
"Drive Fault Status JJJJ Preamp Fault Status KKKK"
where
JJJJ is the Drive Fault Status reported by the Read/Write code
KKKK is the Preamp Fault Status reported by the Read/Write code
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
b
c
d
is
is
is
is
minutes
seconds
milliseconds
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:
2>A3
2>S44,0,,,,1
2>L,5
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)
Note: An error message will be displayed for each sector in error.
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
F3
F3
F3
2>A0
2>AF,5
2>S45,1,,,,1
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:
0001.0000
0001.0001
0001.0002
0011.0000
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Added new Rotate Buffer Sector Offset option to the bit 2 of the parameter 5.
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).
Write Peripheral Register - channel or preamp (Level 7 's' and Level F 't')
Description:
This command writes the specified value to the specified register in the specified
peripheral device.
Quick Help:
Level 7
"WrPeripheralReg, s[OpType],[RegAddr],[RegValue],[RegMask],[RegPagAddr]";
Level F
"WrPeripheralReg, t[OpType],[RegAddr],[RegValue],[RegMask],[RegPagAddr]";
Input Parameters:
0 - Operation Type.
This parameter selects the type of peripheral device operation to be performed.
0 = Write Preamp Register
1 = Write Read Channel Register
2 = Lock Preamp Registers
3 = Unlock Preamp Registers
4 = Toggle Preamp Register Lock
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.
Type:
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.
Type:
Range:
0 to 0xFFFF
Default: 0xFFFF
4 - Register Page Address.
This parameter specifies the page address of the peripheral register to be
written. If the peripheral registers do not have page address in its address
mode, this input parameter is not needed and its defaul value does not affect
the write operation to the peripheral register.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"WrRdRdChs, Q[Sec],[NumSecs],,[PhyOpt],[Opts]";
Input Parameters:
0 - Logical or Physical Sector Address.
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.
Type:
Range:
Default: 0
1 - Transfer Length.
This parameter specifies the number of consecutive sectors to write and read.
Type:
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.
If a Transfer Length is entered, it will be limited to the number of
sectors remaining on the track.
2 - not used.
Type:
None
Range:
None
Default: None
3 - Physical Sector Address Flag.
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.
Type:
Range:
0 to 0xFFFF
Default: None
4 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Bits 15-5: not used.
Bit 4:
Bit 3:
not used.
Bit 2:
Bit 1:
Bit 0:
Continue On Error.
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.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
iiiiii is the Physical Cylinder Address of the sector in error
j is the Logical Head Address of the sector in error
kkkk is the Physical Sector Address of the sector in error
llllllll is the number of sectors remaining to be read or written
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.
Bit 0:
Bit 1:
Bit 2:
Bit 3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
vvvv is the starting Physical Sector Address
wwwwwwww is the starting Transfer Length
If Bit 4 is set, the Recovery Status will be displayed as follows.
"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
BBBBBB is the Logical Cylinder Address of the last recovered sector
C is the Logical Head Address of the last recovered sector
DDDD is the Logical Sector Address of the last recovered sector
EEEEEE is the Physical Cylinder Address of the last recovered sector
F is the Logical Head Address of the last recovered sector
GGGG is the Physical Sector Address of the last recovered sector
HHHH are the Recovery Flags reported by the Read/Write code
II is the Recovery Count reported by the Read/Write code
If Bit 5 is set, the Fault Status will be displayed as follows.
"Drive Fault Status JJJJ Preamp Fault Status KKKK"
where
is
is
is
is
minutes
seconds
milliseconds
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
F3
F3
F3
2>A3
2>S44,0
2>L,5
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)
Note: An error message will be displayed for each sector in error.
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
F3
F3
F3
2>A0
2>AF,5
2>S45,1
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:
0001.0000
0001.0001
0001.0002
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Moved the Enable Dynamic Sparing option from the parameter 2 to the bit 1 of
0011.0000
the parameter 4.
Added new Rotate Buffer Sector Offset option to the bit 2 of the parameter 4.
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).
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.
Quick Help:
"WrRdRdLba, Q[Lba],[NumLbas],[Opts]";
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.
Type:
Range:
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.
If a Transfer Length is entered, it will be limited to the number of
LBAs remaining in the Test Space.
2 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Bit 4:
Bit 3:
not used.
Bit 2:
Bit 1:
Bit 0:
Continue On Error.
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.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
iiiiii is the Physical Cylinder Address of the sector in error
j is the Logical Head Address of the sector in error
kkkk is the Physical Sector Address of the sector in error
llllllll is the number of sectors remaining to be read or written
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.
Bit 0:
Bit 1:
Bit 2:
Bit 3:
Bit 4:
Bit 5:
Bit 6:
Bits 31-7:
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
vvvv is the starting Physical Sector Address
wwwwwwww is the starting Transfer Length
If Bit 4 is set, the Recovery Status will be displayed as follows.
"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
BBBBBB is the Logical Cylinder Address of the last recovered sector
C is the Logical Head Address of the last recovered sector
DDDD is the Logical Sector Address of the last recovered sector
EEEEEE is the Physical Cylinder Address of the last recovered sector
F is the Logical Head Address of the last recovered sector
GGGG is the Physical Sector Address of the last recovered sector
HHHH are the Recovery Flags reported by the Read/Write code
II is the Recovery Count reported by the Read/Write code
If Bit 5 is set, the Fault Status will be displayed as follows.
"Drive Fault Status JJJJ Preamp Fault Status KKKK"
where
is
is
is
is
minutes
seconds
milliseconds
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)
Note: An error message will be displayed for each LBA in error.
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:
0001.0000
0001.0001
0001.0002
0001.0003
0011.0000
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Modified to write and read only the LBAs remaining on the track containing
the target LBA, if the LBA and Transfer Length are not entered by the user.
Added new Rotate Buffer Sector Offset option to the bit 2 of the parameter 2.
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).
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.
Quick Help:
"WrRdWrRdChs, Q[Sec],[NumSecs],[Opts]";
Input Parameters:
Range:
Default: 0
1 - Transfer Length.
This parameter specifies the number of consecutive sectors to write and read.
Type:
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.
If a Transfer Length is entered, it will be limited to the number of
sectors remaining on the track.
2 - Options.
This parameter is a bit-significant value that allows the user to select the
following options.
Bits 15-6: not used.
Bit 5:
Bit 4:
Bit 3:
not used.
Bit 2:
Bit 0:
Continue On Error.
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.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
is
is
is
is
minutes
seconds
milliseconds
microseconds
Examples:
Example #1:
To write, read, write, read a single logical sector
2>A0
2>S45,1
2>/3
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
F3
F3
F3
2>A0
2>S45,1
2>/3
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
F3
F3
F3
2>A0
2>S45,1
2>/3
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
F3
F3
F3
F3
2>A3
2>S44,0
2>/3
3>L,5
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)
Note: An error message will be displayed for each sector in error.
F3
F3
F3
F3
2>A0
2>S45,0
2>/3
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
F3
F3
F3
2>A0
2>s54,0,22
2>/3
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
F3
F3
F3
2>A0
2>s54,0,22
2>/3
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
F3
F3
F3
F3
2>A0
2>AF,5
2>S45,1
2>/3
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:
0001.0000
0001.0001
0001.0002
0011.0000
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Added new Rotate Buffer Sector Offset option to the bit 2 of the parameter 2.
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).
Description:
The Write Servo RAM at Address command writes the specified Servo RAM locations
with the specified data.
Quick Help:
"WrServoRamAtAddr, W[Addr],[NumBytes],[Data]";
Input Parameters:
0 - Servo RAM Address.
This parameter specifies the address of the first servo RAM byte to be written.
Type:
Range:
0 to 0xFFFFFFFF
Default: None
1 - Number of Bytes.
This parameter specifies the number of servo RAM bytes to be written.
Type:
Range:
Default: 2
2 - Servo RAM Data.
This parameter specifies that data with which the specified servo RAM location
is to be written.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"WrServoRamAtIndex, w[Index],[NumBytes],[Data],[ByteOffset]";
Input Parameters:
0 - Servo Symbol Table Index.
This parameter specifies the index of the Servo Symbol Table entry that contains
the base address of the Servo RAM location to be written.
Type:
Range:
0 to 0xFFFF
Default: None
1 - Number of Bytes.
This parameter specifies the number of servo RAM bytes to be written.
Type:
Range:
Default: 2
2 - Servo RAM Data.
This parameter specifies that data with which the servo RAM is to be written.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
3 - Byte offset from base address.
This parameter is an optional byte offset which will be added to the address of the
servo RAM location to be written.
Type:
Range:
0 to 0xFFFFFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
Revision History:
0001.0000
0011.0000
Initial revision.
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).
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.
Quick Help:
"WrVerifyChs, 7[Sec],[NumSecs],[WrBufBlk],[Opts]";
Input Parameters:
0 - Logical or Physical Sector Address.
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.
Type:
Range:
Default: 0
1 - Transfer Length.
This parameter specifies the number of consecutive sectors to be written and
verified.
Type:
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.
If a Transfer Length is entered, it will be limited to the number of
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.
Bits 15-6: not used.
Bit 5:
Bit 4:
Bit 3:
not used.
Bit 2:
Bit 1:
Bit 0:
Continue On Error.
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.
Type:
Range:
0 to 0xFFFF
Default: 0
Output Data:
If an error occurred, the following information will be displayed.
"DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
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
aaaaaaaa is the Diagnostic Error Code
c is the status returned by the R/W subsystem
0 = R/W request completed successfully with error recovery
1 = R/W request completed successfully (no error recovery performed)
2 = R/W request failed
dddddddd is the error code returned by the R/W subsystem
eeeeeeee is the Disk Logical Block Address of the sector in error
ffffff is the Logical Cylinder Address of the sector in error
g is the Logical Head Address of the sector in error
hhhh is the Logical Sector Address of the sector in error
iiiiii is the Physical Cylinder Address of the sector in error
j is the Logical Head Address of the sector in error
kkkk is the Physical Sector Address of the sector in error
llllllll is the number of sectors remaining to be read or written
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.
Bit
Bit
Bit
Bit
Bit
Bit
0:
1:
2:
3:
4:
5:
Bit 6:
Enables the Elapsed Time to be displayed
Bits 31-7: NA
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
vvvv is the starting Physical Sector Address
wwwwwwww is the starting Transfer Length
If Bit 4 is set, the Recovery Status will be displayed as follows.
"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
is
is
is
is
minutes
seconds
milliseconds
microseconds
or
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
F3
F3
F3
2>A3
2>S44,0
2>L,5
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)
Note: An error message will be displayed for each sector in error.
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
F3
F3
F3
2>A0
2>AF,5
2>S45,1
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:
0001.0000
0001.0001
0001.0002
0011.0000
Initial revision.
Eliminated the Enable ZAP Updates and Enable Track Skipping option.
Added new Rotate Buffer Sector Offset option to the bit 2 of the parameter 3.
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).
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
the data contained in the Diagnostic Write Buffer. At meanwhile the channel
registers are sampled, if the register address are specified.
Quick Help:
Level 2
"WrWedge, z[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opt],[RegAddr0],...,[RegAddr1
Level E
"WrWedge, B[WedgeAddr],[NumWedges],[NumSkipedWedges],[TranSize],[Opt],[RegAddr0],...,[RegAddr1
Input Parameters:
0 - Wedge Address.
This parameter specifies the address of the first wedge to be written.
Type:
Range:
0 to 0xFFFF
Default: 0
1 - Transfer Length.
This parameter specifies the number of wedges to be written.
Type:
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
Range:
0 to 0xFFFF
Range:
0 to 0xFFFFFFFF
Range:
0 to 0xFFFFFFFF
Range:
0 to 0xFFFF
Default: None
6 - Channel Register Address.
This parameter specifies the address of the 2nd Read Channel register
Range:
0 to 0xFFFF
Default: None
7 - Channel Register Address.
This parameter specifies the address of the 3rd Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
8 - Channel Register Address.
This parameter specifies the address of the 4th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
9 - Channel Register Address.
This parameter specifies the address of the 5th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
10 - Channel Register Address.
This parameter specifies the address of the 6th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
11 - Channel Register Address.
This parameter specifies the address of the 7th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
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.
Type:
Range:
0 to 0xFFFF
Default: None
14 - Channel Register Address.
This parameter specifies the address of the 10th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
15 - Channel Register Address.
This parameter specifies the address of the 11th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
16 - Channel Register Address.
This parameter specifies the address of the 12th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
17 - Channel Register Address.
This parameter specifies the address of the 13th Read Channel register
to be read for data collection.
Type:
Range:
0 to 0xFFFF
Default: None
18 - Channel Register Address.
This parameter specifies the address of the 14th Read Channel register
to be read for data collection.
Type:
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.
"
"
"
"
"
RegAddr
Min
Max
Mean
StdDev
aaaa
bbbbbbbb
cccccccc
dddddddd
eeeeee.ee
aaaa
bbbbbbbb
cccccccc
dddddddd
eeeeee.ee
aaaa
bbbbbbbb
cccccccc
dddddddd
eeeeee.ee
...
...
...
...
...
aaaa"
bbbbbbbb"
cccccccc"
ddddddddd"
eeeeee.ee"
where
aaaa is the address of the channel register that was read
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.
"Wedge ffff RegAddr gggg RegData hhhhhhhh Error ii"
where
ffff is the wedge address
gggg is the address of the channel register that was read
hhhhhhhh is the value read from the channel register
ii is the error that was logged for the wedge
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
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.
"Read Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Position, Persistent Offset m.m% Total Offset n.n%"
or
"Write Header Position, Persistent Offset m.m% Total Offset n.n%"
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 as follows.
"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
pppppppp is the starting Disk Logical Block Address
qqqqqq is the starting Logical Cylinder Address
r is the starting Logical Head Address
ssss is the starting Logical Sector Address
tttttt is the starting Physical Cylinder Address
u is the starting Logical Head Address
vvvv is the starting Physical Sector Address
wwwwwwww is the starting Transfer Length
If Bit 4 is set, the Recovery Status will be displayed as follows.
"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
BBBBBB is the Logical Cylinder Address of the last recovered sector
is
is
is
is
minutes
seconds
milliseconds
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
F3
F3
F3
2>A3
2>S44,0
2>L,5
2>z
Revision History:
0001.0000
0001.0001
0002.0000
0011.0000
Initial revision.
Increase the number of channel registers for the data collection.
Added Formatted Wedge Write option.
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).
******************************************************************************************
0xA000 - 0xAFFF: Shared Test API Errors
******************************************************************************************
0xA000: Fast IO Initialization Error
0xA001: Baseline PES collection Error
0xA002: Delta PES collection Error
SEEK
XFR_ALT
XFR
RD_CHNL
SRV_MEM
SRV_FLW
DITH
DITH_WR
CAL
ERA_TRK
FDB
FMT_TRK
FMT_SYS
FMT_UNT
HD_RES
HTR_RES
GET_RVFF
ACFF_RECAL
TEMP
TWK_FH
VOLT
HD_DIAG
HD_SPK
REALLOC
MRK_PND
HD_FH
VCM_TEMP
MEM_DBG
PROC_DL
SCRB_DL
PROC_GDL
REF_SRV_MEM
RELD_RAP
ERR_RATE
DL
SRV_EC
SCN_DFCT
SELF_SK
SK_TUNE
SND_SRV
FIX_RAP
DEPOP
INIT_DITH
PES
PREAMP
SET_VOLT
ZAP
SPN_UP
SPN_DN
ZLR
UNKNOWN
Seek request
Read/Write transfer alternate sector request
Read/Write transfer request
Access Read Channel request
Access Servo Memory request
Add Primary Servo Flaw request
Dithering request
Dithering write enhance request
Drive Calibration request
Erase Track request
Execute FDB Motor Leakage Detection test request
Format Track request
Format System Partition request
Format Unit request
Get Head Resistance request
Get Heater Resistance request
Get Servo RVFF sensor status
ACFF Recalibrate status
Get Temperature request
Tweak fly height values request
Get Voltage Levels request
Head diagnostics test request
Head Spike Screen request
Immediate Reallocation request
Mark Block for Pending Reallocation request
Measure Head Fly Heights request
Measure VCM Temperature and Resistance request
Memory mapped debug capture request
Process defect lists request
Scrub the defect lists request
Process growth defect lists request
Refresh servo memory request
Reload RAP parameters request
Measure error rate
Retrieve defect list request
Retrieve the servo error code FIFO request
Scan defect adjacent sectors request
Self seek request
Seek profile tuning request
Send servo request
Fixup RAP for depop request
Send Servo Electrical Depop request
Initialize Dithering parameters
Servo PES FIFO access request
Set Preamp mode request
Configure voltage margin level request
Configure the ZAP correction mode request
Spinup request
Spindown request
Track ZLR request
Unsupported request
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x3A
0x3B
0x3C
0x3D
0x3E
0x3F
0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4A
UNMRK
TCC
ALT_TONE
XFR_TRK
XFR_WDG
PWR
CLR_ALT
LATCH
SV_ALT
MATLAB
SWEEP
CLR_SLIP
FA_AFH
TWK_WR_PWR
SEC2RLL
SWD
CLR_ALT_ENT
ADJ_CLR
FALL
XFR_SEC
DISC_SLIP
RE_ALT
RST_RVFF
HST
0x00000081:
0x00000082:
0x00000083:
0x00000084:
0x00000085:
0x40000087:
0x40000088:
0x40000089:
0x0000008A:
0x0000008B:
0x0000008C:
0x0000008D:
0x0000008E:
0x0000008F:
0x00000090:
0x00000091:
0x00000092:
0x00000093:
0x00000094:
0x00000095:
0x00000096:
0x00000097:
0x00000098:
***************************************************************************
Internal x2/04 Errors.
***************************************************************************
0x02040080: RW_NOT_READY - Initialization - R/W system not ready for client requests.
***************************************************************************
Internal x3/0C Errors.
***************************************************************************
0x430C0080: RW_UPDATE_BVD_FAILED - Disc Xfr - BVD update error.
0x430C0081: RW_WRITE_HALT_CORRECTABLE_IOECC_ERR - Disc Xfr - IOECC error (correctable)
***************************************************************************
Internal x3/11 Errors.
***************************************************************************
0x43110080: RW_READ_PREAMP_UNSAFE_FAULT - Disc Xfr - Read during preamp unsafe fault.
0x43110081: RW_EDAC_HW_UNCORR_ERR - Disc Xfr - EDAC HW uncorrectable error.
0x43110082: RW_EDAC_OVERRUN_ERR - Disc Xfr - EDAC overrun error.
0x031100A0: RW_READ_PREAMP_HTR_OPEN_SHORT_FAULT
0x03110480: RW_WRITE_ALTERNATE_FAILED_NO_SERVO_DEFECTS - Reallocate Block - Write alternate bl
0x03110481: RW_ALTERNATE_BLK_COMPARE_TEST_FAILED - Reallocate Block - Alternate block compare
0x03110482: RW_ALTERNATE_BLK_SYNC_MARK_ERR - Reallocate Block - Alternate block sync mark erro
0x03110483: RW_ALTERNATE_BLOCK_SELECTION_EXHAUSTED - Reallocate Block - Maximum allowed altern
0x03110484: RW_REPETITIVE_REALLOCATION_NOT_ALLOWED - Reallocate Block - Resource is not availa
***************************************************************************
Internal x4/09 Errors.
***************************************************************************
0xC4090080: RW_SERVO_FAULT - Servo fault.
0xC4090081: RW_WRITE_SERVO_UNSAFE_FAULT - Disc Xfr - Write during servo unsafe fault.
0xC4090082: RW_EDAC_BLK_ADDR_ERR - Disc Xfr - EDAC block address error.
0xC4090083: RW_SERVO_MDW_INFO_MISSING - Disc Xfr - Missing MDW information reported by servo d
0xC4090084: RW_SERVO_CMD_TIMED_OUT - Servo command timed out.
0xC4090085: RW_SEEK_TIMED_OUT - Seek operation timed out.
0xC4090086: RW_SEEK_EXCEED_TIME_LIMIT - Seek operation has exceeded the recovery time limit
0xC4090087: RW_SERVICE_DRIVE_FREE_FALL_CONDITION_TIMED_OUT - Servicing of free-fall condition
***************************************************************************
Internal x5/24 Errors.
***************************************************************************
***************************************************************************
Internal x4/15 Errors.
***************************************************************************
0x84150180: RW_SERVO_SPINUP_FAILED - Spinup - Servo error encountered during drive spin-up.
0x84150181: RW_SERVO_SPINDOWN_FAILED - Spindown - Servo error encountered during drive spin-up
0x84150182: RW_SPINDLE_FAILED - Spindle failed error.
0x84150183:
0x84150184:
0xC4150185:
0x84150186:
0x84150187:
0x84150188:
0x84150189:
***************************************************************************
Internal x4/19 Errors.
***************************************************************************
0x84190080: RW_FORMAT_RECOVER_SAVED_GROWN_DST_FAILED - Format - Recover of saved Grown DST fil
0x84190081: RW_DEFECT_SCAN_INIT_DEFECT_LISTS_FAILED - Scan Defect - Recovery of saved Non-Resi
0x84190082: RW_CLEAR_SLIP_LIST_SAVE_RW_OPERATING_PARMS_FILE_FAILED - Clear R/W Slip List - Sav
0x84190083: RW_RESTORE_ALT_LIST_FILE_FROM_MEDIA_FAILED - Restore Alt List File From media - Fa
0x84190084: RW_SERVO_DISC_SLIP_PARMS_MEDIA_UPDATE_FAILED - Save of Servo Disc Slip Parms to me
0x84190085: RW_SERVO_DISC_SLIP_PARMS_MEDIA_READ_FAILED_01 - Read of Servo Disc Slip Parms from
0x84190086: RW_SERVO_DISC_SLIP_PARMS_MEDIA_READ_FAILED_02 - Read of Servo Disc Slip Parms from
0x84190087: RW_SERVO_DISC_SLIP_FILE_INVALID_FORMAT_REVISION - Servo Disc Slip file - invalid f
***************************************************************************
Internal x4/1C Errors.
***************************************************************************
0x841C0081: RW_READ_PRIMARY_DEFECT_LISTS_SUPER_FILE_FOR_REPORTING - Format - Failure to read P
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 Pli
0x841C0084: RW_PRIMARY_DEFECT_LIST_INVALID_OFFSET_SORT - Process Defect Lists - Sort error due
0x841C0085: RW_PRIMARY_DEFECT_LIST_INVALID_HEAD_SORT - Process Defect Lists - Sort error due t
0x841C0086: RW_PRIMARY_DEFECT_LIST_INVALID_CYL_SORT - Process Defect Lists - Sort error due to
0x841C0087: RW_PRIMARY_DEFECT_FILES_UNRECOVERABLE - Process Defect Lists - Unable to recover t
0x841C0088: RW_REASSIGN_SEEK_TO_DEFECT_FILES_FAILED - Reallocate Block - Failed to seek to def
0x841C0089: RW_UNDO_REASSIGN_SEEK_TO_DEFECT_FILES_FAILED - Reallocate Block - Failed to seek t
0x841C008A: RW_WRITE_SAVED_DEFECTS_REPORT_LISTS_FILE_FAILED - Format - Failure to write defect
0x841C008B: RW_READ_SAVED_DEFECTS_REPORT_LISTS_FILE_FAILED - Retrieve Defects Report List - Re
0x841C008C: RW_SAVED_DEFECTS_REPORT_LISTS_DISC_FILE_INVALID_01 - Retrieve Defects Report List
0x841C008D: RW_SAVED_DEFECTS_REPORT_LISTS_DISC_FILE_INVALID_02 - Retrieve Defects Report List
0x841C008E: RW_FORMAT_RESTORE_RW_OPERATING_PARMS_FILE_FAILED - Format - Restore of R/W User Op
0x841C008F: RW_FORMAT_INVALID_PRIMARY_SERVO_FLAWS_DATA - Format - Invalid Primary Servo Flaws
0x841C0090: RW_SAVE_DEFECT_FILES_FAILED_DUE_TO_DATA_MISCOMPARE_ERR - Reallocate Block - Failed
0x841C0092: RW_PRIMARY_DEFECT_LIST_FILE_OVERFLOW_01 - Format - PList overflow error while merg
0x841C0093: RW_FORMAT_MAX_ZONE_RECERTIFY_PASSES_EXCEEDED - Format - maximum certify passes of
0x841C0094: RW_FORMAT_MAX_ZONE_REWRITE_PASSES_EXCEEDED - Format - maximum write passes of a zo
0x841C0095: RW_PRIMARY_SERVO_FLAWS_LIST_UNRECOVERABLE - Primary Servo Flaws data retrieval - U
0x841C0096: RW_PRIMARY_FLAWS_FILE_INVALID_ENTRY_CNT - Primary Servo Flaws data retrieval - Inv
0x841C0097: RW_DEFECTIVE_SECTORS_LIST_UNRECOVERABLE - Defective Sectors List data retrieval 0x841C0098: RW_DEFECTIVE_SECTORS_LIST_INVALID_FILE_HEADER - Defective Sectors List data retrie
0x841C0099: RW_PLIST_FILE_INVALID_ENTRY_CNT_02 - PList data retrieval - Invalid entry count in
0x841C009A: RW_PRIMARY_DEFECTS_LIST_UNRECOVERABLE - PList data retrieval - Unable to read Plis
0x841C009B: RW_SYSTEM_FORMAT_CLIENT_LIST_INVALID_ENTRY_CNT - System Format - invalid entry cou
***************************************************************************
Internal x4/32/00 Errors.
***************************************************************************
0x84320080: RW_PROCESS_FORMAT_PENDING_REALLOCATION_FAILED - Format - Processing of pending rea
0x84320081: RW_INSERT_DST_FAILED - Format - Failed to insert defect to DST.
0x84320082: RW_DST_INSERT_PLIST_DEFECTS_FAILED - Format - Failed to insert PList defect to DST
0x84320083: RW_GROWN_DST_FULL_01 - Format - Grown DST file full.
0x84320084: RW_GROWN_DST_FULL_02 - Format - Grown DST file full.
0x84320085: RW_RESIDENT_DST_FULL - Format - Resident DST file full.
0x84320086: RW_INSERT_FORMAT_GROWN_FLAW_DEFECTS_FAILED - Format - Failed to insert defective s
0x84320088: RW_INSERT_SYSTEM_FLAW_DEFECTS_FAILED - Format System Partition - Failed to insert
0x8432008A: RW_SYSTEM_DEFECTS_FILE_FULL - Format System Parition - System Defects file full.
0x8432008B: RW_CLIENT_DEFECT_INSERT_IN_DEFECT_LIST_ERR - Process Defect Lists - Failed to inse
0x8432008C:
0x8432008D:
0x8432008E:
0x8432008F:
0x84320090:
0x84320091:
0x84320092:
0x84320093:
0x84320094:
0x84320095:
0x84320096:
0x84320097:
0x84320098:
0x84320099:
0x8432009A:
0x8432009B:
0x8432009D:
0x8432009E:
0x8432009F:
0x843200A0:
0x843200A1:
0x843200A2:
***************************************************************************
Internal x4/32/01 Errors.
***************************************************************************
0x04320181: RW_PRIMARY_DEFECT_LIST_FILE_OVERFLOW_02 - Process Growth Defect List - PList file
0x84320182: RW_PRIMARY_SERVO_FLAW_TABLE_OVERFLOW - Process Defect Lists - PSFT file overflow e
0x84320183: RW_PRIMARY_DEFECT_FILES_UNWRITABLE - Process Defect Lists - Unable to write defect
0x84320184: RW_OPERATING_PARAMETERS_FILE_UPDATE_ERROR - Process Defect Lists - Unable to updat
0x04320185: RW_PRIMARY_DEFECT_LIST_FILE_OVERFLOW_03 - Pad/Fill Defects - PList file overflow e
0x04320186: RW_PRIMARY_DEFECT_LIST_FILE_OVERFLOW_04 - Pad/Fill Defects - PList file overflow e
***************************************************************************
Internal x4/40 Errors.
***************************************************************************
0x84400080: RW_MAX_TRK_REWRITE_DURING_CERT_RETRIES_EXCEEDED - Format - Exceeded maximum number
***************************************************************************
Internal x4/44 Errors.
***************************************************************************
0xC4440080: RW_WRITE_PREAMP_UNSAFE_FAULT - Disc Xfr - Write during preamp unsafe fault.
0x84440081: RW_READ_WRITE_CHANNEL_FAULT - Disc Xfr - Read channel fault.
0x84440082: RW_SFF_FAULT - Disc Xfr - Small form factor fault.
0xC4440083: RW_WRITE_SERVO_FIELD_FAULT - Disc Xfr - Write during servo field fault.
0xC4440084: RW_MM_TPBA_FIFO_CTR_ERR - Disc Xfr - Media Manager's TPBA FIFO Counter error.
0xC4440085: RW_MM_TPBA_FIFO_UNDRN_ERR - Disc Xfr - Media Manager's TPBA FIFO Underrun error.
0xC4440086: RW_MM_DDT_FIFO_CTR_ERR - Disc Xfr - Media Manager's DDT FIFO Counter error.
0x84440087: RW_MM_DDT_FIFO_UNDRN_ERR - Disc Xfr - Media Manager's DDT FIFO Underrun error.
0x84440088: RW_MM_PARITY_ERR - Disc Xfr - Media Manager's Parity error.
0x84440089: RW_MM_TDT_FIFO_UNDRN_ERR - Disc Xfr - Media Manager's TDT FIFO Underrun error.
0xC444008A: RW_MM_SKIP_MASK_UNDRN_ERR - Disc Xfr - Media Manager's Skip Mask Underrun error.
0x8444008B: RW_TEMPERATURE_INVALID - Get Temperature request resulted in invalid temperature.
0x8444008C: RW_VOLTAGE_MARGIN_HW_NOT_SUPPORTED - Detected unsupported H/W in a Set Voltage Mar
0x8444008E: RW_SMART_SEQ_INIT_BUFFER_NOT_READY - Super Sector - Initial buffer ready timeout e
0x8444008F: RW_CORR_BUFR_PARITY_ERR - Disc Xfr - Correction Buffer parity error.
0x84440090: RW_NX_RLL1_ERR - Disc Xfr - NX - RLL1 error.
0x84440091: RW_DISC_BUFR_PARITY_ERR - Disc Xfr - Disc Buffer parity error.
0x84440092: RW_SEQ_EXE_SGATE_OVERLAP_ERR - Disc Xfr - Sequencer encountered an EXE/SGATE overl
0x84440093: RW_NRZ_INTF_FIFO_UNDRN - Disc Xfr - FIFO underrun error detected at the NRZ interf
0x84440094: RW_NRZ_INTF_FIFO_OVRN - Disc Xfr - FIFO overrun error detected at the NRZ interfac
0x84440095: RW_NRZ_INTF_WRT_PARITY - Disc Xfr - Write data parity error detected at the NRZ in
0x84440096: RW_MM_MX_OVERRUN_ERR - Disc Xfr - Media Manager's MX Overrun error.
0x84440097:
0x84440098:
0x84440099:
0x8444009A:
0x8444009B:
0x8444009C:
0x844400A0:
***************************************************************************
Internal x4/41/87 Errors.
***************************************************************************
0x04418780: RW_IOEDC_ERROR_WITHOUT_IOECC_ERROR_ON_WRITE - Disc Xfr - IOEDC parity error on wri
0x04418701: RW_IOEDC_ERROR_ON_WRITE_FDE - 04/8087, FRU 01 - FDE IOEDC Error on Write detected
0x04418781: RW_IOEDC_IOECC_PARITY_ERR_ON_WRITE - Disc Xfr - IOExC parity error on write.
0x04418782: RW_IOECC_PARITY_ERROR_ON_WRITE - Disc Xfr - IOECC parity error on write.
***************************************************************************
Internal x4/80/89 Errors.
***************************************************************************
0x84418980: RW_IOEDC_PARITY_ERR_ON_READ - Disc Xfr - IOEDC parity error on read.
***************************************************************************
Internal x4/80/87 Errors.
***************************************************************************
0x04808780: RW_IOEDC_ERROR_WITHOUT_IOECC_ERROR_ON_WRITE - Disc Xfr - IOEDC parity error on wri
0x04808701: RW_IOEDC_ERROR_ON_WRITE_FDE - 04/8087, FRU 01 - FDE IOEDC Error on Write detected
0x04808781: RW_IOEDC_IOECC_PARITY_ERR_ON_WRITE - Disc Xfr - IOExC parity error on write.
0x04808782: RW_IOECC_PARITY_ERROR_ON_WRITE - Disc Xfr - IOECC parity error on write.
***************************************************************************
Internal x4/80/89 Errors.
***************************************************************************
0x84808980: RW_IOEDC_PARITY_ERR_ON_READ - Disc Xfr - IOEDC parity error on read.
***************************************************************************
Internal x9/80 Errors.
***************************************************************************
0x89800082: RW_UNSUPPORTED_FAULT - Unsupported fault.
0x89800083: RW_TRACK_ADDR_FAULT - Track address fault.
0x89800084: RW_SERVO_DISC_SYNC_ERR - Disc Xfr - Servo-Disc synchronization error.
0x89800085: RW_UNKNOWN_ENDING_BLK_ADDR - Disc Xfr - End of transfer reached prematurely.
0x89800086: RW_UNKNOWN_SEQ_TIMEOUT_ERR - Disc Xfr - Unexpected sequencer timeout error.
0x89800087: RW_UNKNOWN_NRZ_XFR_ERR - Disc Xfr - Unknown error in the NRZ Transfer logic.
0x89800088: RW_UNKNOWN_EDAC_ERR - Disc Xfr - Unknown EDAC error.
0x89800089: RW_UNKNOWN_MM_ERR - Disc Xfr - Unknown Media Manager's error.
0x8980008A: RW_INVALID_DISC_HALT - Disc Xfr - Invalid disc halt.
0x8980008B: RW_UNEXPECTED_SEQ_HALT - Disc Xfr - Unexpected sequencer halt condition.
0x8980008C: RW_UNEXPECTED_SMART_SEQ_HALT - Super Sector - Unexpected sequencer halt.
0x8980008D: RW_UNKNOWN_SMART_SEQ_TIMEOUT_ERR - Super Sector - Unknown sequencer timeout error.
0x8980008E: RW_UNKNOWN_NRZ_INTF_ERR - Disc Xfr - Unknown NRZ interface error.
0x8980008F: RW_XFR_SOFT_HALTED - Disc Xfr - Disc was soft halted.
0x89800090: RW_XFR_FAULT - Disc Xfr - Fault condition error.
0x89800091: RW_CORR_BFR_COMPLETION_TIMEOUT - Disc Xfr - Correct Buffer Completion timeout erro
0x89800094: RW_RECOVERED_SEEK - Seek - Recovered seek error encountered.
0xC9800095: RW_FORCED_ER_BEFORE_ERROR_ENCOUNTERED - Forced to enter error recvoery before erro
0x89800096: RW_RECOVERED_SERVO_CMD - Recovered servo command error.
0x89800097: RW_PARTIAL_REALLOCATION_PERFORMED - Reallocate Block - Partial reallocation perfor
0x89800098: RW_XFR_TRUNCATED - Disc Xfr - Transfer was truncated.
0x89800099: RW_XFR_SATISFIED - Disc Xfr - Transfer completed.
0x8980009A: RW_XFR_TRACK_SATISFIED - Disc Xfr - Track transfer completed.
0x8980009B: RW_SCAN_DEFECT_ADJ_SECTORS_TIME_EXCEEDED - Scan Defect - Allocated scan time excee
0x8980009C: RW_IOEDC_IOECC_PARITY_ERR_ON_WRITE - Disc Xfr - IMPOSSIBLE - IOECC parity error on
0x8980009D: RW_IOECC_PARITY_ERROR_ON_WRITE - Disc Xfr - IMPOSSIBLE - IOECC parity error on wri
0x8980009E: RW_WRITE_HALT_CORRECTABLE_IOECC_ERR - Disc Xfr - IMPOSSIBLE - IOECC error (correct
0x8980009F:
0x898000A0:
0x898000A1:
0x898000A2:
0x898000A3:
0x898000A4:
0x898000A5:
0x898000A6:
0x898000A7:
RW_EDAC_HALTED_FOR_FW_ERASURE
RW_INVALID_BLOCK_FOR_UNMARK_PENDING_REALLOCATION - Reallocate Block - Input was no
RW_INPUT_LBA_NOT_FOUND_IN_RST - RST Mgr - Input LBA was not found in the RST.
RW_RESIDENT_DST_DOES_NOT_CONTAIN_TARGET_PBA_01 - DST Mgr - Input PBA was not found
RW_RESIDENT_DST_DOES_NOT_CONTAIN_TARGET_PBA_02 - DST Mgr - Input PBA was not found
RW_DST_SKOOTCH_FAILED_01 - DST Mgr - Skootch failed.
RW_DST_SKOOTCH_FAILED_02 - DST Mgr - Skootch failed.
RW_DST_INSERT_FAILED - DST Mgr - Insert failed.
RW_CORRECTION_BUFFER_ERR - Correction Buffer over-run, under-run, or EDC error.
***************************************************************************
Internal xE/1D Errors.
***************************************************************************
0x8E1D0080: RW_DATA_MISCOMPARE_01 - Disc Xfr - Data miscompare error.
0x8E1D0081: RW_DATA_MISCOMPARE_02 - Disc Xfr - Data miscompare error at erasure correction.
***************************************************************************
Internal x1/40 Errors.
***************************************************************************
0x81400280: RW_SERVO_SPINUP_RECOVERED_01 - Spinup error recovered with buzz retries.
0x81400281: RW_SERVO_SPINUP_RECOVERED_02 - Spinup error recovered without buzz retries.
'M':
'm':
'N':
'P':
'n':
'N':
'N':
'O':
'o':
'P':
'p':
'p':
'Q':
'q':
'S':
's':
'T':
't':
'u':
'V':
'v':
'V':
'U':
'V':
'W':
'w':
'Y':
'Z':
'z':
'|':
INVALID_FLASH_LED_CODE
MICRO_FAIL
BUFFER_FAIL
SCC_FAIL
CTLR_VERSION_FAIL
UNOPCODE_OCCUR
00000000
00001000
00001011
00001100
00001101
00001110
0x10
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
0x1A
0x1B
0x1C
0x1D
XOR_FAIL
PROG_ERR_EVEN
ERASE_ERR_EVEN
DL_TPM_FAIL_0
DL_TPM_FAIL_1
DL_TPM_FAIL_2
DL_TPM_FAIL_3
DL_TPM_FAIL_4
DL_TPM_FAIL_5
DL_TPM_FAIL_6
DL_TPM_FAIL_7
DL_TPM_FAIL_8
DWNLD_VFLT
00010000
00010010
00010011
00010100
00010101
00010110
00010111
00011000
00011001
00011010
00011011
00011100
00011101
(**) XOR power up test failed (tested even on nonEEPROM verify error, even byte
EEPROM erase error, even byte
TPM could not program EEPROMs
TPM could not program EEPROMs
TPM could not program EEPROMs
TPM could not program EEPROMs
TPM could not program EEPROMs
TPM could not program EEPROMs
TPM could not program EEPROMs
TPM could not program EEPROMs
TPM could not program EEPROMs
Download voltage fault
0x40 ALU_BUFPE_FAIL
0x42 ERROR_INJECTION_ASSERT_CODE
0x44
0x45
0x47
0x47
0x4C
0x4D
0x4E
0x4F
BUF_CFG_FAIL
FDE_BUSPARITY_ERR
PREFETCH_VEC
SP_FAIL
READ_CHIP_ERR
IER_STACK_OVFL
IER_STACK_UNFL
IER_STACK_ERR
01000100
01000101
01000111
01000111
01001100
01001101
01001110
01001111
0x55 IRAW_HAD_IOEDC_ERROR
0x5f IRAW_HAD_MISCOMPARE
01010101
01011111
0x67 UNDEFINED_INSTRUCTION
0x77 LOG_SAVE_FAIL
01110111, (**) Log save data has exceeded the maximum allow
0x80 PORT_FAIL
0x81 NO_BACKPLANE_DATA_RATE
0x81 DATA_RATE_NOT_FOUND
0x90
0x91
0x92
0x93
0x9D
CITCM_UNRECOVERABLE_ERROR
CDTCM_UNRECOVERABLE_ERROR
SITCM_UNRECOVERABLE_ERROR
SDTCM_UNRECOVERABLE_ERROR
TCM_CRC_FAIL
10010000,
10010001,
10010010,
10010011,
10011101,
0xC4
0xCC
0xCD
0xCE
DRAM_INTEGRITY_FAILURE
ASSERT_FLASH_CODE
ENSURE_FLASH_CODE
REQUIRE_FLASH_CODE
11000100,
11001100,
11001101,
11001110,
(**)
(++)
(++)
(++)
0xD1
0xD2
0xD3
0xD4
0xD5
0xDD
SCSI_UNEXP_INT
SCSI_TIMEOUT_FLASH_CODE
ILLEGAL_STATUS_CODE_FLASH_CODE
SCSI_UNDER_OVER_RUN_OCCURED
UNEXPECTED_STATUS_CODE
DIVBY0_FAIL
11010001,
11010010,
11010011,
11010100,
11010101,
11011101,
0xEE ABORT_FAIL
0xF1 CTLR_NUKED_BY_FDE
0xF4 FLASH_IOEDC_PARITY_ERROR
11110001, FDE Nuke the chip bit set, data transfers not all
11110100, (**) temporarily flash on IOEDC_PARITY_ERROR