希捷硬盘维修指令中文完全版
seagate diagnostic command
希捷诊断指令集 仅供研究
打开电源后, 通过串行口,硬盘将响应一系列的诊断命令。由于有一定数量的命令支持,这些命令被分为各个级别(Levels).这些命令通过串行口发送到硬盘 ,例如:读,写,查找,以及显示错误日志。被操作于可以访问的不同级别。这些诊断命令可以用来替代其他先进的技术来检测西捷硬盘。当硬盘运行起来后,这些诊断命令可以指出硬盘的软件和硬件的错误,这时候响应的检测结果以及信息被反馈到当前的屏幕上。
固件(firmware)包含2个flashi codes和数个支持文件。这2个flashi codes由工厂代码和用户代码组成,工厂代码包含所有的串行口诊断命令。但不包含AT接口命令,而用户代码包含所有的AT接口命令,但是串行口的命令很少。
在后面的列表中,字母„F?, „C? 和 „B? 支持的命令分别代表工厂代码,用户代码和公用代码。 以下是串行口命令的简短列表:
Level T – 校验测试
下载代码
开始创建测试
设置硬盘的年龄( „Age?)
发指令读各种日志,写测试数据到Flash等等
Level 1 – 存储器控制命令
发指令来显示缓冲区,内存区,设置内存 区,COPY缓冲区内容到Flash,从硬盘中读出系统信息 Level 2 – 驱动层命令
使用命令可以配置硬盘的柱面和磁头用来测试,给出随机的柱面磁头和随机数据的选项
设置数据模式,执行ECC校验, 控制错误日志 转存 sequencer ram.
做物理和逻辑地址转换, 指定分配或替换等等
马达起转,停转,查找,读,写,读写长度,比较,马达休眠
Level 3 – 伺服寻址命令
显示固件区内容
硬盘马达加速测试
测试磁头转换并设置时间
显示磁头偏移
移动主轴打开循环
查找,查找物理地址,各种长度的查找测试
锁存器测试
显示传动主轴的位置
磁滞测试
锁存器运行测试
Level 4 – 伺服寻道命令
操作跳过的柱面表
磁道错误测试
显示错误信号位置
清除伺服组
设置伺服偏移
设置/显示磁道的传输
发送脉冲信息到传动主轴
Уровень 5. Используется только в заводских условиях
Level 6 – 批处理文件命令
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 – 校正命令
调节参数 控制并显示
读硬盘磁道诊断
自动增益控制(AGC)
在所有区域进行电压控制震荡器的校准
Level 8 –填充写入命令
www.hdddata.cn 1 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
伺服诊断替代命令
配置命令
主轴外部锁,转速调节
设置传动器编压电流
Level 9 –驱动层命令(所有的偏差缺陷管理模式)
除了以上9个级别的命令,还有两套附加命令:联机命令和通用命令。联机命令的主要功能是显示各种类型的
状态,通用命令是用来通过监视内存来访问注册表,缓存和数据内存。 2.1 联机命令
联机命令可以在任何时候启动,作为专门的接口命令,接口代码必须在当前的内存映射得到成功执行,所以通
用的命令一直是可行的。
专门的接口命令:
命令 描述 可访问级别
B ^E 接口状态: 最大 C.H.S. /读写多块容量 / 当前转换模式设置
B ^F 读取数据段( Segment)记录(s)
B ^G 写信息转储队列( Queue Dump)
B ^I 查看控制寄存器状态(Controller Register Dump )** (见表 2.1.7)
^K 保留
^Q 保留
^R 保留. 这个命令仅仅使用于停转的情况下
B ^S 切断当前执行的地址
B ^V 接口命令响应和激活磁道开关
B ^X 接口和非禁止的中断命令历史记录** (见表 2.1.6)
B ^Y 显示原始SMART 值 (用于处理 SMART 属性)
B ‘~’ 接口命令状态
通用的命令
命令 描述 可访问级别
^B F (保留为伺服使用)
B ^D / ^N 重新激活显示开关
信息显示如下:
e c r = 0 1 0
这里的 „e? = 错误磁道, „c? = 命令磁道 & „r? = 重试磁道. 0=禁止, 1=允许.
当选择允许时以下字符被发送到串口:
„.? = 首先数据重试
„,? = 接下来数据重试
„c? = 成功的 On-The-Fly 校准产生
„f? =移动磁头重试.
„H? = 磁头重试
„I? =顺序强制终止
„s? =伺服恢复
„w? = 写重试
„+? =在无索引的扇区激活索引
„D? = 转速超出限制
„L? = Latch锁存器重试
„X? = Resync servo bursts,
„ = 良好的磁道溢出窗口
„$? =伺服丢失标记 burst mark.
B ^L 显示硬盘信息包括固件版本号
B ^O 高级伺服信息 Advanced Servo Tracing
B ^P 电源启动/禁止切换
B ^T 重启检测,在当前状态下硬盘重启检测
B ^C 软重起命令,主轴停转,启动,做初始化
B ^Z 重启诊断界面
B ! 显示当前读写通道设置
www.hdddata.cn 2 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
B % 显示多路转换器状态 ** (见表 2.1.1)
B ‘ 显示传输状态 (见表 2.1.2)
B . 显示激活状态 ** (见表 2.1.3)
B ; 显示机器状态 ** (见表 2.1.4)
B < 衰减量读/写范围,同步脉冲位置
B > 增量读/写范围,同步脉冲位置
B ? 显示缓冲区位置 ** (见表 2.1.5)
B ^ 显示自程序开始和剩余的时间^Z.
B ` 显示读/写统计
B { (保留为伺服使用)
B } (保留为伺服使用)
B ESC 中断程序执行
B = 显示加电时长
表 2.1.1: ‘%’ 命令显示
反馈的数据格式:
aabbccccddeeffgg AX'iiiiiiii ' “jjjjjjjjjjjj?
aa 老化程度
bb 程序
cccc 累积健康状况
dd 驱动器类型
ee 这是个Atlantis ECA0h WRSTATS 寄存器数值 ff 错误代码字节
gg 此类型最大磁头数值
iiiiiiii 驱动器S/N
jjjjjjjjjjjj PCBA S/N
表 2.1.2: ‘ ‘ ’ 命令显示的格式
反馈的数据格式:
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 最后命令类型
Cyl bbbb 当前指令下的柱面
Hd cc 当前指令下的 磁头
Sct dddd 当前指令下其始的扇区
Cnt eeee 长度和区块的数值 EVER = R/W Forever Stbuf ffff 起始缓冲区的数目
Segl gg 缓寸大小
Csct hhhh 当前扇区
Cbuf iiii „Intfwork1?地址
Actv j CIP出厂前编目
Ercd kk 错误代码
Rtry mmmm.nn.pp 重置参数 (见 level 2 Y命令)
mmmm –重做控制位
nn – 读重做结果
pp – 写重做结果
Flags qq 读/写标记
表 2.1.3: ‘ . ’ 命令显示的格式
反馈的数据格式:
Pgm=aa Trk=bbbb(cccc).d.eee Zn=f Err=gg ErCt=hhhh Hlth=iiii Chlth=jjjj Ready
Pgm=aa 进行中的程序 00 是诊断显示. 50 是 接口程序, 所有其他的数字是当前所 测试
的 .
Trk=bbbb(cccc).d.eee 当前选择的逻辑柱面(物理柱面),磁头,扇区。Currently selected logical cylinder
(physical cylinder), head, sector.
扇区将正常通过后面扇区的读/写 Zn=f 区
www.hdddata.cn 3 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
Err=gg 当前操作的错误代码
ErCt=hhhh 硬盘最后的重起或 最后重起的错误日志的读数 Hlth=iiii 累计的健康指数(4位表示)
CHlth=jjjj 当前的健康指数(4位表示)
Ready 当前状态,能否就位
表2.1.4: ‘ ; ’ 命令显示的格式
反馈的数据格式:
Age=aa Type=bb MxCyl=cccc MxHd=d MxSct=eee Bsz=ffff TCode=gggg Age=aa 当前硬盘的使用年限
Type=bb 当前硬盘的类型
MxCyl=cccc 在 16进值中此硬盘的最大柱面数值
MxHd=d 在 16进值中此硬盘的最大磁头数值
MxSct=eee 在 16进值中此硬盘的最大扇区数值
BSz=ffff 在 16进值中此硬盘的缓寸大小
Tcode=gggg Test code for T.E. Hda Test
表2.1.5: ‘ ? ’ 命令显示的格式
反馈的数据格式
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 = 读缓存显示的数值 yy = 扇区中的缓存寸容量 WR:xxxx:yy xxxx =写缓存显示的数值 yy =扇区中的缓存容量 AC:xxxx:yy xxxx 活动日志缓存数值 yy =扇区中的缓存容量 AS:xxxx:yy xxxx= ASCII 日志缓存数值 yy =扇区中的缓存容量 DB:xxxx:yy xxxx =显示日志缓存数值 yy =扇区中的缓存容量 BA:xxxx:yy xxxx = 批处理文件缓存数值 yy =扇区中的缓存容量 ST:xxxx:yy xxxx = 统计日志缓存数值 yy =扇区中的缓存容量 logpbs:xxxx 在确认日志区的每扇区的字节数
codebps:xxxx 在确认代码区的每扇区的字节数
uP:xxxx:yy xxxx = 微处理器 ram的缓冲数值 yy =扇区中的缓存容量 CO:xxxx, yy xxxx =缓存地址的开始代码 yy = 保留的 FM:xxxx:yy xxxx=与读出/保存相适应的缓存容量 yy=扇区中的缓存容量 AD:xxxx:yy xxxx=读出/保存自适应缓存数值 yy=扇区中的缓存容量
www.hdddata.cn 4 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
2.2 通用的指令: (所有级别中可用)
符显示的和由命令发出请求等待的,通用的命令可以随时完成诊断。 „-„ and „=? 命令中包含存取内嵌环境内部的绝对地址——为20位的地址。请使用DE获得内存映像。 在可访问级别的栏里面,字母„F?, „C? 和 „B? 支持的命令分别代表工厂代码,用户代码和公用代码。 字母„P?, „S?, 和 „*? 支持的命令分别代表„填充写模式?, „伺服模式? 和„特殊模式?
访问级指令 描述 别
B CR 停止循环.
B * 用于批处理文件的专门功能:
*1 = 暂停执行批处理文件
*2,x = 延迟x毫秒
*3,x =跳转到标号 x 处
*4,x = 递增磁头并跳转到标号 x 处
*5 = 清空显示屏
*6 = 出错时停止
*7,x = 循环运行批处理x次
*8, x = 减少批处理循环次数, 当循环次数为0时跳转到标号x 处
B +x,yyyy 读取字节. 显示 限定的内存地址数据容量.
B +xyyyy 读取字节. x – 地址大于16位时的高位字节
B +yyyy 读取 字节. yyyy – 16位地址的低位. 高位字节在上面的命令中的 x,yyyy 中指定
B /x 切换 诊断监视到Level x
B =x,yyyy,zz 存入字节. 用特定数据替换特定地址的内容
注意,此命令不能用于修改非不稳定区域。zz – 在特定地址欲写入的字节数据内容
B =xyyyy,zz 存入字节. 用特定数据替换特定地址的内容
注意,此命令不能用于修改非不稳定区域。zz – 在特定地址欲写入的字节数据内容
B =yyyy,zz存入字节. 用特定数据替换特定地址的内容.
yyyy – 16位地址的低位.高位字节在上面的命令中的 x,yyyy 中指定
注意,此命令不能用于修改非不稳定区域。zz –在特定地址欲写入的字节数据内容
B @x 标号.
在批处理文件中,用标号x定义位置,x=一个数字
B -x,yyyy 读取字. 显示特定地址的字内容
x – 20位地址的高位 yyyy – 20位地址的低16位
B Axx 设置测试范围. 下一个命令根据指定的xx 重复执行。
Bit 7 6 5 4 3 2 1 0
. . . . . . . +-- 1=所有磁头, 0=当前磁头
. . . . . . +---- 1=所有柱面, 0=当前柱面
. . . . . +------ 1=随机柱面/磁头, 0=连续柱面/磁头
. . . . +-------- 1=特殊设置 (见下面)
. . . +---------- 1=偶数柱面, 0=所有柱面
. . +------------ 1=奇数柱面, 0=所有柱面
. +-------------- 1=正顺序, 0=反顺序
+---------------- 1=随机数据, 0=缓冲中的现有数据
xx – 如果没有设定,显示当前测试范围。
特殊设置:
A8,yyyy = 设置最小柱面为yyyy
A9,yyyy = 设置最大柱面为 yyyy
AA,y = 设置最大磁头为 y
AB,y = 设置最小磁头为 y
AC,yyyy = 设置命令超时为 yyyy 毫秒
AD = 设置 最小/最大 为缺省值
2.3 LEVEL T 指令
指令 描述 访问
级别. www.hdddata.cn 5 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
B Bxxx 设置波特率
xx 波特率
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 复位出厂证测试
复位使用时间到 1.
B Dxx,yy,zz.从日志XX连续显示
xx – 从开始连续显示日志;如果是空白, 只显示失效的测试记录. yy – 只显示错误代码记录
If yy = AA, 允许特殊记录控制ZZ
zz – 特殊职能
If zz = 40 – 允许快速存储目录捕获数据. 禁止在记录存储和允许快速存储之间延迟
未格式化的存储
B 显示/编辑存在的记录(s) Exx,yy,zzxx - (未进入之前) 显示活动日志记录编号 = 0 - 清除活动日志
<> 0 -显示记录 xx
yy -仅显示当前错误代码 表值
If yy = AA, 允许特殊记录控制 zz.
zz -特殊职能:
= 08 –当临界比率进入,从串口清除并插入 ASCII码,, 保存到 xx记录并且关闭
ASCII记录
= 10 - 从串口到ASCII 记录xx增加字符. 关闭 临界比率记录. = 20 – 写入活动日志到 xx.
= 40 –允许快速存储目录捕获数据. 禁止在记录存储和允许快速存储之间延迟 未格式
化的存储
= 80 –显示XX日志地址 (Formerly zz = FF)
B Read/Write 扇区关键组成部分 Gx,y
x = 每个扇区
y = 未指定为读,指定为写
B 显示/复位BITS的健康状态 Hxx,yy,zz
xx
- (输入任意数值) – 显示当前健康状况
- (无数值输入时) - 显示累计健康状况
yy - (未使用)
zz - =22h => 重置但前以及累计的健康状况到 0000.
F 确认保留柱面值 I
B Jxx,yy 根据Cert日志设置显示同步:
xx - 使用Cert 日志 xx中;空 => 使用活动日志。 yy - 空 => 所有日志; yy = 只根据出错代码yy对应的日志同步
B Nxx 设置驱动器Age为 xx.
B R 读系统扇区到系统RAM
B Txx 运行工厂测试XX
B Wxx,yy,zz保存系统RAM 到系统扇区
若 age <> 60 则 xx,yy,zz 无效
若 age == 60 则
xx - (没有使用)
yy - (没有使用)
zz - =22h => 重设校正
www.hdddata.cn 6 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
B Yxx 设置驱动器类型为 xx. (砍头――译者著)
按照下面的规则设置驱动器类型。此命令将初始化所有缺陷表和读/参数。由于安全
原因,此命令不将驱动器类型写入系统磁道。 必须使用W 命令将信息写到磁盘。
xx = E0: 1 磁头版本
= E1: 2磁头版本
= E2: 3磁头版本
= E3: 4磁头版本
dxx 通过串口下载 CERT, RWF, CSPT, DEF 到缓冲区, 写入保留柱面。 xx = -下载的文件名字.
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 安全系统
11H 经销商说明
12H SMART 属性
13H SMART THRESHHOLD
14H SMART目录
15H SMART 错误日志
16H SMART 全面日志
17H SMART SELF_TEST_LOG
18H SMART CRITICAL_EVENT_LOG
19H SMART健康状态日志
1AH SMART 经销商记录
1BH SMART 主机特殊日志
1CH 写保护
1DH CON GEN
1EH 跳过柱面表
= 8X – 仅为数据传送换码字符, 如. 仅下载到缓存
= 88 – DLE only for RWF.
= 8B – DLE only for CSPT
B uxx 先将CERT, RWF, CSPT, DEF 从保留区写到缓冲,然后通过串行端口上载 从保留磁道上载文件。文件的filekey与下载命令中列出的相同。
B fxxxx,yyyy通过串行端口将新的flash代码下载到缓冲,然后写入flash。
xxxx - 算法选择字 (ASW)
yyyy - 若为非零数字则指示将此作为用户默认的ASW。 (见 表 2.3.1 ASW 的位定义)
(a) 若 xxxx 没有指定 =>
a.1) 若缺省 ASW 为is 0 或 ffffh => 当前 ASW 从表获得,下一个 ASW = ffffh a.2) 若缺省 ASW 为其他值 => 当前 ASW = 下一个 ASW = 缺省 ASW (b) 若 xxxx 为指定值 =>
b.1) 若 yyyy 为 0 => 下一个 ASW 为缺省 ASW, 当前 ASW = xxxx b.2) 若 yyyy 为 ffffh => 下一个 ASW 为缺省ASW, 当前 ASW = xxxx b.3) 若 yyyy 为其他值 =>下一个 ASW = xxxx, 当前 ASW = xxxx
B 输入 HDA 序列号。 # 序列号8个字符长度,当不足8个字符时可以在右边用空格填充为8个字符。.
www.hdddata.cn 7 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
B ASCII 日志控制: [x x = A 启用 ASCII 日志
x = B 禁用 ASCII 日志
x = D 显示 ASCII 日志
ASW 字
算法选择字 (ASW) 是用于设定flash更新程序使用正确的flash编程算法的命令。它可以作为SDLE.EXE软件的参数。主要是为了适应不同的flash存储器的编程算法,使之有统一的升级程序。 典型的 flash编程算法包括“„字编程”和“扇区编程”。 如果使用了新的flash ,无需改变固件,只需使用正确的 ASW 就可以更新flash了。
表 2.3.1
低字节
7 6 5 4 3 2 1 0 用于未来 用于未来 用于未来 用于未来 用于未来 用于未来 字编程 保留(为128-字程序) 高字节
15 14 13 12 11 10 9 8 擦除芯片&擦除主存储器 & 重新编程 未来扩展 未来扩展 未来扩展 未来扩展 未来扩展 未来扩展 重新编程
2.4 LEVEL 1 指令: 存储器操作指令
在可访问级别的栏里面,字母„F?, „C? 和 „B? 支持的命令分别代表工厂代码,用户代码和公用代码。 字母„P?, „S?, 和 „*? 支持的命令分别代表„填充写模式?, „伺服模式? 和„特殊模式
Avail. 指令 描述
B Bxx,yy 显示缓冲
xx - 欲显示的缓冲编号。注意:若显示的缓冲为读缓冲,则低亮度显示的字节不能与
写缓冲中的相应字节相比较。
yy - 欲要相比较的缓冲编号。 (不匹配的数据高亮度显示), 若 xx 为读缓冲且 yy 没有
输入,则与写缓冲中相应数据匹配的字节低亮度显示;而不匹配的高亮度显示。
B 显示存储器 Dx,yyyy,zz从xyyyy 地址开始显示256字节的存储器内容 x - 地址大于16 位时的高位
yyyy - 地址大于16位时的低16位或16位地址
zz - 高亮显示与此值相匹配的字节
B 擦除系统信息,设置所有参数为缺省值 E *** 必须重新开关驱动器电源才能使此命令生效
F 读取跳线信息 B
返回信息
Jumper: yy
yy = 00: Slave (没有使用跳线)
yy = 01: Master with ATA slave or single drive (跳线安装在靠近 ATA 电缆的位置)
yy = 02: Cable Select (跳线安装在靠近串行线连接器的位置)
yy = 03: Master with non-ATA slave (两个跳线都安装了)
B M 显示Flash ROM 的设备码,生产商代码,用户缺省算法选择字 (ASW), 和备用的缺省
ASW。此命令执行完后驱动器会重新启动。
B Nxx SMART 串行口控制
xx – Level 1 N 子命令
= 1 – 创建 SMART 扇区
= 2 – 更新 SMART 属性 (与接口命令中的 SMART D3h 选项相同 )
= 3 – 更新SMART 固件
= 5 – 转储 SMART 属性数据
= 6 – 转储SMART 阈值
= 7 – 转储 G-表
= 8 – 转储紧急事件日志
= 9 – 转储P-表
= A – 转储two hour Health 日志
= B – 运行 DST 短测试
= C – 运行 DST 长测试
www.hdddata.cn 8 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
B Sx,yyyy 编辑存储器字节
x – 地址大于16 位时的高位
yyyy – 地址大于16位时的低位或16 位地址
此命令将连续读出存储器中的字节,并在字节改变时刷新显示内容 输入修改的字节后,可以进行以下操作:
DEL – 重新编辑同一字节
CR(^M) - 关闭并退出
LF(^J) - 编辑下一位置
B Ux,yyyy 编辑缓冲字节
此命令与上面的S命令相同
B Vxx,yy,zz 检验并计算保留区 CERT, RWF, CSPT, DEF 正常的拷贝 xx = - 欲检验的FILEKEY (与level T中的 d 命令相同,除了下面的)
= 0D – CERT FLSH (用于自动刷新)
= 0E – AT FLSH (用于自动刷新)
= 0F – AT_STUFF
= 10 – Security (没有使用,由驱动器固件自动下载)
= 11 – 生产商信息
= 12 ~ 1B – SMART 相关内容
= 1C - 写保护
= 1E – SKIP_TRK
注意: 尽管有时以上FILEKEY的完好拷贝的数量显示正常,实际上严格说他们并不是
正常的。
yy = - 若没有输入,则只计算正常模块的数量
- 若输入,计算拷贝的数量,保留仅用于DE内部使用。 Zz = - 若没有输入,只计算正常模块的数量。
- 若输入,计算磁头的数量,仅限于DE内部使用。
B W 校验PCB序列号与系统扇区中的序列号
若两者相同,则输出“01”,若不相同,输出“00” 此命令用于检测是否更换了PCB板。
B Yxxxx 转换柱面号为 gray 码并显示结果
xxxx - 指定欲转换的柱面号
B fxxxx 使用存储在保留磁道的AT,或CERT 代码对FlashROM进行编程 xxxx = AAAA 使用 AT (用户) 代码
xxxx = CCCC 使用 CERT (工厂) 代码
使用 SDLE 将代码下载到保留区
B mx,yyyy 编辑存储器字。与 level 1中 “S”命令的操作相同。
B yxxxx 将 gray 码转换为柱面号,并显示结果
xxxx - 指定欲转换的gray 码
B $ 设置 PCB 信息并更新 flash
使用者会被提示输入 PCB EC#,PCB S/N 和 PCB P/N。 此功能用于PCB工厂写入PCB#, EC# and serial #后,到了驱动器工厂需要自动重新写入信息。
B 显示 PCB 信息 # 显示使用$命令写入的 PCB 信息
www.hdddata.cn 9 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
2.5 LEVEL 2 指令: Niwot 读/写指令
在可访问级别的栏里面,字母„F?, „C? 和 „B? 支持的命令分别代表工厂代码,用户代码和公用代码。
字母„P?, „S?, 和 „*? 支持的命令分别代表„填充写模式?, „伺服模式? 和„特殊模式
Avail. 指令 描述
B Bxx,yy 显示缓冲
xx = 512 字节缓冲编号
yy = 用于数据匹配的缓冲编号
若 xx 为读缓冲而 yy 没有输入,与写缓冲相应字节匹配的字节将低亮度显示;不匹
配的字节将高亮度显示
B Cxx,yy,zz拷贝缓冲
xx = 用于拷贝的源缓冲
yy = 用于拷贝的目的缓冲
zz = 欲拷贝的512字节缓冲编号 (缺省为1)
B Exx,yy,zz显示/编辑 Cert 日志
xx - 欲显示的日志编号
- 如果没有输入,显示活动日志
= 0 - 清除活动日志
<> 0 - 显示日志xx
yy - 只显示与出错代码 yy对应的日志
If yy = AA,启用特殊控制功能 zz.
zz - 特殊功能:
= 08 – 清除日志并通过串行端口插入ASCII字符到ASCII日志。当输入CR 时,保存
到日志 xx 并关闭 ASCII 日志。
= 10 - 通过串行端口将字符附加到ASCII日志 xx. 输入 CR时关闭日志。
= 20 – 将活动日志写到日志 xx。
= 40 –启用快速日志转储。 禁止日志转储间隔时间延迟,启用快速、无格式的日志
转储。
= 80 – 显示日志 xx 的地址(以前为 zz = FF)
B Hx 选择磁头
xx - 待选择的磁头
B Ixx,yy,zz显示/修改校正设置
(无参数) – 显示当强磁头校正值
xx - zone 号
yy - 欲修改的参数号
zz - 分配给参数yy的值
B Jxx,yy 使用日志同步显示
xx - 欲使用的cert 日志号
- 缺省:使用活动日志
yy - 只使用与此出错代码相应的日志同步
B Kxxxx,y 设置寻道偏移
xxxx - 有符号的 16 位整数,以 265/band为单位. (band = 2/3 磁道). 缺省 = 0.
y = 0 : xxxx 为临时的偏移,下一次寻址时会被清除。 缺省 = 临时的
y = 1 : xxxx 为永久的偏移,当断电重启或伺服重校时会被清除 www.hdddata.cn 10 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
B Lxx,yyyy 循环。使下一个命令重复执行,由 xx , yyyy 和 zz指定
OR 位 7 6 5 4 3 2 1 0 . . . . . . . +------ 1 = 出错时继续, 0 = 出错时停止 Lxx,zz,yyyy . . . . . . +-------- 1 = 不出错时停止
. . . . . +---------- 1 = 出错时停转, 0 = 出错时不停转
. . . . +------------ 1 = 保留
. . . +-------------- 1 = 出错时不显示出错信息
. . +---------------- 1 = 当出错代码为code=yyyy时停止,0 =
作为循环计数
. +------------------ 1 = 基本循环 (内部使用)
+-------------------- 1 = 手动设置的循环 (内部使用)
yyyy = 出错代码
zz = 循环计数的高字节
例如:
L1,12,3456 - 出错时不停止,循环执行123456h 次
L0,78 - 出错时停止,否则重复 78h 次
L2 - 不出错时停止
L20,43 - 当出错代码为 43h时停止
L24,43 - 当出错代码为43h时停止并停转
L30,43 - 当出错代码为 43h 时停止,禁止显示出错信息
B Oxxxx,yyyy,zzzz 在当前磁头定位,定位
xxxx - 起始柱面。 缺省为最小柱面
yyyy - 结束柱面。 缺省为最大柱面
zzzz - 执行次数。 缺省:连续执行直到按任何键
www.hdddata.cn 11 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
B Pxxxx,yy,zz设置缓冲工作方式
注意: yyyy 和 zzzz 格式取决于 xx
xx - 写到缓冲时的选项
- 8100 = 增量方式
- 8200 = 随机方式
- 8400 = 孤立脉冲方式
- 9400= 使用16字节串填充缓冲
yyyy - 欲填充的缓冲,缺省为所有写缓冲
zzzz - 忽略
xx - NN = 定义欲使用某格式填充的缓冲数量
- 9000 = 使用某格式填充16字节串
- 9100 = 使用某格式填充最后12字节串
- 9200 = 使用某格式填充最后8字节串
- 9300 = 使用某格式填充最后4字节串
yyyy - 某格式的低字节
zzzz - 某格式的高字节
例如:
P8200,1F -- 使用随机方式填充缓冲1FH
P8100 -- 使用增量方式填充整个写缓冲
--------------------------------------------------------------------------------------
P,1234,5678 – 使用“12345678”填充整个写缓冲
P0A,2222 -- 使用“2222”填充缓冲 0Ah
--------------------------------------------------------------------------------------
P9000,0000,0000 -- 用0填充16字节串
P9100,0000,0000 -- 用0填充最后12字节串
P9200,FFFF,FFFF--用“F”填充最后8字节串
P9300,FFFF,FFFF--用“F”填充最后4字节串
P9400,10 -- 使用下面的格式填充缓冲10H: (在命令P90,P91,P92,P93之
后)
„0000 0000 0000 0000 FFFF FFFF FFFF FFFF?
P9400 -- 使用下面的格式填充整个缓冲:
„0000 0000 0000 0000 FFFF FFFF FFFF FFFF?
B Qxx,yy 写/读/读 数据
xx - 每磁道起始扇区号
yy - 欲操作的扇区数 (限于磁道上剩余的扇区) 缺省: 磁道上剩余的扇区数
B Rxx,yy 读数据
xx - 起始扇区(缺省 = 0)
yy - 欲读取的扇区数
缺省: 磁道上剩余的扇区数
B Sxxxx,yy,zzzz 寻址柱面/磁头
xxxx - 柱面号
yy - 目的磁头。若此位设定,将会寻址第一个参数指定的物理柱面;否则,寻址
逻辑柱面。
zzzz - 磁道偏移量。有符号16位整数
B Tx 测量吞吐量
x 没有输入: 测量读吞吐量
x = 1 测量写吞吐量
www.hdddata.cn 12 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
B Uxx,yy 主轴起转
xx 没有输入: 正常起转,直到驱动器准备就绪
xx 值:
- 0 没有保持状态的起转
- 1 高级保持状态
- 2 解除所有保持状态
- 3 保持热启动状态
- 4 保持低噪声状态
- 5 保持预锁定状态
- 6 保持锁定状态
- 其他 = 不改变保持状态
yy - 欲激活的磁头数
B Vxx,yy,zz读/比较相应写缓冲
xx - 每磁道起始扇区 (缺省 00)
yy - 欲读取的扇区数 (缺省为磁道上剩余的扇区数)
zz - 欲比较的缓冲。 缺省:第一个写缓冲
B Wxx,yy 写数据
xx - 每磁道起始扇区 (缺省 00)
yy - 欲写入的扇区数(缺省为磁道上剩余的扇区数)
B Yxx,yy,zzaa显示/设置 retry控制
xx (没有输入) - 显示当前设置
位 15 14 13 12 11 10 09 08
. . . . . . . +-- 启用VCO 重校
. . . . . . +------ 启用信道重载
. . . . . +---------- 启用重写splash
. . . . +-------------- 启用预读retry
. . . +------------------ 启用偏离磁道读取retry
. . +---------------------- 启用前置放大器高增益retry
. +-------------------------- 启用TA retry
+------------------------------ 启用擦除指针retry
位 07 06 05 04 03 02 01 00
. . . . . . . +-- ECC level 控制位0
. . . . . . +----- ECC level 控制位1
. . . . . +--------- ECC level 控制位2
. . . . +------------- 启用最大ECC retry
. . . +----------------- 启用耗尽校正 retry
. . +--------------------- 启用伺服阈值retry
. +------------------------- 启用补偿retry
+----------------------------- 启用MR 偏移retry yy – 数据 retry 计数
zz - ID retry 计数 ,仅当此参数非0时更新
aa – 写 retry 计数
B Z 主轴停转
B b 显示缓冲起始
显示每扇区大小的缓冲的前两个字节
B cxx,yy 比较缓冲
xx - 源缓冲 (缺省为第一个读缓冲)
yy - 参考缓冲(缺省为第一个写缓冲)
www.hdddata.cn 13 Copyright ?2004, Seagate Technology LLC
seagate diagnostic command
B exx,yy 保存日志到 Cert 日志 yy.
xx - 源日志类型: 0 = 活动日志, 1 = ASCII 日志, 2 = 显示日志
yy - 目的 Cert 日志号
B hxxxx,yy,zz转换 Niwot CHS 为 逻辑 CHS。 允许的最大Niwot CHS 为 NiwotCHS of
(Stuff.TotalUserCapacity-1) .
Xxxx - Niwot 柱面
yy - Niwot 磁头
zz - Niwot 扇区
- 算法:
if (translated LBA
工程目的。使用时自担风险。
B &xxxx,yy,zz& - 显示当前偏移信息,和与索引相连的第一个扇区
* xxxx = CADE 由 yy 和 zz 设置偏移 * xxxx = DEAD , 执行写门电路时间测试。为破坏性的命令~
yy = 磁头偏移
zz = 柱面偏移
* 此命令严格的用于工程目的,使用时自担风险
例如:
1. 执行 63/62h 错误测试t
2>&DEAD