关于备用服务区

[复制链接]

该用户从未签到

94

主题

65

回帖

289

积分

[INTOHARD]工兵

Rank: 1

积分
289
发表于 2006-9-23 11:48:49 | 显示全部楼层 |阅读模式
  一、备用服务区的原理
  厂商在N40P/CALYPSO/SABRE/FALCON系列硬盘驱动器中使用了备用服务区,N40P系列比较特殊,不是所有N40P系列驱动器都具有备用服务区,通过查看模块列表可以验证N40P系列是否具有备用的服务区。如果PN=95h模块存在,说明这个硬盘不具有备用服务区。有一个特殊的情况,应当注意,当你在一个具有备用服务区的N40P系列驱动器上,加载了一个创建自没有备用服务区硬盘的LDR以后,或许在模块列表中会出现PN=95h模块,一旦打开它,你会发现PN=95h模块是空的。这样的盘,是具有备用服务区的。而CALYPSO/SABRE/FALCON系列全部具有备用服务区。
  备用服务区是厂商用来在生产过程中创建主服务区,以及隐藏它的缺陷。在备用服务区中包含了该驱动器的部分原始模块,它的结构与主服务区类似,但是功能与模块内容是有区别的。
  主服务区的FW,叫做Program A,人们习惯称它为A区;备用服务区的FW,叫做ProgramC,也就是大家说的C区。N40P系列备用服务区的FW版本类似于NCRxxxx0,CALYPSO系列备用服务区的FW版本类似于YCRxxxx0,只有FALCON系列特殊,它的FW版本类似于RDMxxx0的样子。[因此,FALCON系列的备用服务区也被称为D区。]
  在一个具有备用服务区的驱动器引导过程中,主轴启转后,BOOT-ROM首先从主服务区读取模块中的微代码以及转译器,并检查它们的结构状态,如果它们的结构无效或者无法读取,BOOT-ROM便转向装载备用固件区。也就是说,当主服务区的代码模块或者转译器异常,BOOT-ROM便转向装载备用固件区。
  使一个具有备用服务区的硬盘驱动器转向备用服务区引导,有两个办法:
  1、在安全模式下,使用专用的ProgramC_LDR引导驱动器到备用固件区。
   [此方法适用于无法从主服务区正常引导的驱动器]
  2、•在“Utility status”对话框中,勾选“Write all module copies”。
     •在module viewing (Ctrl-Alt-2)中打开PN=18h模块,并修改模块头的两个字节为任意字符,回写。
   [此方法适用于可从主服务区完整引导的驱动器]
二、备用服务区的功能
  在原理部分曾提到“备用服务区是厂商用来在生产过程中创建主服务区,以及隐藏它的缺陷。”,事实上,备用服务区的使用贯穿了驱动器生产的整个环节,当驱动器的HDA装配完毕,首先要写Sevo标志,以及我们刚刚提到的备用服务区。再封闭Sevo Window,装配PCB。这个环节中装配的PCB并不是销售时我们见到的样子,它是带有AI接口的工程PCB,上面有各TP以及串行通讯口。这个AI接口是通过一条专用电缆与工厂的I/O盒相连,I/O盒是一个通用设备,它可以从工厂的控制主机中Download某系列驱动器的控制代码,然后脱机使用。当工程PCB接驳好带有相应控制代码的I/O盒,就可以启动备用服务区的SelfTest程序了。
  SelfTest程序首先应用工厂计算得到的SA缺省适配,按照物理地址检查预设的主服务区范围,排除缺陷,并将完好扇区编目,生成主服务区的转译器,并缓冲在备用服务区的Swap0区域。对于FALCON系列驱动器,还要检查另外一个预设服务区,我们把它叫做“ProgramB”,也就是B区,生成B区的转译器,并缓冲在备用固件区的Swap1区域。之后,应用编目后的UBA地址对主服务区做适配调整,再根据调整的结果,继续编目一定数量的扇区作为SA保留扇区,但这些保留扇区不做缺陷检测。
  生成了SA区的转译器以后,SelfTest程序试图将两个特定扇区填充数据,并标记为缺陷。如果成功,开始根据备用固件区的模块生成主服务区模块。对新生成模块进行校验。校验结束,对主服务区模块进行标记,标记当前进程,并暂停SelfTest,等待I/O盒的键盘交互式返回PN=48h中一些数据,PN=48h的数据填充完毕,将继续进行SelfTest进程。
  接下来的进程,就是我们在主服务区可以看到的那些进程了。
  如果SelfTest进程因为媒质缺陷过多,会返回0006进程,等待I/O盒的键盘返回下一级型号所需的PN=48h中的一些数据……
  这就是在工厂中备用服务区的功能。
  在现有条件下,多数朋友可能无法获得I/O盒以及控制代码。但是,备用固件区中的大部分功能仍然是可以利用的,因为最后一次工厂测试时使用的控制代码,被保存在备用固件区的SelfTest模块组中了。我们通过打开、注销、更改个别流程,可以基本实现工厂级别的SelfTest.

该用户从未签到

0

主题

6

回帖

60

积分

[INTOHARD]工兵

Rank: 1

积分
60
发表于 2006-9-23 16:18:44 | 显示全部楼层
好贴,长见识了,谢谢

不顶顶不住咱做技术的, 顶

该用户从未签到

3

主题

32

回帖

30

积分

[INTOHARD]工兵

Rank: 1

积分
30
发表于 2006-9-23 17:38:21 | 显示全部楼层
虽然不怎么看的懂,还是顶下,好!

该用户从未签到

5

主题

38

回帖

29

积分

[INTOHARD]工兵

Rank: 1

积分
29
发表于 2006-9-23 22:57:13 | 显示全部楼层
好贴...不顶对不起自己...

该用户从未签到

41

主题

164

回帖

1万

积分

[INTOHARD]团长

Rank: 8Rank: 8

积分
13118
发表于 2006-9-28 11:42:04 | 显示全部楼层
的也是不错,支持,很有研究价值!!!!
  • TA的每日心情
    奋斗
    2015-11-14 10:48
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    36

    主题

    218

    回帖

    1万

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    14374
    发表于 2006-9-28 15:18:45 | 显示全部楼层
    此贴不错,难能可贵.千年好贴,版主加精才是.

    该用户从未签到

    18

    主题

    156

    回帖

    877

    积分

    [INTOHARD]连长

    Rank: 4

    积分
    877
    发表于 2006-10-9 23:05:03 | 显示全部楼层
    转别人的,还是说明一下吧,不知道还以为是原创

    该用户从未签到

    2

    主题

    3

    回帖

    84

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    84
    发表于 2006-10-12 23:22:45 | 显示全部楼层
    虽然不怎么看的懂,还是顶下,好!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表