固件区的模块

[复制链接]
  • TA的每日心情
    开心
    2023-12-15 09:13
  • 签到天数: 55 天

    [LV.5]六品通判

    1200

    主题

    1966

    回帖

    13万

    积分

    Administrator

    分子与原子计算公式

    Rank: 9Rank: 9Rank: 9

    积分
    132050

    终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

    QQ
    发表于 2007-1-26 11:43:57 | 显示全部楼层 |阅读模式
    MAXTOR 硬盘中的模块不包括模块名,尽管某些模块确实有名字,它们位于模块的头部。如果不读取模块的内容,就无法获得模块的名字。Maxtor不同系列的硬盘可以使用位置码来标识模块——称为ID或PN。<br><br>
          固件区的数据结构位于<图3>中。最顶层是硬盘的物理区域——此区域是独立的,位密度也是独立的。磁头通过UBA寻址来寻找活动固件区。在多磁头的硬盘中只有一个磁头固件区为活动固件区——硬盘运转时使用的固件区。活动固件区有模块组组成,而每个模块组都有备份。向固件区进行写入时会写入模块组的所有备份,因此不可能利用模块备份来修复写入操作时造成的模块损坏——因为他们也同时损坏了。在“模块列表”(见图3)模块按照功能进行分类:“数据模块”,“微代码模块”,和“技术模块”。<br>
       “微代码模块”用于硬盘读取操作和写入操作,如果它们有故障就会导致短时的写入失败。
       “技术模块”是在工厂的生产的过程中使用,在硬盘的一般运转过程中不会被调用。<br><br>
    图<br><br>

    表1为数据模块列表,模块根据UBA地址分组。<br>
    表2为微代码模块。<br>
    第一类为控制用户写入的微代码;第二类为生产过程中使用的程序——但是不是所有的硬盘上都有。<br>
    表3为基数模块。<br><br>

    PC3000可以以列表的形式显示模块的名称。  <br><br>
    表1  Maxtor 硬盘的固件区模块<br>
    <table border="1" cellpadding="0" cellspacing="0" bordercolor="#D8D8D8">
      <tr>
        <td width="127" valign="top"><p align="center">位置码( PN 码), 16 进制 </p></td>
        <td width="300" valign="top"><p align="center">模块说明 </p></td>
        <td width="141" valign="top"><p align="center">重要性 </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">37 </p></td>
        <td width="300" valign="top"><p align="center">U_LIST ,固件区译码表 </p></td>
        <td width="141" valign="top"><p align="center">Ad </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">1F </p></td>
        <td width="300" valign="top"><p align="center">DISK ,硬盘信息 </p></td>
        <td width="141" valign="top"><p align="center">B </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">78 </p></td>
        <td width="300" valign="top"><p align="center">RZTBL , zone 表(译码表的组成部分) </p></td>
        <td width="141" valign="top"><p align="center">Ad </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">18 </p></td>
        <td width="300" valign="top"><p align="center">AT_PDL ( P-List ,译码表的组成部分) </p></td>
        <td width="141" valign="top"><p align="center">Ad </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">21 </p></td>
        <td width="300" valign="top"><p align="center">RCT ,尚在研究中 </p></td>
        <td width="141" valign="top"><p align="center">As </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">1E </p></td>
        <td width="300" valign="top"><p align="center">SRV ,校准参数 </p></td>
        <td width="141" valign="top"><p align="center">As </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">1A </p></td>
        <td width="300" valign="top"><p align="center">SECU ,安全模块( ATA 密码) </p></td>
        <td width="141" valign="top"><p align="center">C </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">2F </p></td>
        <td width="300" valign="top"><p align="center">S.M.A.R.T. 阈值 </p></td>
        <td width="141" valign="top"><p align="center">C </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">30 </p></td>
        <td width="300" valign="top"><p align="center">S.M.A.R.T. 属性 </p></td>
        <td width="141" valign="top"><p align="center">C </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">63 </p></td>
        <td width="300" valign="top"><p align="center">S.M.A.R.T. 属性 </p></td>
        <td width="141" valign="top"><p align="center">C </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">22 </p></td>
        <td width="300" valign="top"><p align="center">ATAF , ATA 自定义标记 </p></td>
        <td width="141" valign="top"><p align="center">B </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">34 </p></td>
        <td width="300" valign="top"><p align="center">ARREH </p></td>
        <td width="141" valign="top"><p align="center">D </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">48 </p></td>
        <td width="300" valign="top"><p align="center">[ 标签 ] —硬盘的组件数据 </p></td>
        <td width="141" valign="top"><p align="center">D </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">1D </p></td>
        <td width="300" valign="top"><p align="center">DMCS </p></td>
        <td width="141" valign="top"><p align="center">B </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">1B </p></td>
        <td width="300" valign="top"><p align="center">AT_POL(G-List) ,增长的缺陷表 </p></td>
        <td width="141" valign="top"><p align="center">C </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">35 </p></td>
        <td width="300" valign="top"><p align="center">AT_XAL </p></td>
        <td width="141" valign="top"><p align="center">C </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">64 </p></td>
        <td width="300" valign="top"><p align="center">MAXATG </p></td>
        <td width="141" valign="top"><p align="center">D </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">5E </p></td>
        <td width="300" valign="top"><p align="center">EVTLG_00 ,与 G-List 相关联 </p></td>
        <td width="141" valign="top"><p align="center">D </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">70 </p></td>
        <td width="300" valign="top"><p align="center">S.M.A.R.T. 概要日志 </p></td>
        <td width="141" valign="top"><p align="center">C </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">71 </p></td>
        <td width="300" valign="top"><p align="center">S.M.A.R.T. Self-Test 日志 </p></td>
        <td width="141" valign="top"><p align="center">C </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">72 </p></td>
        <td width="300" valign="top"><p align="center">S.M.A.R.T. 生产商信息 </p></td>
        <td width="141" valign="top"><p align="center">C </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">7B </p></td>
        <td width="300" valign="top"><p align="center">FW </p></td>
        <td width="141" valign="top"><p align="center">D </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">95 </p></td>
        <td width="300" valign="top"><p align="center">DISK 副本,仅存在于无备用固件区的硬盘上 </p></td>
        <td width="141" valign="top"><p align="center">B </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">93 </p></td>
        <td width="300" valign="top"><p align="center">FMTI , module with unique zone table </p></td>
        <td width="141" valign="top"><p align="center">Ad </p></td>
      </tr>
      <tr>
        <td width="127" valign="top"><p align="center">A7 </p></td>
        <td width="300" valign="top"><p align="center">AT_POL , G 表的组成部分 </p></td>
        <td width="141" valign="top"><p align="center">With </p></td>
      </tr>
    </table><br><br>
    表2  Maxtor 硬盘固件区的微代码模块<br>
    <table border="1" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC">
      <tr>
        <td width="139" valign="top"><p align="center">位置码( PN 码), </p>
            <p align="center">16 进制 </p></td>
        <td width="276" valign="top"><p align="center">模块说明 </p></td>
        <td width="153" valign="top"><p align="center">重要性 </p></td>
      </tr>
      <tr>
        <td width="139" height="16" valign="top"><p align="center">39 </p></td>
        <td width="276" valign="top"><p align="center">ROM_SA , ROM 的组成部分 </p></td>
        <td width="153" valign="top"><p align="center">B </p></td>
      </tr>
      <tr>
        <td width="139" valign="top"><p align="center">38 </p></td>
        <td width="276" valign="top"><p align="center">OVL_ATA ,程序 Overlay 的第一部分 </p></td>
        <td width="153" valign="top"><p align="center">B </p></td>
      </tr>
      <tr>
        <td width="139" valign="top"><p align="center">4F </p></td>
        <td width="276" valign="top"><p align="center">OVL_TECH ,程序 Overlay 的第二部分 </p></td>
        <td width="153" valign="top"><p align="center">B </p></td>
      </tr>
      <tr>
        <td width="139" valign="top"><p align="center">97 </p></td>
        <td width="276" valign="top"><p align="center">ROM_ST , ROM 的组成部分 </p></td>
        <td width="153" valign="top"><p align="center">E </p></td>
      </tr>
      <tr>
        <td width="139" valign="top"><p align="center">96 </p></td>
        <td width="276" valign="top"><p align="center">OVL_ST1 ,程序 Overlay 的第一部分 </p></td>
        <td width="153" valign="top"><p align="center">E </p></td>
      </tr>
      <tr>
        <td width="139" valign="top"><p align="center">98 </p></td>
        <td width="276" valign="top"><p align="center">OVL_ST2 ,程序 Overlay 的第二部分 </p></td>
        <td width="153" valign="top"><p align="center">E </p></td>
      </tr>
    </table><br><br>
    表3  Maxtor 硬盘固件区的技术模块<br>
    <table border="1" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC">
      <tr>
        <td width="115" valign="top"><p align="center">位置码( PN 码), 16 进制 </p></td>
        <td width="264" valign="top"><p align="center">模块说明 </p></td>
        <td width="189" valign="top"><p align="center">重要性 </p></td>
      </tr>
      <tr>
        <td width="115" valign="top"><p align="center">33 </p></td>
        <td width="264" valign="top"><p align="center">HLUTL&HUSR- 缺陷表 </p></td>
        <td width="189" valign="top"><p align="center">Dd </p></td>
      </tr>
      <tr>
        <td width="115" valign="top"><p align="center">11 </p></td>
        <td width="264" valign="top"><p align="center">MX_ST_CFG1 </p></td>
        <td width="189" valign="top"><p align="center">Dr </p></td>
      </tr>
      <tr>
        <td width="115" valign="top"><p align="center">43 </p></td>
        <td width="264" valign="top"><p align="center">MX_ST_CFG2 </p></td>
        <td width="189" valign="top"><p align="center">Dr </p></td>
      </tr>
      <tr>
        <td width="115" valign="top"><p align="center">0D </p></td>
        <td width="264" valign="top"><p align="center">MX_ST_CFG3 </p></td>
        <td width="189" valign="top"><p align="center">Dr </p></td>
      </tr>
      <tr>
        <td width="115" valign="top"><p align="center">0E </p></td>
        <td width="264" valign="top"><p align="center">MX_ST_SCRIPT </p></td>
        <td width="189" valign="top"><p align="center">Dr </p></td>
      </tr>
      <tr>
        <td width="115" valign="top"><p align="center">7A </p></td>
        <td width="264" valign="top"><p align="center">U_LIST ,古建取译码表的组成部分 </p></td>
        <td width="189" valign="top"><p align="center">D </p></td>
      </tr>
      <tr>
        <td width="115" valign="top"><p align="center">83 </p></td>
        <td width="264" valign="top"><p align="center">硬盘组件的数据 </p></td>
        <td width="189" valign="top"><p align="center">D </p></td>
      </tr>
      <tr>
        <td width="115" valign="top"><p align="center">31 </p></td>
        <td width="264" valign="top"><p align="center">DISK ,硬盘信息的第二部分 </p></td>
        <td width="189" valign="top"><p align="center">D </p></td>
      </tr>
      <tr>
        <td width="115" valign="top"><p align="center">14 </p></td>
        <td width="264" valign="top"><p align="center">STRS </p></td>
        <td width="189" valign="top"><p align="center">D </p></td>
      </tr>
      <tr>
        <td width="115" valign="top"><p align="center">46 </p></td>
        <td width="264" valign="top"><p align="center">OPTI , Self-testing 的参数 </p></td>
        <td width="189" valign="top"><p align="center">Dr </p></td>
      </tr>
      <tr>
        <td width="115" valign="top"><p align="center">47 </p></td>
        <td width="264" valign="top"><p align="center">STRS </p></td>
        <td width="189" valign="top"><p align="center">Dr </p></td>
      </tr>
    </table> <br><br>

    A——在硬盘中此模块是独一无二的:包括自校准参数和译码表。从其它硬盘中拷贝这类模块将导致读写参数丢失和数据丢失(例如拷贝自校准数据模块时);<br>
    B——此类模块时必须的,但是可以使用其它硬盘中的代替。但是有时需要是同型号硬盘和同版本的模块;<br>
    C——此类模块时必须的,但是部分的损坏不会影响硬盘启动。硬盘在特定的情况下可以自动修复模块的内容(可以自动隐藏缺陷);<br>
    D——不会影响硬盘运转。通常为信息模块。Dd——用于生成译码表的源缺陷表。Dr——SelfTest模块。<br><br>

          固件区译码表U_LIST(PN=37h)硬盘根据是否与有此模块来检测“活动的”固件区。此模块有8个副本。不过模块列表中之显示了两个副本。要访问次模块的副本可以使用“Browing of modules”菜单指定UBA范围来读取(见6.2.1.2节)。每个磁头的U_LIST模块都有单独的结构,包含磁头的pig—pen(PN)和此磁头固件区的缺陷表。此模块中含有固件区缺陷数量和缺陷类型的列表。此模块中还指出了P—List模块(PN=18h)使用的扇区的数量。这意味着如果从其它硬盘中拷贝了一个P—List模块,那么它的长度就会不相符,因此就不能发挥正常功能(校验和也无效)。如果固件区缺陷列表中含有缺陷,那么U_LIST就会是独一无二的(从其它硬盘中拷贝一个U_List会使得固件区混乱,从而硬盘也不能正常启动)。如果固件区没有缺陷,那么U_LIST的差别体现在P_List模块的长度上,使用16进制编辑器编辑并重新计算模块的校验和后就可以使用在其他的硬盘上。这项工作的操作方法会在后面讲述。<br><br>
    修复硬盘时对此模块的操作时自动完成的。也就是说,如果硬盘(如果写入失败)不能写如此模块,固件区的缺陷信息和P_List模块的长度信息就会丢失。重新计算译码表后,U_LIST和P_LIST的长度信息就会自动的修正。<br>   <br>
    配置模块DISK(PN=1FH) 此模块中包含磁盘的配置数据:硬盘型号,串号,最大LBA,物理磁头的数量和映射。这里的物理磁头的映射不重要。实际上磁头的映射包含硬盘微代码中,同时是译码表的组成部分。<br><br>
    RZTBL模块(PN=78h) 此模块是译码表的一部分。此模块中的表将硬盘表面分成多个部分。在P_List模块中针对每一个ZONE建立缺陷纪录。RZTBL中指明了磁头的数量,并同时是译码表的组成部分。<br><br>
    AT_PDL模块(PN=18h) 此模块的表中包含有出厂时用户区的缺陷。此模块中的缺陷记录与RZTBL中的数据相关联。<br><br>
    AT_POL模块(PN=1Bh)和副本(PN=A7h) G_List缺陷表中记录的都是硬盘使用过程中出现的缺陷。副本(PN=A7h)只存在于2004年以后生产的N40P和CALYPSO硬盘和SABRE系列硬盘中。 <br> <br>
    FMTI模块(PN=93h) 此模块只用于满容量的硬盘中(第9章的硬盘属系表中指出了何种系列的硬盘时满配置的,何种系列的硬盘不是满配置的)。此模块中包含每个磁头的zone 表和每个zone 的自校准参数。<br><br>
    _RCT_模块(PN=21h) 对此模块结构和功能的研究还在进行当中,不过如果从其它硬盘拷贝了一个此模块,或者次模块损坏不会对硬盘带来灾难性的影响(但是“坏区”的数量会增多)。硬盘在多数情况下会对此模块进行读取和写入操作。此模块在进行Self—Testing 时生成,也就是说,如果此模块丢失,就不能修复此模块。<br><br>
    _SRV_模块(PN=1Eh) 对此模块结构和功能的研究还在进行当中。如果使用其它硬盘上的模块来替代它,将会发生读取故障,并且不能再写入。此模块在工厂测试时根据同级校准生成。
    [ROM_SA]模块(PN=39h) 此模块是硬盘正常运转时载入ROM的程序部分(见图1)。程序1中包含有此模块和模块[OVL  ATA]。<br><br>
    Overlay ATA[OVL  ATA](PN=38h) 此Overlay是硬盘正常运转时最重要的微代码。如果某一Overlay不能读取,那么就不能执行所有的ATA指令,例如SMART指令。Overlay表示程序代码被分段从主存储器中载入主处理器,同一时间只有一个Overlay被载入。<br><br>
    实现技术指令的Overlay[OVL  TECH](PN=4Fh) 此Overlay用于技术(Technological)功能的运行。<br><br>
    微代码切换模块(PN=95h) 硬盘通过检测此模块的第2个字(第4字节和第5字节)来决定启动程序1和程序2。没有备用固件区的Poker/Ardent 硬盘,Boot—Rom 只读取此模块一次,如果此模块损坏,那么硬盘就会忽视它。但是注意拥有备用固件区的N40P硬盘,如果载入没有备用固件区的N40P硬盘的Loader,那么PC3000程序会显示模块95h的模块无效。这表示实际上在磁盘上没有此模块。 <br> <br>
    [ROM_ST](PN=96h),[OVL_ST](PN=97h)和PN=98h  这些模块来自“程序2”。他们的功能取决于硬盘属系和固件区(基本或备用)。<br><br>
    模块AT_XAL(PN=35h) 有时由于某些原因硬盘可以启动,但是不能以LBA方式运转。在老DSP如RIGEL硬盘中,此模块用于将缺陷写入G_List时的临时表。<br><br>
    模块HLUTL&HUSR(PN=33h) 由短的Hlist 组成一组表。首先是16384字节(包括8字节的头部和校验和)的HLUTL,HLUTL为固件区缺陷表。然后是一系列的HUSRxxxx,其中xxxx为数字。每个HUSRxxxx为8192字节,第一个HUSRxxxx具有头部和校验和。总共有多少个HUSRxxxx取决于用户区的缺陷数量。<br><br>
    下面的说明中将使用模块名或位置码(PN)来表示模块。
    <br><br>

    该用户从未签到

    7

    主题

    54

    回帖

    77

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    77
    QQ
    发表于 2007-11-22 21:32:13 | 显示全部楼层
    好文章,一定要支持。

    该用户从未签到

    2

    主题

    69

    回帖

    77

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    77
    发表于 2007-11-25 13:46:18 | 显示全部楼层
    xuexizhong

    该用户从未签到

    132

    主题

    1250

    回帖

    5851

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    5851
    发表于 2008-1-9 21:25:22 | 显示全部楼层
    支持再支持!!!!学习再学习!!!!!
  • TA的每日心情
    开心
    2018-4-7 15:54
  • 签到天数: 1 天

    [LV.1]布衣百姓

    51

    主题

    310

    回帖

    445

    积分

    [INTOHARD]排长

    Rank: 3Rank: 3

    积分
    445
    发表于 2008-1-9 21:42:55 | 显示全部楼层
    好文章!!!!dinging
  • TA的每日心情
    开心
    2014-8-24 22:57
  • 签到天数: 1 天

    [LV.1]布衣百姓

    8

    主题

    676

    回帖

    585

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    585
    发表于 2008-3-26 23:02:52 | 显示全部楼层
    好东东。看明白了不少。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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