希捷硬盤固件結構及模塊,Parallel flash固件結構
希捷硬盤的固件數據分布在以下幾個部位:
●電路板處理器芯片中的base ROM;
●外部ROM,有些電路板沒有外部ROM,那么它的角色將由在處理器芯片內部的掩膜ROM來完成;
●盤面的負磁道(即固件區)上。
希捷硬盤固件的一個顯著特點,就是在固件區中,沒有一個明確的模塊表來調控硬盤的運行。所以我們不能使用“Module”即“模塊”的概念來理解和分析希捷硬盤固件,而使的是磁道、磁道組、扇區、扇區組。對于這些具有特定固件功能的區域,我們通常又稱之為“Object”即“對象”,而要在硬盤固件區中,定位這些特定對象(Object)的柱面號.就要使用固件區初始的柱面號加上該對象( Object)的磁道索引將其計算出來。在固件區中,柱面號和磁道索引這兩個參數,對于特定對象的尋址而言是缺一不可的。這是因為7200.7以及更新的型號硬盤,其固件區初始柱面號不是一個恒定不變的值,而是可以在硬盤啟動過程中改變的。所以當和備件盤固件區數據進行交換時,僅使用柱面號的概念是行不通的。
Barracuda硬盤可為兩組:一是裝配了并行Parallel Flash的硬盤,包括U5,BarracudaⅡ/III/rv;二是裝配了串行Serial Flash的硬盤,包括Barracuda V,U series 7,7200.7,7200.8,7200.9,7200.10,MomentUS.
裝配Parallel flash的硬盤固件結構
裝配Parallel flash的硬盤的固件由以下幾部分組成:Embedded code、存儲于Parallel Flash ROM中的微代碼、盤片上的固件區對象Object)組。
●Embedded code,硬盤電路板上微處理器ROM中的基礎代碼。
●存儲于Parallel Flash ROM中的微代碼,這些微代碼用于在硬盤啟動時,實施基本操作,并提供終端模式下的基本命令。微代碼內容的不同,其固件版本有所不同,當用~個備件盤的電路板和故障盤的電路板進行置換時,兩者的固件版本和電路板的總體布局要一致,具體的版本號可查看硬盤標釜本標識。
●盤片上的固件區對象( Object)組,例如:-ATA overlay(包含ATA命令的處理代碼)。
-S.M.A.R.T.扇區包含s.M.A.R.T.的Thresholds(閥值)、Val日志。
ues(值)和其他S.M.A.R—HDD ID模板扇區,Stuffo它包括組成硬盤ID的基本信息。它的結構與硬盤ID的筒規范相匹配,實際上,硬盤ID提供的數據塊是基于stuff中的內容構建的。盡管它不完相同(~些字段的值會隨硬盤的狀態而改變)。
_包含硬盤PN號和關于硬盤ID配置信息的扇區。
-包含安全子系統數據的扇區。
-缺陷列表磁道(P-List,A-List)
_包含硬盤用戶數據區區域分配的扇區組。
_包含硬盤運行日志的磁道。
_包含CERT代碼的磁道——作為擴展的終端命令集與Self Test代碼塊,該代碼塊對亍ATA模式下的硬盤操作不是必須的。
_包含CERT表的扇區組——Self Test參數表,該代碼塊對于是必須的。ATA模式下的硬盤操作不
Object)內容可以看到,和邁拓硬盤相比,希捷硬盤固件區中,具有特定固件功能的對(Object),都是以扇區、扇區組、磁道等概念出現的,而不是以模塊的概念出現的.
裝配串行Serial Flash的希捷硬盤固件結構
裝配串行Serial Flash的Barracuda硬盤,其固件層級結構如圖4-1所示。
硬盤啟動調用的Embedded code,其中一部分功能包括從外置或內置串行Serial Flash存儲器中復制Boot Flash code。此代碼~部分用于管理F級終端。一旦Boot Flash code從串行的Flash中復制到RAM中并啟動,它就從某些確定的硬編碼(Hard-code,硬性指定不可更改的編碼)柱面讀取所謂的應用代碼(App code)。應用代碼中的微程序部分,包含用于啟動Main FW所必須的執行代碼,例如,啟動ATA子系統等。
另外,固件區包含以下對象(Object):ATA overlay;
包含ATA命令的處理代碼和s .M.A.R.T.運算)。
_S.M.A.R.T.包含S.M.A.R.T.的Thresholds(閥值)、Values(值)志的扇區。圖4-1固件層級結構
和其他S.M.A.R.T.日志硬盤一硬盤ID扇區,Stuff。它包括構成硬盤ID的基本信息。它的結構與硬盤ID的AIA規范相匹配。實際上,硬盤ID提供的數據塊是基于由stuff的內容構建的。盡管它不完全一樣( 一些字段的值會隨硬盤的狀態而改變)。
包含硬盤PN號和有關硬盤ID配置信息的扇區;
.包含安全子系統數據的扇區;
缺陷列表( P-List,A-List)磁道;
包含硬盤用戶數據區區域分配列表的扇區組;
_包含硬盤運行日志的磁道;
包含CERT代碼的磁道——作為擴展終端命令集和自測試(Self Test)的代碼塊,該狀碼塊對于ATA模式下運行的硬盤操作不是必須的;
_包含CERT表的扇區組——自測試(Self Test)參數表(在ATA模式下運行的硬盤,該功能不是必須的)端上的響應用代碼使用所謂的Eng Rev來識別。Eng Rev是(Ctrl)+(A)命令在終止:輸入命令后,硬盤會輸出一串包含“Eng Rev=.F54”格式的信息。
一個完整的硬盤固件描述是由固件版本和Eng Rev版本累加的。也就是說,如果硬盤的掛件是3.06,并且Eng Rev=.F54,那么硬盤的固件版本將是3.06.F54。(冊4除:在這個案例中 ROM版本也將被指定。例如,檢查以上的硬盤,其版本為s.15。)
當一個硬盤啟動的時候,可以使用終端輸出的ID數據鑒別電路板的兼容性。
舉一個例子來說明這樣一個問題:
Interface task rest
1024kx16 buffer detected
ALPINE-1_Disk S.15 01-16-03 11:51或nterface task rest
1024k×16 buffer detected
AVALANCHE-1_Disk S.30 08-30-02 15:13 rcwood
在這里,用于標明兼容性方面的關鍵字符串,是跟隨在x Disk后面的S.xx以及ROM產生日期后面的單詞。在上面的例子中,它就是S.15和S.30, rcwood(后面的這個單詞有可能會缺席)。這兩個參數是對電路板code及其電子元件變更的一個測定結果。所以為確保兩塊電路板的兼容,這兩個參數(本例中的粗體PCB必須相同Flash ROM兩塊板子是不兼容的。雖然如此,在某些案例中,可以通過重寫PcB板上的Flash ROM內容,來消除電路板之間的不兼容。
如果安裝了一個不兼容的PCB板,硬盤將返回一個錯誤信息,例如:Interface task rest
1024k×16 buffer detected
AVALANCHE-1_Disk S.30 08-30-02 15:13 rcwoodBuzz-Head Mask 0000 - Switch to full int
Spin ReadyApplication code incompatible with serial flash codeF>
不同硬盤,其電路板兼容的本質就是:電路板硬件工作所必需的電路板微代碼應是一致的。這些電路板微代碼包括:
●部件初始化信息及其管理信息,以及主軸電機的控制信息:
●前置放大器初始化所必需的數據。
這些信息存放在主控芯片和(外在的或內置的)Serial Flash的代碼中。此外,電路板微代碼同樣擁有App code(應用代碼,其主要功能引導、啟動盤面的固件),從而使得硬盤能夠在盤片的固件區上找到部分固件記錄。因為各種不同版本的固件是由App code和啟動參數(引導適應性數據,保存的固件區磁道缺陷列表)來啟動的,所以,只要這些基本信息一致,即使固件的版本的標簽不同,但板子仍是兼容的,硬盤將正確初始化。