Pc3000中文说明书
PC3000通过软件的方式实现了对硬盘保留区参数的访问,配合专业的ATA指令,进而实现了诸如:伺候扫描磁盘,添加硬盘逻辑缺陷,手动编辑硬盘缺陷表,读写硬盘的SMART参数表,访问硬盘的固件模块,更改硬盘内存缓冲区信息,调整磁头的读写参数,更改硬盘的身份ID,调用硬盘自身的修复程序,解逻辑密码锁等等功能。
???????? 下面我们通过一些最新的菜单来看看这些功能:
这是最新的PC3000 V12菜单外壳程序
这是通用菜单选项,提供了磁盘的操作方式选择(LBA/CHS),磁盘测试选项,控制器的测试,完全混合测试,硬盘缺陷重定项,通用低级格式化等功能。
这是1.22版本的俄罗斯文菜单,因为PC3000分为英文和俄文两个版本,所以大家有时候看到的字体有可能是俄文的,俄文版的PC3000在某些功能上要比英文版的强一些。
这是最新的V14的钻石模块菜单2.01版,在进入标准模式前又多了硬盘ID号重读和一些复位选项。
进入主菜单后,可以对硬盘进行逻辑扫描,固件区操作,硬盘ID号改写,缺陷列表访问,自检测等操作。
逻辑扫描可以手动输入LBA的起始地址数,规定是否进行反向测试,手动定义扫描的次数,是否执行写测试,是否打开读对比功能,选择所要添加的缺陷列表。
固件区操作可以实现对内存缓冲区的读写,SA区的操作,LDR引导文件的引导和备份,安全子系统的操作,程序工作复位等功能。
在系统的保留区(SA)区,我们可以对FW的结构进行读取测试,并且可以通过显示出来的结果分析硬盘固件区的状况。可以对SA区进行表面检测,读写硬盘固件区的模块,读写硬盘固件区的模块组,对SA区进行写测试,对出错概率最大的几个模块进行软修复,翻译扇区地址参数,控制硬盘电机马达的转动等。
这是硬盘的ID参数选项,在此可以更改硬盘的MODEL型号,以及更改硬盘的Serialnumber(序列号)。
这里是对硬盘缺陷表的操作。选择进入缺陷表项:
我们可以浏览硬盘的工厂缺陷列表(P-List),增益缺陷列表(G-List),对缺陷列表内侧缺陷进行转移,清除缺陷列表,从精确缺陷功能的扫描结果插入缺陷表,手动从LBA地址的方式添加缺陷到缺陷列表,手动封磁道等。
硬盘的自检测程序
这里还要补充说一下DefectOscope这个模块:
它可以对硬盘进行非常精确的扫描,标记出一些不正常的磁盘缺陷。
进入后可以选择操作的模式。
这里需要设置一些检测参数:起始LBA地址数,对比测试次数,是否打开cache功能,是否执行写测试等。
提示要稍等一会。
开始测试了
访问时间测试。
执行完上述步骤后,程序会提示叫你生成一个文件,这个文件就记录了缺陷的数量和位置。
[原创]各牌子硬盘固件版本识别方法Quantum(昆腾):昆腾的固件通用性很强的,只要是同一个系列不同版本的固件都可以交替写的,但是也有一些情况一定要对固件版本写的,下面首先是介绍怎么识别Quantum固件版本的方法。以后将慢慢增加!!1.首先是用Pc3k读出昆腾的FW表2.找到一项是Firmware?version?page,下面就是固件版本了!通常昆腾的固件版本都是放在CP4里面的。FujiTsu(富士通):富士通的固件版本很多,而且写固件的时候有一定的局限性,不但要对系列对型号来写,还要对电路板Bios芯片的型号来写的,而且一旦你写错了可能会导致敲盘,难以修复!1.首先是用PC3k读出富士通的ROM表,例:MPE3084AE的按Review?of?the?disc?Firmware?zone?in?the?ROM2.通常我们在F/W会看到一些数字的(例如:80C2)这组数字在硬盘表面的标签纸上也可以找到的,这些就是FujiTSU硬盘的Bios版本,我们只要记下这个Bios的版本号和硬盘的型号就可以很准确的备份FujiTSU的固件了。IBM正在增加............................这个题目很重要,我很支持。那么关于MT盘本人就代劳了。MT盘的固件识别方法????掌握识别方法,正确识别固件,与学会使用PC3000同样重要。不同品牌,不同型号的硬盘,其固件的识别方法也不尽相同。????下面以MT盘为例说明此问题。MT系列硬盘由于其分型较为复杂,其固件的识别也较其他品牌难度高些。但仍然有其规律性。????首先可以从硬盘表面盘贴上识别其固件。MT盘表面通常都有2-3行条码,其中一行的注明文字会是该硬盘的型号+六位数,如“2B020H1110511”,前面的2B020H1是该盘型号,后面的六位数分别是盘贴上方的HDA、PCBA、UNIQUE三个参数的联合,此为识别MT盘固件的第一项;还有一行条码的注明文字是四个英文字符,例如K,M,B,A,此为识别MT盘固件的第二项;第三项是电路板型号,一般是个白色纸签,贴在电路板数据线接口处,如A5FBA。三项内容联合起来,就构成了该硬盘的固件识别依据。至于其他就不那么重要了,可以忽略。????另外在MT盘内部,也有固件版本的详细描述。它是记录在该盘固件的第48号模块文件之中。但由于系列不同,此文件的命名也是不同的:???????2B/DSP:01DE0001.RPM???????2B/PKR:028F0001.RPM???????2F/PKR:029F0001.RPM???????2R/DSP:01DD0001.RPM???????3X/DSP:01D60001.RPM???????4D/DSP:01E00001.RPM???????4D/PKR:01E00001.RPM???????5T/DSP:01D60001.RPM???????6E/PKR:02BF0001.RPM???????6Y/PKR/02A70001.RPM??????????这些文件用文本方式都是可读的,打开一看,一目了然
根据新的技术手册,主要还是加上config.sysDEVICE=C:DOSHIMEM.SYS?/TESTMEM:OFFDEVICE=C:DOSEMM386.EXE?RAM?DOS=HIGH,UMB
2. Seagate Diagnostic Commands 希捷诊断指令中英对照
(!!机密文件secret!!) (翻译:邓严军)
Upon power up, the drive will respond to a set of diagnostic command send through serial port. Because of the number of commands supported, the commands are broken up into ‘Levels’. Many, the progress may be sent over the serial port for number of bits written and read, and command such as read, write, seek, and error log manipulation are available at several different levels. Diagnostic commands are used in place of ATI scripts to do testing. While the drive is running these diagnostic commandshard/soft error rates, a number indicating the test currently being performed, and various information for status of the current test.
打开电源,硬盘将对通过串口发出的一套诊断指令起反应。因为支持命令的号码,硬盘被指令打断到进入“级别”。许多程序可以通过串口的字节号码读写,并且象那些读取、写入、寻道和错误日志的指令在几个不同的级别里可以处理。诊断指令用于ATI原本来做测试。当硬盘运行那些恰当的诊断指令/软件错误评定,一个号码显示当前所执行的,和当前测试状态的不同信息。
The firmware consists of 2 flash codes and numerous supporting files. The two flash codes are known as factory code and customer code. The factory code contains all the serial port diagnostics command but no AT interface command. The customer code contains all AT interface command but minimal set of serial port diagnostics command.
固件包含2个FLASH代码和许多支持的文件。两个FLASH代码已知是作为工厂代码和用户代码。工厂代码包含所有的串口诊断指令但不是AT接口指令。用户代码包含除了最小的一套串口诊断指令外的所有AT接口指令。
In the ‘Availability’ column, a ‘F’, ‘C’ and ‘B’ indicate the command is available at ‘Factory Code’, ‘Customer Code’ and ‘Both codes’ respectively.
在“可用性”栏,“F”,“C”和“B”显示在“工厂代码”里的可用命令,“用户代码”和“共同代码”分开。
The following is a short list of some of the serial port commands:
下面是一些串口指令的简略清单:
Level T - Certification Tests. 证明测试
Download code 下载代码
Start manufacturing test 开始工厂测试
Set drive ‘Age’ 设置硬盘“年龄”
Commands to read cert logs, read error logs, write test data to flash, etc.
用来读取实在日志,读取错误日志,写入测试数据到FLASH等等的命令。
Level 1 - Memory Control Commands. 内存控制命令。
Commands to display buffer, display memory, set memory, copy buffer to flash, read sysvars from disk, etc.
用来显示缓存,显示内存,设置内存,复制缓存到FLASH,从硬盘读取SYSVARS等等的指令。
Level 2 - Drive Level Commands 硬盘级别指令
A command to configure the cylinders, heads for testing, gives option for random cylinder/head and random data patterns
用来为测试配置柱面,磁头,给出选项来随机柱面/磁头和随机数据模式的指令。
Commands to set data patterns, perform ECC tests, manipulate the error log, dump the sequencer ram.
用来设置数模式,执行ECC测试,处理错误日志, RAM堆栈次序的指令
Commands to do physical to logical conversion, assign skips and alternates, etc.
用来做物理到逻辑转换,分配跳过和轮流等等的指令
Commands to spinup, spindown, seek, read, write, read long, write long, read compare, sleep, set retries, etc.
用来开启主轴电机转动,停转,寻道,读,写,始终读,始终写,读比较,睡眠,设置重试等等的指令
Level 3 - Seeking Commands 寻道指令
Display the zone table 显示区域表
Motor acceleration test
Measure head switch & settling times 调节磁头转换和设置时间
Display head offset 显示磁头的偏移量
Move actuator open loop 移动激励器打开回路
Seek, seek physical, varying length seek test 寻道,物理寻道,改变寻道测试的长度
Latch test 关闭测试
Display position of actuator 显示激励器的位置
Hysteresis test 磁滞测试
Latch Exerciser test 关闭进行的测试
Level 4 - Servo Tracking Commands 伺服跟踪指令
Manipulate a skipped cylinder table 使用一个跳过柱面表
Tracking error test 跟踪错误测试
Display position error signal 显示位置错误信号
Zap servo burst 清除伺服脉冲
Set servo offset 设置伺服偏移量
Set/display tracking gain 设置/显示行进踪
Send impulse to actuator 发送推动脉冲到激励器
Уровень 5. Используется только в заводских условиях
Уровень 6 – Команды batch файлов
Batch файлы для тестирования запусков-остановок, переключения головок, CSS, тестов 1, 2, 3 коррекции burts, files to test start-stop, head switch, CSS, 1,2,or 3 burst correction test, назначаемые тесты, тесты сравнения данных, возможность вводить различные batch файлы в RAM.
Level 7 - Adaptive Control Commands 适应的控制指令
Tune parameter control and display 调整控制参数并显示
Diagnostic read track 轨道读取诊断
AGC gain control AGC(增益)增加控制
Perform VCO calibration for all zones 为所有区域执行VCO校准
Level 8 - Special Packwriter Commands 特殊包写入器指令
- Servo diagnostic sub commands 伺服诊断子指令
- Configuration commands 配置指令
- Lock spin external, spin speed adjust 锁定外部主轴电机,主轴电机转速调整
- Set actuator bias current 设置激励器偏流
Level 9 – Drive Level Command (Full-slipping Defect Management Mode)
硬盘级别指令(全部-不可靠的缺陷处理模式)
Beside the above nine levels of commands, there are two additional sets of commands, the On-line commands and Common commands. The main purpose of On-line command is to display varies type of status. Common command is use to ‘poke’ and ‘peek’ into memoery to allow access to registers, buffer memory and data memory.
和上面的9级指令相比较,有2套附加的指令,在线指令和通用指令。在线指令的主要作用是显示状态的变化类型。通用指令用来在内存里“刺探”和“偷看”以达到有权使用寄存器,缓冲内存和数据内存。
2.1 ON-LINE COMMANDS 在线指令
The On-Line commands may be initiated at any time. For the Interface-specific commands, the Interface code must be present in the current memory map for successful execution; the General commands are always available.
在线指令可以在任何时间开始。因为接口-特殊的指令,接口代码必须存在于当前的内存地图以达到成功执行;一般的代码是始终可用的。
Interface-Specific Commands 接口-特殊指令
Command 指令
Description 描述
Availability 可用性
^E
Interface State: Max C.H.S. / RW multiple block size / Current transfer mode settings
接口状态:MAX C.H.S./RW多重块的容量/当前传输模式的设置
B
^F
Read Segment Record(s) 读取段记录
B
^G
Write Queue Dump 写队列堆栈
B
^I
Controller Register Dump ** (See figure 2.1.7)
堆栈控制记录器(见外形图2.1.7)
B
^K
Reserved 保留
^Q
Reserved 保留
^R
Reserved. This command can only be used when the drive is spun down
保留。这个命令只能在硬盘主轴电机停转后使用
^S
Snapshot current execution address 当前执行地址的快照
B
^V
Interface Command Echo and Activity Trace Toggle
接口命令回应和行为跟踪指针
B
^X
Interface and Niwot Command History ** (See figure 2.1.6)
接口和NIWOT指令的历史(见外形图2.1.6)
B
^Y
Display Raw SMART Values (used for computing SMART Attributes)
显示SMART值(用来计算SMART品质)
B
‘~’
Interface Command State 接口命令状态
B
General Commands 通用指令
Command
指令
Description 描述
Availability
可用性
^B
(Reserved for Servo Use) (为伺服使用而保留)
F
^D / ^N
Retry Activity Display Toggle. 重试行动显示指针
A message will be displayed as follows:
以下的信息将被显示:
e c r = 0 1 0
where ‘e’ = error tracing, ‘c’ = command tracing & ‘r’ = retry tracing. 0=disable, 1=enable.
这里“e”=错误追踪 “c”=指令追踪和“r”=重试追踪。0=禁用,1=开启
When enabled causes the following characters to be sent to the serial port:
当为开启时,以下字符被发送到串口:
‘.’ = First data retry 首个数据重试
‘,’ = subsquent data retry 子数据重试
‘c’ = Successful On-The-Fly correction occurred 在ON-THE FLY里成功修正
‘f’ = Shifted Header retry. 转移标题重试
‘H’ = Header retry 标题重试
‘I’ = Sequencer was force-stopped. 强制音序器停止
‘s’ = Servo Recovery 伺服恢复
‘w’ = Write Retry 写重试
‘+’ = Index active on non-index sector 在非索引扇区索引激活
‘D’ = Spin speed outside of tolerance 主轴电机加速到法定值以外
‘L’ = Latch retry 关闭重试
‘X’ = Resync servo bursts 重…伺服脉冲
‘<’ = Fine Track window exceeded. 寻找其它的跟踪窗口
‘$’ = Missing servo burst mark. 丢失伺服脉冲记号
B
^L
Display Sign-on Message, including firmware version.
显示标记信息,包括固件版本
B
^O
Advanced Servo Tracing 高级伺服追踪
B
^P
Power Chop enable/disable toggle. 功率突变开启/禁用指针
B
^T
Restart Test. Causes the drive to restart testing at the current age.
重新开始测试。使硬盘在当前的年限重新开始测试
B
^C
Software Reset Command, Causes the drive to spin down re-initialize itself, spin backup, and come ready again.
软件复位指令,是硬盘停转,自我初始化,再旋转,和再次变为就绪
B
^Z
Restart the Diagnostic Monitor. 重新开始诊断监控
B
!
Display Current R/W Channel Settings 显示当前读/写通道设置
B
%
Show Mux Status. ** (See figure 2.1.1) 显示混乱状态(见外形图2.1.1)
B
‘
Display Transfer Status (See figure 2.1.2) 显示传送状态(见外形图2.1.2)
B
.
Display Active Status. ** (See figure 2.1.3) 显示活动状态(见外形图2.1.1)
B
;
Display Machine Status. (See figure 2.1.4) 显示机器状态(见外形图2.1.4)
B
<
Decrement read/write scope synchronization pulse position.
读/写范围同步脉冲消耗的位置
B
>
Increment read/write scope synchronization pulse position.
读/写范围同步脉冲的增加量位置
B
?
Show Buffer Allocation. ** (See figure 2.1.5)
显示缓冲的配置(见外形图2.1.5)
B
^
Show Elapsed Time since start of cert test or last ^Z.
显示从开始实际测试或最后^Z流逝的时间
B
`
Show Read/Write Statistics. 显示读/写统计表
B
{
(Reserved for Servo Diagnostic Use) (为伺服诊断的使用而保留)
B
}
(Reserved for Servo Diagnostic Use) (为伺服诊断的使用而保留)
B
ESC
Interrupt Loop or Batch file execution. 中断循环或执行外部批处理文件
B
=
Display power up time 显示通电的时间
B
Figure 2.1.1: ‘%’ command display format 外形图2.1.1:“%”指令显示的格式
Returned data format:
aabbccccddeeffgg AX'iiiiiiii ' “jjjjjjjjjjjj’
aa
Age 年代
bb
Program 程序
cccc
Accumulated health 堆积健康
dd
Drive type 硬盘型号
ee
This is the Atlantis ECA0h WRSTATS register value
这是Atlantis ECA0h WRSTATS寄存器数值
ff
Error code byte 错误代码字节
gg
Maximum number of heads for this type
这个型号的最大磁头数量
iiiiiiii
Drive serial number 硬盘序列号
jjjjjjjjjjjj
PCBA serial number PCBA序列号
Figure 2.1.2: ‘ ‘ ’ command display format
Returned data format:
Cmd Cyl Hd Sct Cnt Stbuf Segl Csct Cbuf Actv Ercd Rtry Flags
aa bbbb cc dddd eeee ffff gg hhhh iiii j kk mmmm.nn.pp qq
Cmd aa
Last command type
Cyl bbbb
Cylinder of current command
Hd cc
Head of current command
Sct dddd
Start sector of current command
Cnt eeee
Length or block countEVER = R/W Forever
Stbuf ffff
Start buffer number
Segl gg
Buffer size
Csct hhhh
Current Sector
Cbuf iiii
‘Intfwork1’ address
Actv j
CIP
Ercd kk
Error Code
Rtry mmmm.nn.pp
Retry parameters (see level 2 Y command)
mmmm - retry control bit
nn – read retries count
pp - write retries count
Flags qq
R/W flags
Figure 2.1.3: ‘ . ’ command display format
Returned data format:
Pgm=aa Trk=bbbb(cccc).d.eee Zn=f Err=gg ErCt=hhhh Hlth=iiii Chlth=jjjj Ready
Pgm=aa
Active program 00 is diagnostic monitor. 50 is interface program All other numbers are current test running.
Trk=bbbb(cccc).d.eee
Currently selected logical cylinder (physical cylinder), head, sector. Sector will normally point to one past the last sector read or written.
Zn=f
Zone
Err=gg
Error code from current operation
ErCt=hhhh
Error count since last reset of drive or last reset error log command
Hlth=iiii
Accumulated health bits - four digits
CHlth=jjjj
Current health bits – four digits
Ready
Drive status. Can be Ready or Ntrdy
Figure 2.1.4: ‘ ; ’ command display format
Returned data format:
Age=aa Type=bb MxCyl=cccc MxHd=d MxSct=eee Bsz=ffff TCode=gggg
Age=aa
Current drive age
Type=bb
Current drive type
MxCyl=cccc
Maximum cylinders for this drive type in hex
MxHd=d
Maximum heads for this drive type in hex
MxSct=eee
Maximum Sector for this drive type in hex
BSz=ffff
Buffer size in hex
Tcode=gggg
Test code for T.E. Hda Test
Figure 2.1.5: ‘ ? ’ command display format
Returned data format:
RD:xxxx:yy
WR:xxxx:yy
AC:xxxx:yy
AS:xxxx:yy
DP:xxxx:yy
BA:xxxx:yy
ST:xxxx:yy
logbps:xxxx
codebps: xxxx
uP:xxxx:yy
CO:xxxx, yy
FM:xxxx:yy
AD:xxxx:yy
RDxxxx:yy
xxxx = Buffer number for read buffer
yy = Buffer size in sectors
WR:xxxx:yy
xxxx = Buffer number for write buffer
yy = Buffer size in sectors
AC:xxxx:yy
xxxx Buffer number for active log buffer
yy = Buffer size in sectors
AS:xxxx:yy
xxxx= Buffer number for ascii log buffer
yy = Buffer size in sectors
DB:xxxx:yy
xxxx = Buffer number for display log buffer
yy = Buffer size in sectors
BA:xxxx:yy
xxxx = Buffer number for batch file buffer
yy = Buffer size in sectors
ST:xxxx:yy
xxxx = Buffer number for statistics log buffer
yy = Buffer size in sectors
logpbs:xxxx
Bytes per sector in cert log area
codebps:xxxx
Bytes per sector in code area
uP:xxxx:yy
xxxx = Buffer number for microprocessor ram
yy = Buffer size in sectors
CO:xxxx, yy
xxxx = First code buffer address
yy = reserved
FM:xxxx:yy
xxxx=Buffer number for format operations (moving alts)
yy=Buffer size in sectors
AD:xxxx:yy
xxxx=Buffer number for reading/saving adaptives
yy=Buffer size in sectors
2.2 COMMON COMMANDS: (Available from All Levels)
The Common Commands may be executed whenever the diagnostic monitor prompt is present and the monitor is waiting for a command request.
The ‘-‘ and ‘=’ commands involves access of absolute address inside the embedded environment. Each address has 20-bit address. Please get the memory map from DE.
In the ‘Availability’ column, a ‘F’, ‘C’ and ‘B’ indicate the command is available at ‘Factory Code’, ‘Customer Code’ and ‘Both codes’ respectively. Besides, a ‘P’, ‘S’, and ‘*’ denote the command is available only if the code is compiled in ‘Packwriter Mode’, ‘Servo Mode’ and ‘Special Mode’ respectively.
Command
Description
Avail.
CR
Loop Break.
B
*
Special Function for batch file:
*1 = Pause batch file execution until input
*2,x = Delay x milliseconds
*3,x = Branch to Label x
*4,x = Increment head and branch to Label x
*5 = Clear monitor screen
*6 = Stop on error
*7,x = Load batch loop counter with x
*8, x = Decrement batch loop counter, branch to label x if 0,
B
+x,yyyy
Peek Byte. Display the byte data content of the specified memory address.
B
+xyyyy
Peek Byte. x - upper bits of a greater-than-16 bit address
B
+yyyy
Peek Byte. yyyy - lower 16 bits address. The high address in previous x,yyyy is used.
B
/x
Change Level to Diagnostic Monitor Level x.
B
=x,yyyy,zz
Poke Byte. Replace the contents of the specified address with the specified data.
Note that non-volatile area cannot be modified by this command.
zz – byte data content to be written at the specified address
B
=xyyyy,zz
Poke Byte. Replace the contents of the specified address with the specified data.
Note that non-volatile area cannot be modified by this command.
zz – byte data content to be written at the specified address
B
=yyyy,zz
Poke byte. Replace the contents of the speficied address with the specified data. yyyy – lower 16-bit address. The high address in previous x,yyyy is used.
Note that non-volatile area cannot be modified by this command.
zz – byte data content to be written at the specified address
B
@x
Label.
During batch file entry, define this location as Label x, where x = single digit numeric label specification.
B
-x,yyyy
Peek Word. Display the word contents of the specified address.
x – upper bits of 20-bit address
yyyy – lower 16 bits of 20-bit address
B
Axx
Set Test Space. Next command to repeat execution as specified by xx:
Bit 7 6 5 4 3 2 1 0
. . . . . . . +-- 1=all head, 0=current head
. . . . . . +---- 1=all cyl, 0=current cyl
. . . . . +------ 1=random cyl/hd, 0=sequential cyl/hd
. . . . +-------- 1=set special (see below)
. . . +---------- 1=even cyl, 0=all cyl
. . +------------ 1=odd cyl, 0=all cyl
. +-------------- 1=sequential out, 0=sequential in
+---------------- 1=random data, 0=existing buffer data
xx – if not present, display current test space.
Special setting:
A8,yyyy = Set minimum cylinder to yyyy
A9,yyyy = Set maximum cylinder to yyyy
AA,y = Set maximum head to y
AB,y = Set minimum head to y
AC,yyyy = Set command timeout to yyyy ms
AD = Set mins/maxs to defaults
B
2.3 LEVEL T COMMANDS
Command
Description
Avail.
Bxxx
Set Baud Rate
xx baud rate
1152 115.2k
625 62.5k
576 57.6k
384 38.4k
288 28.8k
192 19.2k
96 96.k
48 4.8k
B
C
Reset Certification Test.
Resets health bits and sets age to 1.
B
Dxx,yy,zz
Display Cert Logs sequentially from Log xx.
xx – Log to start sequential display; if blank, display only logs of failed tests.
yy – Displays only log entries with this error code
If yy = AA, enables Special Log Controls zz.
zz – Special function:
If zz = 40 - Enable fast dump capability for data cataloger capture. Inhibits time delay between log dumps and enables fast, unformatted log dump
B
Exx,yy,zz
Display/Edit Cert Log(s)
xx - Log number to display (no entry) Display Active Log
= 0 - Clear Active Log
<> 0 - Display Log xx
yy - Displays only log entries with this error code
If yy = AA, enables Special Log Controls zz.
zz - Special function:
= 08 – Clear and insert ASCII characters from serial port into ASCII log. When CR is entered, save to Log xx and close ASCII Log.
= 10 - Append characters from serial port to ASCII Log xx. Close on receipt of CR.
= 20 – Write Active Log to Log xx.
= 40 – Enable fast dump capability for data cataloger capture. Inhibits time delay between log dumps and enables fast, unformatted log dump.
= 80 – Display address of Log xx (Formerly zz = FF)
B
Gx,y
Read/Write critical component vendor sector
x = which vendor sector
y = if not specified: read, specified: write
B
Hxx,yy,zz
Display/Reset Health Status Bits.
xx
- (anything entered) - Display Current Health
- (nothing entered) - Display Accumulated Health
yy - (not used)
zz - =22h => Reset both current and accumulated health to 0000.
B
I
Cert the reserved cyl
F
Jxx,yy
Set Scope Sync from Cert Log entries:
xx - Use entries from Cert Log xx; Blank => Use Active Log.
yy - Blank => all entries; yy = sync only on Error Code yy entries.
B
Nxx
Set Drive Age to xx.
B
R
Read System Sector into System RAM
B
Txx
Run Factory Test xx
B
Wxx,yy,zz
Save System RAM into System Sector.
If age <> 60 then xx,yy,zz is not used.
If age == 60 then
xx - (not used)
yy - (not used)
zz - =22h => Reset Adaptives
B
Yxx
Set Drive Type to xx.
Sets drive type to its default configuration stated below. All defect tables and tuned read/write parameters will be initialised by this command. For safety reasons, this command does not write drive type to system tracks. A W must be issued to write the information to the drive.
xx = E0: 1 header version
= E1: 2 header version
= E2: 3 header version
= E3: 4 header version
B
dxx
Download CERT, RWF, CSPT, DEF from Serial Port to Buffer then write to reserved cyl.
xx = - FILEKEY for downloading.
1H OVLY_CCT
2H OVLY_ACT
3H OVLY_XX
4H DEFRSV
5H DEFFTY
6H DEFUSR
7H DEFLZT
8H RWF
9H SYSVAR1
AH SYSVAR2
BH CSPT
CH VBPI
DH FLSH_AT
EH FLSH_CT
0FH AT_STUFF
10H SECURITY
11H VENDOR_SPEC
12H SMART ATTRIBUTE
13H SMART THRESHHOLD
14H SMART DIRECTORY
15H SMART ERROR LOG
16H SMART COMPREHENSIVE LOG
17H SMART SELF_TEST_LOG
18H SMART CRITICAL_EVENT_LOG
19H SMART HEALTH_LOG
1AH SMART DRIVE_VENDOR_LOG
1BH SMART HOST_SPECIFIC_LOG
1CH WRITE_PROTECT
1DH CON GEN
1EH SKIP CYLINDER LIST
= 8X – For DLE only, ie. Only downloaded to buffer Ram.
= 88 – DLE only for RWF.
= 8B – DLE only for CSPT
uxx
Upload CERT, RWF, CSPT, DEF from Serial Port to Buffer then write from resv
Performs the uploading of files from the reserve tracks. The keys are exact the same as those in the download command.
B
fxxxx,yyyy
Download new flash code from Serial Port to Buffer then burn it in
xxxx - Algorithm Selector Word (ASW)
yyyy - None zero number will program this as the User Default ASW
(See figure 2.3.1 for ASW bits definitions)
(a) if xxxx is not specified =>
a.1) if default ASW is 0 or ffffh => current ASW is obtained from table, next ASW = ffffh
a.2) if default ASW is other values => current ASW = next ASW = default ASW
if xxxx is specified =>
b.1) if yyyy is 0 => next ASW is default ASW, current ASW = xxxx
b.2) if yyyy is ffffh => next ASW is default ASW, current ASW = xxxx
b.3) if all other yyyy values => next ASW = xxxx, current ASW = xxxx
B
#
Enter HDA Serial Number.
The S/N may be up to 8 A/N characters long, left justified, and right padded with spaces until string length is 8 characters.
B
[x
ASCII Log Control:
x = A Enables ASCII logging
x = B Disables ASCII logging
x = D Displays ASCII log
B
ASW WORD
The Algorithm Selector Word (ASW) is a command to tell the flash upgrade routine to select the correct flash programming algorithm. It can be issued as a parameter in the SDLE.EXE software. The idea is to have single generic routine to cater for different flash memory programming algorithm. Typical flash programming involves ‘word programming’ and ‘sector programming’. If a new flash vendor is cut in, the firmware is not required to change. Just use the correct ASW will do.
Figure 2.3.1
Low Byte
7
6
5
4
3
2
1
0
Future use
Future use
Future use
Future use
Future use
Future use
Word Programming
Reserved
(was 128-word pgm)
High Byte
15
14
13
12
11
10
9
8
Chip Erase
&
Reprogram
Main Memory Erase & Reprogram
Future Expansion
Future Expansion
Future Expansion
Future Expansion
Future Expansion
Future Expansion
2.4 LEVEL 1 COMMANDS: Memory Manipulation Commands
In the ‘Availability’ column, a ‘F’, ‘C’ and ‘B’ indicate the command is available at ‘Factory Code’, ‘Customer Code’ and ‘Both codes’ respectively. Besides, a ‘P’, ‘S’, and ‘*’ denote the command is available only if the code is compiled in ‘Packwriter Mode’, ‘Servo Mode’ and ‘Special Mode’ respectively.
Command
Description
Avail.
Bxx,yy
Buffer Display
xx - Buffer number to display. Note: If the displayed buffer is a read buffer, then low-lighted bytes which do not compare to the corresponding write buffer.
yy - Buffer number to compare data to (non matching data is high-lighted). If xx is a read buffer and yy is not entered, data matching the corresponding write buffer location is low-lighted; non matches are high-lighted.
B
Dx,yyyy,zz
Display Memory.
Displays 256 bytes of memory starting at address xyyyy.
x - upper bits of >16 bit address
yyyy - lower 16 bits of >16 bit address or the 16 bit address
zz - high-light bytes matching this value.
B
E
Erase System Information- Set all parameters to defaults.
*** Drive must be power cycled for this command to take effect
B
F
Read jumper infomation.
Returns message:
Jumper: yy
yy = 00: Slave (no jumper installed)
yy = 01: Master with ATA slave or single drive (jumper near ATA cable installed)
yy = 02: Cable Select (jumper near serial connector installed)
yy = 03: Master with non-ATA slave (both jumper installed)
B
M
Show Flash ROM Device Code, Manufacturer Code, User Default Algorithm Selector Word (ASW), and Fallback Default ASW. Drive will reboot after finishing this command.
B
Nxx
SMART Serial Port Control
xx – Level 1 N Subcommand
= 1 – Create Smart Sector.
= 2 – Update SMART Attributes ( same as SMART D3h option in interface )
= 3 – Do Smart Firmware Upgrade
= 5 – Dump SMART attribute data
= 6 – Dump SMART threshold data
= 7 – Dump G-List
= 8 – Dump Critical Event Log
= 9 – Dump P-List
= A – Dump two hour Health Log
= B – Run DST Short Test
= C – Run DST Long Test
B
Sx,yyyy
Edit Memory Byte.
x - upper bits of >16 bit address
yyyy – lower 16 bits of >16 bit address or the 16 bit address
The uP will continue to read the memory byte and will update the display if the byte changes.
After entering desired edit value, the following actions may be taken:
DEL - Re-edit same byte
CR(^M) - Close out and exit
LF(^J) - Edit the next sequential location
B
Ux,yyyy
Edit Buffer Byte.
This is the same command as S except the Buffer Memory is edited.
B
Vxx,yy,zz
Verify and count the number good copies of CERT, RWF, CSPT, DEF in Reserve
xx = - FILEKEY for verifying (same as level T, d command, except the following, which are not supported)
= 0D – CERT FLSH (for auto reflash)
= 0E – AT FLSH (for auto reflash)
= 0F – AT_STUFF
= 10 – Security (not used, as it is auto downloaded by drive firmware)
= 11 – Vendor Specific Entry
= 12 ~ 1B – SMART related entries
= 1C - Write Protect
= 1E – SKIP_TRK
Note: Although the number of good copies valid might be displayed for the above FILEKEYs, these are strictly not valid.
yy = - Not entered for just counting the number of good copies available.
- If entered, is the Copy Number, which is reserved for DE internal use only.
Zz = - Not entered for just counting the number of good copies available.
- If entered, is the Head Number, which is reserved for DE internal use only.
B
W
Compare PCB serial number with system sector’s serial number
If both serial number are equal, print “01”. If not, print “00”.
This feature is for process to detect if PCB has been swapped across HDA.
B
Yxxxx
Converts desired cylinder number to gray code and display the result.
xxxx - specifies the cylinder number to convert.
B
fxxxx
Program the FlashROM with either AT- or CERT-built code stored on the reserved tracks
xxxx = AAAA Flash with AT (customer) code
xxxx = CCCC Flash with CERT (factory) code
Use SDLE to download the code files onto the reserved tracks.
B
mx,yyyy
Edit memory word. Operates same as level 1 ‘S’ command, except operates on words.
B
yxxxx
Converts desired gray code to a cylinder number and displays the result.
xxxx - specifies the gray code to convert
B
$
Set PCB information and update flash
The user will be prompted to enter PCB EC#, PCB S/N and PCB P/N. This feature is used by PCB plant to burn in PCB#, EC# and serial #. Then the drive plant will automatically retreive the information.
B
#
Display PCB information
Display the PCB information burnt by $ command.
B
2.5 LEVEL 2 COMMANDS: Niwot Read/Write Commands
In the ‘Availability’ column, a ‘F’, ‘C’ and ‘B’ indicate the command is available at ‘Factory Code’, ‘Customer Code’ and ‘Both codes’ respectively. Besides, a ‘P’, ‘S’, and ‘*’ denote the command is available only if the code is compiled in ‘Packwriter Mode’, ‘Servo Mode’ and ‘Special Mode’ respectively.
Command
Description
Avail.
Bxx,yy
Display Buffer
xx = 512 byte buffer number
yy = buffer number for Data match.
If xx is a read buffer and yy is not entered, data matching the corresponding write buffer location is low-lighted; non matches are high-lighted.
B
Cxx,yy,zz
Copy Buffers
xx = Source buffer for the data.
yy = Destination buffer of the data.
zz = number of 512 byte buffers to copy (1 is default)
B
Exx,yy,zz
Display/Edit Cert Log(s)
xx - Log number to display.
- If no entry, Display Active Log
= 0 - Clear Active Log
<> 0 - Display Log xx
yy - Displays only log entries which have Error Code yy.
If yy = AA, enables Special Log Controls zz.
zz - Special Log Controls:
= 08 – Clear and insert ASCII characters from serial port into ASCII log. When CR is entered, save to Log xx and close ASCII Log.
= 10 - Append characters from serial port to ASCII Log xx. Close on receipt of CR.
= 20 – Write Active Log to Log xx.
= 40 – Enable fast dump capability for data cataloger capture. Inhibits time delay between log dumps and enables fast, unformatted log dump.
= 80 – Display address of Log xx (Formerly zz = FF)
B
Hx
Select Head
xx - Head to Select.
B
Ixx,yy,zz
Display/Modify Adaptive Settings.
(no parameters) – Display current heads adaptive values
xx - zone number
yy - parameter number to modify
zz - value to assign to parameter yy
B
Jxx,yy
Scope Sync from Log.
xx - cert log number to take entries from
- Default: use Active Log
yy - sync only on entries with this error code.
B
Kxxxx,y
Set Tracking Offset
xxxx - signed, 16 bit integer in units of 265/band (band = 2/3 track). Default = 0.
y = 0 : xxxx is temporary offset and is cleared with next seek. Default = temporary.
y = 1 : xxxx is persistent offset and is cleared on power cycle or servo cal.
B
Lxx,yyyy
OR
Lxx,zz,yyyy
Loop. Causes the next command to repeat execution, subject to controls specified by xx , yyyy and zz
Bit 7 6 5 4 3 2 1 0
. . . . . . . +------ 1 = Continue on error, 0 = Stop on error
. . . . . . +-------- 1 = Stop on no error
. . . . . +---------- 1 = Spindown on error, 0 = don’t spindown on error
. . . . +------------ 1 = Reserved
. . . +-------------- 1 = Inhibit err msg on error
. . +---------------- 1 = Stop on error code=yyyy, 0 = Loop count
. +------------------ 1 = Looping primed (internal use)
+-------------------- 1 = Looping active (internal use)
yyyy = Error code to stop or Loop count
zz = Hi-byte of loop count
For example:
L1,12,3456 - Don't stop on error , loop for 123456h times
L0,78 - Stop on error or repeat for 78h times whichever comes first.
L2 - Stop on NO error
L20,43 - Stop on error code 43h.
L24,43 - Stop on error code 43h., spindown drive when stop
L30,43 - Stop on error code 43h, disable error messages display .
B
Oxxxx,yyyy,zzzz
Seek-Seek on current head:
xxxx - Cylinder to seek from. Default is MinCyl
yyyy - Cylinder to seek to. Default is MaxCyl
zzzz - Number of seeks to perform. Default: continue until next keyboard entry
B
Pxxxx,yy,zz
Set Buffer Pattern.
Note : yyyy and zzzz formats will depend on xx
xx - Pattern options to write into buffer.
- 8100 = incrementing pattern
- 8200= random pattern
- 8400 = isolating pulse pattern
- 9400= fill buffer memory with the 16-byte memory array
yyyy - buffer number to fill, default all write buffer
zzzz - ignored
xx - NN = defined buffer number to fill with the pattern
- 9000 = fill the 16 bytes memory array with pattern
- 9100 = fill last 12 bytes of memory array with pattern
- 9200 = fill last 8 bytes of memory array with pattern
- 9300 = fill last 4 bytes of memory array with pattern
yyyy - lower word of pattern to fill
zzzz - higher word of pattern to fill
Example :
P8200,1F -- fill buffer number 1Fh with random pattern
P8100 -- fill enitre write buffer with incrementing pattern
--------------------------------------------------------------------------------------
P,1234,5678 – fill entire wrtie buffer with ‘12345678’
P0A,2222 -- fill buffer number 0Ah with pattern ‘2222’
--------------------------------------------------------------------------------------
P9000,0000,0000 -- fill 16-byte memory array with 0s
P9100,0000,0000 -- fill last 12 bytes of memory arrary with 0s
P9200,FFFF,FFFF -- fill last 8 bytes of memory array with ‘F’s
P9300,FFFF,FFFF -- fill last 4 bytes of memory array with ‘F’s
P9400,10 -- fill buffer 10h with pattern : (after cmd P90,P91,P92,P93)
‘0000 0000 0000 0000 FFFF FFFF FFFF FFFF’
P9400 -- fill entire write buffer with
‘0000 0000 0000 0000 FFFF FFFF FFFF FFFF’
B
Qxx,yy
Write/Read/Read Data.
xx - Start sector # on each track
yy - Number of sectors to transfer (limited to # sectors remaining on track).
Default: Number of sectors remaining on track.
B
Rxx,yy
Read Data.
xx - Start sector number (default = 0)
yy - Number of sectors to read . Default: Number of sectors remaining on this track.
B
Sxxxx,yy,zzzz
Seek Cyl/Head.
xxxx - Cylinder number
yy - Desired destination head. If the most significant bit is set, the command will seek to the physical cylinder number specified in the first parameter; else, the seek will be to the logical cylinder
zzzz - Track follow offset. Signed 16 bit integer
B
Tx
Measure Throughput.
x not entered: Measure Read Throughput
x = 1 Measure Write Throughput
B
Uxx,yy
Spin-Up
xx not entered: Normal spin-up until drive ready
xx value:
- 0 spin up with no hold states
- 1 advance hold state
- 2 release all hold states
- 3 hold in warm up state
- 4 hold in buzz state
- 5 hold in pre-lock state
- 6 hold in lock state
- all others = no hold state change
yy - Head number to use to go active.
B
Vxx,yy,zz
Read/Compare against corresponding write buffer.
xx - Starting sector on each track (default 00)
yy - Number of sectors to read (default is number remaining on track).
zz - Buffer to compare data against. Default: first Write Buffer.
B
Wxx,yy
Write Data.
xx - Starting sector on each track (default is 00)
yy - Number of sectors to write (default is remainder of track)
B
Yxx,yy,zzaa
Show/Set Retry Controls
xx (not entered) - Show current settings
Bit 15 14 13 12 11 10 09 08
. . . . . . . +-- VCO cal retry enable
. . . . . . +------ Channel reload retry enable
. . . . . +---------- Write splash retry enable
. . . . +-------------- Early read retry enable
. . . +------------------ Offtrack read retry enable
. . +---------------------- Preamp Hi Gain retry enable
. +-------------------------- TA retry enable
+------------------------------ Erasure pointer retry enable
Bit 07 06 05 04 03 02 01 00
. . . . . . . +-- ECC level control bit 0
. . . . . . +----- ECC level control bit 1
. . . . . +--------- ECC level control bit 2
. . . . +------------- Max ECC retry enable
. . . +----------------- Run out cal retry enable
. . +--------------------- Servo Threshold retry enable
. +------------------------- Boost retry enable
+----------------------------- MR bias retry enable
yy – data retry count
zz- ID retry count updated only when not 0
aa – write retry count
B
Z
Spin-Down.
B
b
Display Buffer Starts
Displays the first two bytes of each sector-sized buffer.
B
cxx,yy
Compare Buffers.
xx - Source buffer (default is first read buffer)
yy - Reference buffer to compare against (default is first write buffer)
B
exx,yy
Save Log to Cert Log yy.
xx - Source Log type: 0 = Active Log, 1 = ASCII log, 2 = Display log
yy - Destination Cert Log number
B
hxxxx,yy,zz
Translate Niwot CHS to Logical CHS. Maximum Niwot CHS allowed is NiwotCHS of (Stuff.TotalUserCapacity-1) .
Xxxx - Niwot cylinder
yy - Niwot head
zz - Niwot sector
- Algo:
if (translated LBA <Stuff.TotalUserCapacity)
{
display LBA;
if (Logical CHS < Stuff.CurrentAT CHS)
display logical CHS;
else
display invalid CHS FFFF/ F/ FF;
}
else
display Param Invalid;
Examples:
"h73,0,0" yields "0000000, 0000/ 0/ 00"
"h31A,0,1B" "003E3FF, 00FF/ F/ 3E"
-where "003E3FF" is LBA, and "00FF/ F/ 3E" is NiwotCHS
"h434f,3,13f" "201F77F, FFFF/ F/ FF"
-invalid CHS displayed as max logical geometry is 3FFE/F/3E
B
lxxxx,yy,zz
Translate Logical CHS /LBA to Niwot CHS
LogicalCHS i/p:
xxxx - Logical cylinder
yy - Logical head
zz - Logical sector
LBA i/p:
Xxxx - LBA hi-word
Yy - LBA lo-word
Note:
All three input arguments start counting from zero
When no arguments are entered, max user LBA and its NiwotCHS are returned
Examples:
1. LogicalCHS to NiwotCHS
"l0,0,0" yields "0000000, 0073/ 0/ 000"
"lFF,F,3E" "003E3FF, 031A/ 0/ 01B"
"l" "1F7F81F, 4233/ 2/ 10B"
2. LBA to NiwotCHS
"l201,F77F" "201F77F, 434F/ 3/ 13F"
B
rxx
Read Long from current track
Xx - Sector to read (including ECC Syndrome bytes)
B
t
Returns number of physical sectors per track for the current track
B
u
Unsleep.
Wakes the drive up, spins it up and makes it come ready.
B
vxx,yy
Write-Read-Compare
xx – Starting sector on each track (default 00)
yy – Number of sectors to write/read (default is number remaining on track).
B
wxx
Write Long to current track
xx – Sector to write (including ECC Syndrome bytes)
B
x
Show Zone Boundaries
B
y
Show Retry Counters
B
zx
Sleep.
x not sent - Standby Mode, Spin down, park heads, power off channel and pre-amp.
x = 1 - Sleep Mode, in addition to above the buffer is powered down. Requires a power cycle to recover from this mode.
B
$xxxx
Set sector per track for the entire drive.
* xxxx - sector per track
* This command is strictly for engineering puprposes only. Use at own risk
B
&xxxx,yy,zz
& - Display current skew information and first sector next to index
* xxxx = CADE followed by yy and zz to set skew.
* xxxx = DEAD , perform write gate timing test. Destructive command!
yy = head skew
zz = cylinder skew
This command is strictly for engineering puprposes only. Use at own risk.
Examples:
Perform 63/62h error test
2>&DEAD <cr>
Display skew information
2>& <cr>
CSkew = 16 Hskew = 13 CurSkew = 0039 IdxSec = 0164
Set HeadSkew=0 and CylSkew=1
2>&CADE,0,1 <cr>
CSkew = 1 Hskew = 0 CurSkew = 0000 IdxSec = 0000
4. Display SPLITCNT
2>&1A <cr>
2>Split = 00DC ; sector 1A has split at byte DCh
2>&1C <cr>
2>Split = 0000 ; sector 1C has no split
B
2.6 LEVEL 3 COMMANDS: Servo Seeking Commands
In the ‘Availability’ column, a ‘F’, ‘C’ and ‘B’ indicate the command is available at ‘Factory Code’, ‘Customer Code’ and ‘Both codes’ respectively. Besides, a ‘P’, ‘S’, and ‘*’ denote the command is available only if the code is compiled in ‘Packwriter Mode’, ‘Servo Mode’ and ‘Special Mode’ respectively.
Command
Description
Avail.
A
Set Test Space
Refer to ‘Common Command’ section for detail information
B
B
Graphic Torque Constant
Measures Acceleration Constant across entire pack and graphs the results.
F
Cxxxx,yyyy
Acceleration Constant Measurement Test
xxxx - ID cylinder limit for test
yyyy - OD cylinder limit for test
Note: xxxx > yyyy
B
Dxx, yy, zzzz
Access Times Measurement
If bit7 of yy is 0, then do normal access time test
xx : 1) xx=no entry, the access time test is on different seek length
2) xx=0, Random seek
3) others, xx denote as a seek length
yy : 1) yy=no entry, assume yy=0
2) yy bit0 determines settling type
[bit 0] = 0, denotes read settling
[bit 0] = 1, denotes write settling
3) yy bit1 determines seek direction ( not valid for random seek)
[bit 1] = 1, seek from RdWrMinCyl to RdWrMaxCyl
[bit 1] = 1, seek from RdWrMaxCyl to RdWrMinCyl
zzzz : specify the loop count ( default/no entry = 400h)
If bit 7 of yy is 1, then do head switch test at particular track
xx : denotes the track where head switch will be done
yy : bit0 determines settling type
[bit 0] = 0, denotes read settling
[bit 0] = 1, denotes write settling
zzzz : specify the loop count (default/no entry = 400h)
B
Exxxx
Display/Edit CertLog
Refer level 2 for more detail information.
B
Gxxxx,yy
Translate Hex to Gray
xxxx – Cylinder number to translate to Gray
yy – servo zone
yy = 0 , access servo band < 16482
yy = 1 , access servo band > 16482
B
Hx
Head Select
x - head to select
B
J,yy,zz
Servo Settle/Head Switch Offset Test
yy - test cylinder (current cylinder if no value entered)
zz - settling limit (default = head_skew+4)
B
Kxx,yy,zz
Head Settling Time
xx – Offtrack disturbance amplitude
yy –Track nos (default=75)
zz – Start Head nos. (default=0)
B
Lxx
Loop. See the same command in Level 2
B
Mxx,yy
Actuator Open-loop Move
xx - DAC output value (max=1FFF Hex)
yy - DAC control value (Drive specific)(Bit 0= 0 for in, Bit 0=1 for out)
F
Oxxxx,yyyy,zzzz
Seek-Seek on current head:
For x<y, use read settle.
x>y, use write settle.
xxxx - Cylinder to seek. Default: MinCyl
yyyy - Cylinder to seek to. Default: MaxCyl
zzzz - Number of seeks to perform. Default: 65536 cycle.
Note: If ‘CHANGEKK013_00’ switch is not enabled, it perform normal seek-seek only.
B
Qxxxx,yyyy
CertWrite Read
xxxx –First sector (default=0)
yyyy –Transfer length (default=full track)
B
Rxx,yyyy,zz
ReadGrey
xx –0 read for 1 sector; not 0 read for 1track.
yyyy –Desired track
zz –Desired sector
B
Sxxxx,yy,zzzz
Seek Cyl/Head.
xxxx - Target cylinder number
yy - Desired destination head. If the most significant bit is set, the
command will seek to the physical cylinder number specified in
the first parameter; else, the seek will be to the logical cylinder
zzzz - Track follow offset. Signed 16 bit integer
B
T
Servo Calibrations
B
Ux
Spin-Up
x – 0 = Spin up with no hold states
1 = advance hold state
2 = release all hold state
3 = hold in warm up state
4 = hold in buzz state
5 = hold in pre-lock state
6 = hold in lock state
all other = no hold state change
B
W
‘Where-is’ Actuator/Read Physical Grey
B
Y
Hysteresis
Performs Hysteresis test across the entire pack and displays the results graphically. In addition the inward seek integrator value is plotted.
* = Hysteresis value
o = -Integrator value
x = +Integrator value
Note: Integrator values are scaled , /4 .
B
Z
Spin-Down
B
gxxxx,yy
Translate Gray to Hex
xxxx - Gray code value to translate to Cylinder number
yy - Servo zone
yy = 0 , access servo band < 16482
yy = 1 , access servo band > 16482
B
jxxxx
Latch Exerciser Test
xxxx - No of times to do latch and unlatch process.
k
Measure head Offset position
l
Latch Test
Perform spin down/ spin up for 8 times and output average value
B
lxxxx,yyyy,zzzz
Latch Tuning Test
xxxx = limit counter
yyyy = acceleration frequency count
zzzz = deceleration frequency count
Note: This command is enabled when LATCH_TEST_TUNING is turned on.
*
pxxxx,yy,zz
Translate Niwot CHS to Logical CHS
xxxx - Niwot cylinder
yy - Niwot head
zz - Niwot sector
B
qxxxx,yy,zz
Translate Logical CHS to Niwot CHS
xxxx - Logical cylinder
yy - Logical head
zz - Logical sector
Note: All three input arguments start counting from zero
B
sxxxx,yy,zzzz
Seek to Physical Cylinder and Head, ignore Skipped Cylinder
xxxx –Target cylinder
yy –Target head
zzzz – Track follow offset. Signed 16 bit integers.
2.7 LEVEL 4 COMMANDS: Servo Tracking Commands
In the ‘Availability’ column, a ‘F’, ‘C’ and ‘B’ indicate the command is available at ‘Factory Code’, ‘Customer Code’ and ‘Both codes’ respectively. Besides, a ‘C’, ‘P’ and ‘S’ denote the command is available only if the code is compiled in ‘Cert mode’, ‘Packwriter mode’ and ‘Servo Mode’ respectively.
Command
Description
Avail.
Bxx,yy
SP-ZAP Test. Scheduled-Parameter WI-RRO Compensation to achieve ZAP (ZAP: Zero-Acceleration-Path)
Format: 4>Bxx[,yy]
Enter: 'B' Default . Show RROZAP status
'B0' Default. Show RROZAP status
'Bxx' SP-ZAP actions
xx= 1 -> Learn RROZAP table and compensate
from it. Clear table before learning
xx= 14 -> Master lock status. Toggles between normal RRO ZAP
operation and ‘freezing’ the status to always compensating from
the ram table.
xx= 2 -> Set "Comp" on and "FrmTbl" on.
xx= 3 -> Set "Comp" on and "FrmTbl" off.
xx= 4 -> Set "Comp" off and "FrmTbl" off.
xx= 5 -> Clear RROZAP table.
xx= 6 -> Same as "1" but with pure DACImage
xx= 7 -> Display RROZAP Table
Note: no “yy” when “xx” is 2,3,4,5,7.
“yy”, the number of learning iterations (default: 2).
S
v
Display RRO ZAP table
Display the RRO ZAP values in the ram table
Cxx,yyyy,aazz
Tracking Test.
Checks the current track for missing sector marks, bad gray codes, position errors greater than the test threshold, and position errors greater than the write threshold.
xx - Test threshold setting
yyyy - Position settle delay
zz - Loop count for each track
aa - Zap enable flag (if non-zero)
F
Exx,yy,zz
Display Active Log.
See /2 E for further detail.
F
Fxx,yy,zz
Seek Settle Adaptation Test ( All Zones)
xx - Head nos. Test on single head with head nos. entered. No entry/default will be tested
on all heads.
yy - Seek Length (Default = 10h, Max = 80h)
zz - Nos of average count. (Default = 20h)
Note : Compensation count for each head after this test will be stored into system log and
upload during initial spin-up.
F, S
Gxx
Set Tracking/Seek Gain
xx - Tracking gain value to set (default is to display current gain).
F
Hx
Select Head x
F
Kxx
Servo Offset
xx - Offset (signed, 8-bit integer)
F
Lxx
See level 3 L command
F
Mxx,yy
Actuator Open-loop Move
xx - DAC output value
yy - DAC control value (Drive specific)
F
O
Display MR Offset for the current head and track.
B
Px
Position Error Display for current track.
x = 1 - Loop until next keyboard entry
= 0 - (Default) Perform one pass
F
Sxxxx,yy,zzzz
Seek Cyl/Head
xxxx - Cylinder number
yy - Desired destination head. If the most significant bit is set, the command will seek to the physical cylinder number specified in the first parameter; else, the seek will be to the logical cylinder.
zzzz - Track follow offset. Signed 16 bit integer
F
W
‘Where-Is’ Actuator
F
X,n
To get accumulate PES and velocity
when n=0(or default),Examine Position Bursts (if n = 1, it shows only accumulated PES/rev and accumulated velocity PES/rev)
F
Zxx
Zap Servo Burst xx of the current track.
F
f
Fill Skipped Cylinders (NOT IMPLEMENTED)
F
pxxxx,yyyy,zzzz
Display Spin Error
xx –Test control
bit 0 : Set loop
bit 1 : Trap on threshold violation
bit 2 : 1 = Spin speed error/servo burst
0 = Spin speed error/rev
bit 3 : Spin speed step to normal
yyyy –Threshold setting
zzzz –Spin speed offset in .1% incr , this is used when bit 3 is set.
F
qxxxx
Change Spin Speed
xxxx –Spin speed offset in .1% incr.
B
t
Change Threshold
t0 – set normal threshold
t1 – set loose threshold for bode sweep
S
xcccc,hh
Skip Cylinder cccc; Skip Head hh
If cccc & hh omitted, Skipped Cylinder and hd will be listed
F
zcccc,hh
Unskip Skipped Cylinder(s) , Head
cccc = Cylinder to unskip
= ffffh unskip all skipped cylinders
= (default) display skip cylinder list
hh = Head to unskip
F
i
PES DFT
F
k
Perform Resonance Identification (Similar to certtest)
F
lxx,yyyy
Display Resonance Identification results. Also can change test C result in RAM(will not be saved to disk). To perform above-mentioned change, xx is the logical head number, while yyyy is the value to be changed to.
F
mx,yyyy,zzzz
SelfBode command
x-0 openloop bode
2 plant bode
4 controller bode
yyyy- bode starting frequency {actual frequency(Hz)/(base frequency/4)}
zzzz- bode end frequency {actual frequency(Hz)/(base frequency/4)}
(base frequency=(1/time per rev) in Hz
F
2.8 LEVEL 6 COMMANDS: Batch File Commands
In the ‘Availability’ column, a ‘F’, ‘C’ and ‘B’ indicate the command is available at ‘Factory Code’, ‘Customer Code’ and ‘Both codes’ respectively. Besides, a ‘P’, ‘S’, and ‘*’ denote the command is available only if the code is compiled in ‘Packwriter Mode’, ‘Servo Mode’ and ‘Special Mode’ respectively.
See also the common commands *, @, and |. These commands define the batch file flow control.
Command
Description
Avail.
Bx
Run Batch File
x - Batch file number (default = current batch buffer contents).
B
Dx
List Batch File
B
Ex
Enter Batch File
B
2.9 LEVEL 7 COMMANDS: Read Channel Adaptive Commands
These commands provide tools for determining and modifying the read/write channel adaptive parameters.
In the ‘Availability’ column, a ‘F’, ‘C’ and ‘B’ indicate the command is available at ‘Factory Code’, ‘Customer Code’ and ‘Both codes’ respectively. Besides, a ‘P’, ‘S’, and ‘*’ denote the command is available only if the code is compiled in ‘Packwriter Mode’, ‘Servo Mode’ and ‘Special Mode’ respectively.
Command
Description
Avail.
Bxx,yy
See same command in Level 2
F
Cxx,yy,zz
See same command in Level 2
F
Dxx
Display Temperature Diode Values
xx = when entered will force diode values to be saved to system sectors
F
Exx,yy
See same command in Level 2
F
Hx
Select Head x
F
Ixx,yy,zz
Display/Modify Adaptive Settings for the Current Head
(no parameters) – Display current head’s adaptive values
xx = zone number if xx = the number of zones then modify all zones
yy = parameter number to modify
zz = value to assign to parameter yy
F
Jxxyy,aabb,mmnn
Write Current/ Capacity tuning
if yy = 1, capacity tuning
xx = wc tune start point
yy = wc total test points
aa = write current weightage
bb = tune test zone
mm = first bpi stress point
nn = last bpi stress point
else, write current tuning
xx =: Bit 7 = 1 => forced de-type tuning yy = 01
= 0 => normal capacity tuning
Bit 6 = 1 => de-frequency disable
= 0 => de-frequency enable
Bit 5 = 1 => de-pop disable
= 0 => de-pop enable
Bit 4 - 0 => range of the left & right limits of quick tuning
= 00000 => quick tuning off
aa =: Bit 7 = 1 => bits 6 - 0 rep. % range allow of 0 to 100 allow for BPI errors
bb = tune test zone
Bit 7 = 0 => bits 6 - 0 rep. % range allow of 0.00 to 0.99 allow for BPI errors
mm = first bpi stress point
nn = last bpi stress point
F
Lxx
See same command in Level 2
F
Nxxyy,aabb,mmnn
Adaptive Test
xx - start point of tuning range for WP or left range for FC
yy - total points in tuning range for WP or right range for FC
aa - parameter select
- Write pre-compensations (WP)
- Boost frequency and Frequency cutoff (FCFB)
bb - upper nibble:start zone, lower nibble:end zone
mm - start point of tuning range (applicable for FCFB only)
nn - total points in tuning range (applicable for FCFB only)
mm and nn are only applicable to FCFB tuning. Tuned value is updated in RAM.
F
Oh,z,deff
Read/Write Coarse Offset Calibration
h - Head number (default = head 0)
z - Zone number (default = all)
if z = number of zones then calibration is done at the ID of the last zone.
if z = number of zones +1 then OD of zone 0 is calibrated
Tuning is done using the VGA mode. And ff indicate the
de - first data rough gain to use
ff - last data rough gain to use
Best offset value is updated in RAM.
F
Pxxxx,yy,zz
Set Buffer Pattern
xxxx - Pattern to write into buffer. Default: Random data.
yy - Length (in bits) of repeat pattern on non-random data (default = 10h)
zz -- Buffer number (no entry => entire Write Buffer)
F
Qxx,yy
Write/Read/Read Data
xx - Start sector # on each track
yy - Number of sectors to transfer (limited to # sectors remaining on track).
F
Rxx,yy
Read Data
xx - Start sector number (default = 0)
yy - Number of sectors to read (default = remaining # of sectors on this track)
F
Sxxxx,yy,zzzz
Seek Cyl/Head.
xxxx - Cylinder number
yy - Desired destination head. If the most significant bit is set, the command will
Seek to the physical cylinder number specified in the first parameter; else, the seek will be to the logical cylinder
zzzz - Track follow offset. Signed 16 bit integer
F
Fxx,yy
Find and Set FIR
xx – zone, yy –head
F
g
Tuning Servo AGC preset value
g – display the average servo VGA of current track
g,2 – tune the servo AGC preset value of all heads at the MD
F
Wxx,yy
Write Data
xx - Starting sector on each track (default is 00)
yy – Number of sectors to write (default is remainder of track)
F
Yxx,yy,zzaa
Set retry. See same command in Level 2
F
Z
Spin Down Command
F
dx,y,f
Reset Adaptives to the Default Settings
x - Zone Number (default = current zone) if x = number of zones then reset all zones
y - Head Number (default = current head) if y = number of heads then reset all heads
f - Flag. If f is entered, the head offset values are reset instead of the
channel adaptives (default is channel adaptives).
F
e
Show diagnostic error counter in the Atlantis (DIAGERRCNT)
F
H
Read write usafe status 1 from GC80 AD_STAT register
F
j
Show head resistance
F
p
Set parameters for Read / Write operation (precedes i command).
F
swwxx,yyzz
Send Byte to Read Channel or Preamp or spindle/VCM controller chip
ww - Register Address
xx - Data[7:0]
yy - Data [15:8]
zz - chip selector
if yyzz =0000, write Data [7:0] to preamp
if yyzz =0001, write Data [7:0] to channel
if yyzz =0003, write Data [7:0] to spindle/VCM controller chip
if zz =04, write Data [15:0] to spindle/VCM controller chip
F
txx,z
Get Data from Read Channel or Preamp or spindle/VCM controller chip
xx - Register address
z - if z=0 read from Preamp shadow RAM
- if z=1 read from read channel directly
- if z=2 read from Preamp directly (For packwriter mode only).
- if z=3 read 8 bit data from spindle/VCM controller chip
- if z=4 read 16 bit data from spindle/VCM controller image
F
x
Show Zone Boundaries
F
2.10 LEVEL 8 COMMANDS: Pack Writer Commands
Pack writer commands are not available in normal firmware release. The firmware must be specially generated. All the AT interface commands will not be available in Pack Writer code too. In the ‘Availability’ column, a ‘F’, ‘C’ and ‘B’ indicate the command is available at ‘Factory Code’, ‘Customer Code’ and ‘Both codes’ respectively. Besides, a ‘P’, ‘S’, and ‘*’ denote the command is available only if the code is compiled in ‘Packwriter Mode’, ‘Servo Mode’ and ‘Special Mode’ respectively.
Command
Description
Avail
A
Set Test Space
Refer to ‘Common Command’ section for detail information
B,P,S
Bxx
Set read head Bias
xx = MR read head bias (0 = 6 mA, 1F = 18mA)
P
Cxx,yyyy,zzzz
Execute the servo diagnostic sub commands
xx = diagnostic number
yyyy = optional diagnostic parameter
zzzz = optional diagnostic parameter
P,B,S
C00,xxxx,y
Flex bias cal
xxxx = optional cylinder
y = optional head
P,B,S
C02,xxxx,yyyy
Set access display and reset rate masks
xxxx = optional display rate mask
yyyy = optional reset rate mask
P
C03,xxxx,yyyy
Set min and max cylinder limits
xxxx = min cylinder
yyyy = max cylinder
P
C04,llhh,yyyy
Acceleration constant cal
hh = optional seek length
ll = optional head
yyyy = optional cylinder
P,B,S
C05,xxxx,y
Set seek delay
xxxx = seek delay in servo bursts
y = (1= force slow settle)
P,B,S
C07,xxxx
Head switch up and down the stack
xxxx = optional cylinder (default = current cylinder)
Fast or slow settle seek employed depends on C05 setting
P
C08,x
Random seeks
x = optional heads only
Fast or slow settle seek employed depends on C05 setting
P,B,S
C09,xxxx,yyyy
Seek to and from inward and outward within the min and max cylinder limits
xxxx = optional seek length (default = 1)
yyyy = optional cylinder (default = current cylinder)
Fast or slow settle seek employed depends on C05 setting
P,B,S
C0A,xxxx,yyyy
Seek to and back inward and outward within the min and max cylinder limits
xxxx = optional max seek length (default = max length)
yyyy = optional min seek length (default = 1)
Fast or slow settle seek employed depends on C05 setting
P,B,S
C0B,xxxx,y
Serpentine seeks inward up and down the head stack within the min and max cylinder
xxxx = optional cylinder (default = current cylinder)
y = optional head (default = current head)
Fast or slow settle seek employed depends on C05 setting
P
C0C,xxxx,yyyy
Seek to seek between cylinders
xxxx = optional 1st cylinder (default = min cylinder)
yyyy = optional 2nd cylinder (default = max cylinder)
Fast or slow settle seek employed depends on C05 setting
P,B,S
C0D,xxxx,yyyy
Head to head between heads on the same cylinder
xxxx = optional 1st head (default = head #0)
yyyy = optional 2nd head (default = heads-1)
Fast or slow settle seek employed depends on C05 setting
P
C0E,xxxx,yyyy
Set servo gains
xxxx = Ka
yyyy = optional Ktf
P
C0F,xxxx,y
Encode cylinder/ decode gray code
xxxx = optional cylinder or gray code (default = current cylinder/gray code)
y = (0 = encode, 1 = decode)
P,B,S
C10,xxxx
Radial Head Switch Offset Test.
xxxx= optional cylinder for head switch
Note: “CHANGESY001_01” ON to perform both Tangential and radial head switch test
Fast seetle seek employed
P,B,S,*
C11,xxxx,yyyy
Head linearization
xxxx = # of iterations, # of linerization range for average
00xx = # of lineraize range
eg. = 1: +/- LINEARIZERANGE
= 2: +/- LINEARIZERANGE*2
xx00 = # of iterations for linearization, <128
only effective if yyyy:bit0 = 0
default xxxx = 0A04h
yyyy = calibration options
bit 0 – 0: performance linearization
1: measure OL gain only
bit 1 – 0: silent mode during linearization
1: display gains profile and linearization coefficients while doing head
linearization. Only effective when bit 0 = 0
bit 2 – 0: all heads
1: current head only
bit 3 – 1: display head linearized coefficients only
bit 4 – 1: clear head gain coefficient
default yyyy = 0
Note: Slow settle seek employed
P,B,S
C12,xx,yy
Run out compensation
P,B,S
C15,xxxx
Change write threshold
xxxx = enter a new write threshold
P,B,S
C16,xx
Disable prediction stuffing on zapped servo samples
xx = 0 => allow stuffs
1 => diable stuffs
P,B,S
C18
Perform All Servo Calibration
P,B,S
C1A,xxxx,yy
Measure raw PES avg.
xxxx = optional nos. of PES samples taken at each sector for averaging (default=100)
yy = desired sector PES to display ( 0 if not entered, default = index )
Output format (in word value) :
aaaa bbbb cccc dddd
eeee ffff gggg hhhh
where,
aaaa = Ave (A-B) at desired sector
bbbb = Ave (C-D) at desired sector
cccc = Overall ave (A-B) of all revs taken
dddd = Overall ave (C-D) of all revs taken
eeee = Min (A-B)
ffff = Max (A-B)
gggg = Min (C-D)
hhhh = Max (C-D)
Note : This command is enabled by turn on Measure_Raw_PES switch
*,P
C1B,xxxx,yy
Measure single track PES with repetitive nos.
xxxx = optional cylinder ( default = current cylinder)
xxxx = 0 - measure PES and DAC. Output will be in two columns first being PES and
second being DAC.
yy = nos of time to repeat ( default nos =1 )
Output format (in word value):
A signed value of PES at every sector will be displayed and the first output will be PES value at Index burst. After one rev have been displayed, a carriage return will be invoked.
Note : This command is enabled by turn on Measure_Single_PES switch
*,P
C1C,xxxx,yyyy
Measure raw N(A-B) and Q(C-D) values with repetitive nos.
xxxx – optional cylinder (default is the current cylinder)
yy – no of times to repeat (default is 100)
Output format:
N and Q will be displayed and the first output is index burst. After one rev, a carriage return will be invoked.
Note: This command is enabled when MEASURE_SINGLERAW_PES is turned on.
P,*
CIF
Display servo calibration data
P,B,S
C23,xxxx
Measure RRO on STW
xxxx = optional # of samples (default = 100)
Note : This command is enabled with “MEASURE_PES” switch is on.
P,*
C24,xxxx
Measure PES synchronously at every sector on present trk and compute PES avg and Sigma^2
xxxx = optional # of samples (default = 100)
Note : This command is enabled with “MEASURE_PES” switch is on.
P,*
C25,xxxx
To display C24 measurement results at every sector
Note : This command is enabled with “MEASURE_PES” switch is on.
P,*
C27,xxxx
Ramp DACs
xxxx = enter the DAC peak ramp value (Default = 180h)
P
C28,xxx
Write servo DACs
xxx = 12 bit signed value
P
C29,xx,yy
Seek Settle Adaptation on single track
xx – Seek length ( default = 1 )
yy – Nos. of average count ( default = 1 )
yy = FFFF, to display resonance screen results( settling time)
yy = FFFE, to display compensation results
yy = FFFD, to clear the compensation table
Note : The results will not store into sys log. It is enabled by turn on
SEEK_SETTLE_ADAPT Switch.
F, S
C2A,xx,yy
Measure seek settling for TMR budgeting
xx = no of rev (default = 1)
yy = settling type, 0 denotes read settling and 1 denotes write settling
Output format (in double word value):
A signed value of PES at every sector will be displayed and the first output will be PES value at Index burst. After one rev have been displayed, a carriage return is invoked.
Note : this command is enabled when switch TMR_SEEK_SETL is turned ON.
*
C2B
Save Servo Parameters, Bias Table, Ka Table, Head Linearization Gain
C2C
Retrieve Servo Parameters, Bias Table, Ka Table, Head Linearization Gain
D1
Read and display serial number raw data.
F
D
Read serial number from HDA. This # is written by pack writer.
It will be logged to reserve E1 area.
P,S
DE1
Read serial number from HDA. This # is written by pack writer.
It will not be logged to reserve E1 area.
Cancun packwriter = +cccc hh bb oooo ff
cccc = max cylinder (excluding guard band cylinders)
hh = max head number
bb = number of bursts
oooo = oscillator clocks per bursts
ff = oscillator frequency in MHz
P,S
E
Lock Spin External
P
Gxxxx
Set Spin Gain
xxxx = spin gain (0800h default)
P
Hx
Select head directly
x = head number (0..7)
P
Ixxxx
Push-Inward Actuator
xxxx = 12 bit DAC command
P
Jxxxx
Spin Speed Adjust
xxxx = signed number of timer ticks (fe00 .. 0200)
P
Jxx,yy,zz
Seek Settle Adaptation Test
Similar to level 4, F command except the results are store into RAM table instead of system log.
F, S,*
K
Added track offset in track follow state
P
L
Unimplemented
P
M
Increment Head (current head + 1)
P
N
Report Logical Spin State
00 = reset
01 = fault
02 = initialize
03 = stopped
04 = spindown
05 = spinup
06 = wait (held need refer)
07 = open loop (lost refer)
08 = close loop (found refer)
09 = ready (spinning at speed)
10 = busy (recovery)
11 = invalid
P
Ox
Message Display
x = 0 is display output off, 1 is display output on (default).
P
Pxxxx
Push-Out Actuator
xxxx = 12 bit DAC command
P
Qx
Read channel
x = 0 is channel off, 1 = channel on
P
Rxxxx
Read Gray Code
xxxx = expected gray code
P
Sxxxx,yy,zzzz
Seek Cyl/Head
xxxx - Cylinder number
yy - Desired destination head. If the most significant bit is set, the command will seek to the physical cylinder number specified in the first parameter; else, the seek will be to the logical cylinder
zzzz - Track follow offset. Signed 16 bit integer
P,S
Sxxxx,yyyy
Compaq slam test
xxxx = vel to slam ( recommended max = 5FEEh )
yyyy = determines dir of the slam test and whether to do the slam test or not.
Bit 10 set indicates do the test; not set indicates don’t do the test
Bit 11 set indicates a ID crash stop slam; not set indicates a OD crash stop slam
Note : This command is enabled by turn on SLAM_TEST switch
*
Uxx
Spin-Up Motor
xx hold state(optional)
P
Vx
Spin-Up
x = actuator bias direction, (0 = outward, 1 = inward)
P
Wxx
Set Write Current
xx = preamp write current
P
X
AC unlatch for high latch force HAD
P
Z
Spin-Down
P
ff,ww
Set bank write mode
Sets the preamp write bank mode on/off and sets the write current.
f = 1 bank write ON
= 0 bank write OFF
ww = write current register value.
P
g
IMRON signal polarity
Returns a 01 if the IMRON preamp signal is active high and a 00 if active low.
P
2.11 LEVEL 9 COMMANDS: Full slipping / Defect-Skip Mode
Basically level 9 supports all commands in level 2. The only difference is all defects are skipped. There is no change in command parameters passing except the sector number will be treated as logical sector. Cylinder and head number remained the same as in level 2.
Example:
If a physical track consists of 12 sectors and 3 of them are defects, then in level 2 'W' would mean writing 12 sectors. However in level 9 'W' would mean writing 9 sectors since 3 sectors has been skipped.
W2,4 in level 2 means writing to physical sector 2,3,4,5 (physical sector 2,3,4,5).
W2,4 in level 9 means writing to logical sector 2,3,4,5 (physical sector 2,3,6,7).
In summary all sector representation in level 9 are in 'defect skip mode'.
Note: Due to LBA seeding, if there’s a defect slip in level 2 sector 4, then sector 5 and above cannot be read by level 2 command anymore if it has been written in level 9.
In the ‘Availability’ column, a ‘F’, ‘C’ and ‘B’ indicate the command is available at ‘Factory Code’, ‘Customer Code’ and ‘Both codes’ respectively.
Command
Descriptions
Avail.
Rxx,yy
Read Data.
xx - Start logical sector number (default = 0)
yy - Number of sectors to read . Default=whole track
Rxx,yy,1
Read Data with level 9 reassignment ON.
xx - Start logical sector number (default = 0)
yy - Number of sectors to read . Default=whole track
1 - a ‘1’ indicate level 9 reassignment turn ON
B
Sxxxx,yy
Seek Cyl/Head.
xxxx - Physical cylinder number (as in Level 2)
yy - Physical head number. (as in Level 2)
B
Wxx,yy
Write Data.
xx - Start logical sector number (default = 0)
yy - Number of sectors to write. Default=whole track
Wxx,yy,1
Write Data with level 9 reassignment turn ON.
xx - Start logical sector number (default = 0)
yy - Number of sectors to write. Default=whole track
1 - a ‘1’ indicate level 9 reassignment turn ON
B
Fxx,y
Insertion & Deletion of Defects
Fxx,A - Insert reassignment at sector xx.
Fxx,B - Insert pending at sector xx.
F0,C - Remove all reassignment and pending entries in defect table.
Fxx,D,yy - Insert yy slip at sector xx
F0,E - Reinitialize defect table
Fxx,F - Delete pending at sector xx.
F0,F0 - To allow media test.
F0,F1 - To fail media test.
F0,FF - To check for drive reboot
B
t
Returns number of logical sectors per track for the current track
This command is useful when an error is encountered and the host sofware wants to figure out which sector is the one in error. The host issues this command to find out the sector/track and then read single sector one by one from (0..max_sec_per_track – 1)
B
……
Support all other commands as in Level 2
B
Appendix A: Error Codes
00h
No error
03h
Bad ROM CRC
10h
RRO fail ZAP code
11h
Spin error
12h
Oscillatory wavy PES
13h
Offtrack
14h
Write fault
15h
Velocity PES harmonics
16h
Seek timeout
17h
'false' AMDET (mis-timed)
18h
Bad burst error code
19h
Bad grey code
1ah
Early sync code
1bh
Missed am
1ch
Failed the servo defect screen threshold
1dh
Time out waiting for servo ready (approv. 4sec)
1eh
Target generator sector error
1fh
Physical sector error
20h
RWF init error
21h
RWF file incompatible with Current ROM code
30h
Data miscompare
31h
Data miscompare on read longs
36h
Pending block encountered during a write
37h
Pending block encountered and read successfully
38h
Pending block encountered and read failed
40h
Id not found
41h
Long ECC error correction code
42h
Missed servo sector mark
43h
Dataecc error
44h
Fifo over/underrun
45h
Track ID miscompare error
46h
Track ID read TO code
47h
Missed data sync byte (1st data fragment)
48h
Missed data sync byte (after splitted fragment)
49h
Thermal asperity code
4ah
Write integrity error
4bh
Error log full
4ch
Controller stopped without a reason
4dh
Sd counter not the expected value
4eh
Block release timeout error
4fh
Servo assist error
50h
Skipped sector
51h
Alternated sector
52h
Pad and fill defects
53h
Pad/fill is alt dst, realt source
54h
Error during scratchfill
55h
Bad alt dest ID info
56h
Unable to find valid alt dest
57h
Unable to delete alt dest
58h
Too many defects per head
59h
Too many defects per track
5ah
Too many defects per drive
5bh
Defect table full
5ch
Slips overflowed
5dh
Invalid defect entry
5eh
Padding of data region of zapped burst
60h
No spares available
73h
Unable to read defect sectors code
61h
Write blocked w/o a reason
62h
Write gate came on early
63h
Write gate went off late
64h
GC thermal sensor fault detected
65h
Shock sensor fault detected
66h
Scratch ram protection error
70h
Bad disk resident cert/diag code
71h
Unable to read system sectors code
72h
Unable to read packwriter auto-stamp
83h
Invalid command
8dh
Cylinder filled in
8eh
Cylinder skipped out
8fh
Max cylinder skips has been reached
90h
Zapped burst
91h
2 consecutive zapped bursts
92h
Too many zapped bursts on a track
93h
Unable to zap - 2 consecutive bad bursts
94h
Unable to zap - too many bad bursts on a track
95h
Unable to zap bad burst
97h
Couldn't find burst
98h
Timeout waiting for r/w
A0h
Preamp miscommunication
C1h
Wrong major/minor version error
C2h
Wrong engr version error
C3h
File size mismatch error
C4h
DLE checksum = 0 error
C5h
AutoDLE upload error
C6h
Wrong overlay flag dat in byte 8,9
C7h
Read1Cp checksum=0 error
C8h
Exceed max key defined for DLE
C9h
Error during reading resv
Cah
Error comparing Signature
Cbh
Defect map sequence error
Fbh
Defect unspared
Fch
Command aborted (internal only)
Fdh
R/W command rejected
Feh
Invalid address passed to Niwot
Appendix B: Online Command Display Descriptions
Statistics Display Description(')
When the drive is running diagnostic commands, certain statistics are logged and may be displayed while operations are in process. Statistics for each head are displayed in decilog form.
(e.g. 10.3 = 10**10.3 = 2x10**10)
Rbit
This column displays the number of bits read in decilog.
Hard
This column displays the hard error rate for reads using the specified retry options. (If no retries are selected any error is a hard error). Any error displayed to the terminal using the level 2 R or Q commands will be counted in the hard error rate.
Firm
Soft
Raw
Rhdr
Wbit
This column displays the number of bits written in decilog.
WHrd
This column displays the hard error rate for writes using the specified retry options. (If no retries are selected any error is a hard error). Any error displayed to the terminal using the level 2 W or Q commands will be counted in the hard error rate.
Wrty
Whdr
Appendix C: Servo Message Tracing
MESSAGE TRACING LEVELS:
CTRL O will be used to set tracing to one of 4 levels. Each CTRL O will step to the next level as defined below.
LEVEL S0 S1 DEFINITION
0 0 0 No error or offtrack tracing enabled
1 0 1 Error tracing enabled (All but offtrack errors will be reported)
2 1 0 Offtrack tracing enabled ( Offtrack errors during TF will be reported)
3 1 1 Both offtrack and error tracing enabled
MESSAGE DESCRIPTION OF MESSAGES
TRACING
STRINGS
( $….) Error 1 missed AM ($, prev cyl, present cyl, offset, head, sector)
( s…. ) Error Error recovery seek ( s, prev cyl, present cyl, offset, head, sector)
( ot…) Offtrack Broke write thld during TF ( ot, , prev cyl, present cyl, offset, head, sector)
( bs…) Error Bad sample (bs, grey code, prev cyl, present cyl, offset, head, sector)
ref “byte” Always Spin up current measured across spin Rsense during spin up.
MESSAGE DESCRIPTION OF MESSAGES
TRACING
STRINGS
Switch to…. Always Switch to full int. spining closed loop on AM’s
Ready Always Spin up complete
MESSAGE TRACING DESCRIPTION
CHARACTER LEVEL
S
$ Always 3 missed AM’s in a row
+ Always Index found on wrong burst twice in a row
A Error AM time out during spin up ONLY
Z Error ZERO crossing time out during spin up ONLY
- Error Motor commutation table pointer was NOT advanced during spin up ONLY
* Error Motor commutation table pointer was advanced during spin up ONLY.
Appendix D: Health Bits Defininitions
The health byte is in the following format: X X X X . X X X X
The first 4 nibbles are the Current Health Bit and the last 4 are the Accumulated Health Bits.
The bits in the health byte description follows:
Bit # (if 1)
Meaning
Bit # (if 1)
Meaning
15
Excessive Skips or Alts
7
(internal use- abort test flag)
14
Hardware Error
6
not assigned
13
Serious R/W Error
5
not assigned
12
Error Rate Health
4
not assigned
11
Offtrack Error
3
R/W Warning
10
Actuator Error
2
Unable to Assign Skip or Alt
9
Servo Error
1
Spin Current Warning
8
Spin Error
0
Spin Error During Seek
??????