2.5 LEVEL 2 指令: Niwot 读/写指令
在可访问级别的栏里面,字母‘F’, ‘C’ 和 ‘B’ 支持的命令分别代表工厂代码,用户代码和公用代码。
字母‘P’, ‘S’, 和 ‘*’ 支持的命令分别代表‘填充写模式’, ‘伺服模式’ 和‘特殊模式
指令 描述 Avail.
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 为永久的偏移,当断电重启或伺服重校时会被清除 B
Lxx,yyyy
OR
Lxx,zz,yyyy 循环。使下一个命令重复执行,由 xx , yyyy 和 zz指定
位 7 6 5 4 3 2 1 0
. . . . . . . +------ 1 = 出错时继续, 0 = 出错时停止
. . . . . . +-------- 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 - 执行次数。 缺省:连续执行直到按任何键 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 测量写吞吐量 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 - 参考缓冲(缺省为第一个写缓冲) 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 <Stuff.TotalUserCapacity)
{
display LBA;
if (Logical CHS < Stuff.CurrentAT CHS)
display logical CHS;
else
display invalid CHS FFFF/ F/ FF;
}
else
display Param Invalid;
例如:
"h73,0,0" yields "0000000, 0000/ 0/ 00"
"h31A,0,1B" "003E3FF, 00FF/ F/ 3E"
-其中 "003E3FF" 为 LBA, "00FF/ F/ 3E" 为 NiwotCHS
"h434f,3,13f" "201F77F, FFFF/ F/ FF"
-作为最大逻辑排列显示的无效 CHS 为 3FFE/F/3E
B