Slef test的启动与区域规划(已完整)

转载:中国硬盘基地网(http://www.intohard.com

 

很多的朋友现在都关注Slef test运行模式,与其使用C区来达到启动和得到更好的修复效果,本来打算发布在高级会员区的,为了不使很多朋友走弯路,发表如下;
  注意:如果您认为您对此研究相当精通,那么请爱心帮助还不够精通的朋友,如果不喜欢帮助他们,也不要用另类的姿态和评论等方式对待他人,如果您是一位新手,希望本帖能够给您带来帮助;
    首先我们应该明白,哪些硬盘具备C区(备用固件区),哪些系列不具备,迈拓硬盘微代码机制与Self Test启动方式有什么变化和要求,这样直观的给大家说一下;
    LDR:包含ROM和Overlay而不包含硬盘完全运行所需要的数据,比如缺陷表,校准数据和其他参数;电路板中的程序和固件区中的程序版本也自然不同,这样我们可以判断处理器中当前运行的代码是运行在电路板上的还是固件区的程序,如果版本号为“Z”(版本号最后一个字母),那么说明硬盘没有进行完全初始化(我们通常为寻道)例如硬盘在完全初始化后版本为WAK21R90;在没有完全初始化的时候就是WAK21R9Z;Plker/ardent系列硬盘的固件区有两个控制程序;分别为:
程序1;包含模块38H 39H 4FH;
程序2;包含模块97H 96H 98H;
      在这种情况下自然存在了三种微代码,我们以版本号中的字否来区别:A,B,C---以N40P为例就是NARxxxxZ,NBRxxxxZ,和NCRxxxxZ;当版本号标示为NARxxxxZ的固件区中代码与BootROM中程序是不同的;
ATA指令“DOWNLOAD MICROCODE”92H来载入LDR从而启动微代码;当然有很大一部分硬盘不需要修改92H,直接可以启动,以下是迈拓硬盘启动Self Test的一些说明;


  MAX VL40(PROXIMA)系列;  不存在ALT-SA,启动Self tels不需要修改脚本,启动时间大约30秒;
  MAX PLUS60(RIGEL)系列;  不存在ALT-SA,启动Self tels不需要修改脚本,启动时间大约30秒;
  D531(NIKE)系列;        不存在ALT-SA,启动Self tels不需要修改脚本,启动时间大约30秒;
  ATHENA DSP系列;       不存在ALT-SA,启动Self tels不需要修改脚本,启动时间大约30秒;
  ATHENA PKR系列;       不存在ALT-SA,启动Self tels不需要修改脚本,启动时间大约30秒;
  VULCAN系列;          不存在ALT-SA,启动Self tels不需要修改脚本,启动时间大约30秒;
  ARES 64K系列;          不存在ALT-SA,启动SF需要修改ID=89H;启动时间大约30秒/10分钟;
  MAX16(FALCON)系列;    不存在ALT-SA,启动Self tels不需要修改脚本,启动时间大约30秒;


  MAX PLUS8(N40P);有些硬盘含有/有些不含有ALT-SA,没有程序备用固件区的,修改ID=89直接测试,如果带有备用固件区,那么启动Self test需要选择从A还是B来创建原始固件区,然后从备用固件区启动,启动时间大约30秒/10分钟;
  MAX PLUS9(CALYPSO)系列;每个硬盘都存在ALT-SA,支持从基本固件区和备用固件区执行,两种方式可以自由选择执行,启动时间大约30秒/10分钟;
大家了解了以上原理,我们分别对金8/金9两种启动Self Test做出说明;
金8开始执行Self Test流程如下:
1:安全模式载入LDR;
2:执行"PASSPORT READING"检查固件版本号是否为NCRxxxx0标称,检查是否出现序列号,如果没有出现序列号,那么ldr没有启动,这个时候选择另外ldr或者说明备用固件区有故障;当然,这种情况下执行self test不会产生任何效果;
3:选择"Utility state"比较载入代码与ROM_SA的校验和,如果他们不一致,那么立即从硬盘中生成LDR,并且使用生成的LDR启动;或者可以将所有模块保存在数据库,然后从数据库中启动LDR(运行To form来生成程序),备用固件区的程序都是相似的;
注意:如果在数据库中已经存在相同校验的rom,那么应该使用另外的文件名保存;
4:执行Self Test,保持电源打开和PC-3000程序执行;
5:关闭电源在此载入同一个LDR,再次载入LDR后自捡发光二极管会闪烁10分钟,之后开始启动Self test,要察看Self test的状态,那么启动pc3000的mt程序时,选择"Self test state monitoring"按下“launch utility”这个时候就可以从文件中加载脚本并监视Self test状态;
   Self test的启动需要5分钟左右,然后硬盘回重载被用固件区89H来重建基本固件区(隐藏缺陷,写入基本模块,重新计算校准参数);然后回关闭硬盘,移除“安全模式”跳线并打开电源;
现在不需要载入LDR,发光二极管闪烁10分钟之后开始执行SELFTEST,不过此时是从基本固件区执行;

 

 

 

CALYPSO执行Self test
CALYPSO可以从基本固件区启动Self Test;也可以从备用固件区启动Self Test;不过有些硬盘虽然具有备用固件区,可是却不能从备用固件区启动SelfTest,我们可以通过固件区脚本察看来得到,如果调用出来的测试数量为7,那么就不能够从备用固件区启动Self Test,这个时候需要从基本固件区启动Self test;从备用固件区启动还是从基本固件区启动Selftest开始决定使用那个程序来创建原始固件区;
从备用固件区启动self test的操作流程如下;
1:安全模式加载LDR
2:执行“Passport reading”检查固件版本号为NCRxxxx0的形式,会差看到是否出现序列号,如果没有出现序列号,就说明ldr没有启动(尝试使用其他的ldr)或备用固件区损坏;
注意:备用固件区损坏或者ldr不启动,启动self test 不发生任何效果;
3:启动pc3000程序并执行"utility state",比较载入的rom和rom_sa的校验和--如果两者不同,那么立即从此硬盘中生成ldr并使用生成的ldr启动硬盘,或者也可以将所有模块保存到数据库,然后从数据库中启动ldr(运行"to form"来生成程序);备用固件区的程序都是相似的; 
注意:如果在数据库中已经存在相同校验的rom,那么应该使用另外的文件名保存(不要覆盖);
4:现在开始执行self test,察看脚本中测试的数量,如果数量过少(7个),那么就不能执行self test-此硬盘不能从备用固件区启动self test;
5:我们需要修改脚本;使用"NOP"来注释掉“Waiting outside event(ID=06H)”测试(数据一般位于第二项);循环(LOOP)(等待外部时间时的循环(Waiting outside event))另外还要将id=90测试注释为"nop";PC-3000不会自动禁用前面提出的测试;
6:修改后的脚本保存到硬盘文件《以后直接可以从文件载入脚本》;
7:执行“Start Self Test”保持电源开启和pc3000程序在运行;
8:关闭硬盘电源再打开,然后载入ldr,大约30秒后(30秒之间发光二极管不会跳闪),这个时候就会启动selftest;大约5分钟左右程序开始执行id=89h,从基本固件区载入,发光二极管会跳闪30秒,之后将从基本固件区继续执行self test,这个时候中止测试并察看基本固件区变化;
9:从基本固件区继续执行self test;
备用固件区的脚本更改后的硬盘启动不需要再次做更改脚本工作,只需要从上面的第5步开始,从备用固件区启动self test即可;
注意:以上操作为PC-3000使用流程;希望能够给朋友们带来方便;

posted @ 2010-01-15 21:55  诺岚生  阅读(261)  评论(0编辑  收藏  举报