Giải thích module ổ cứng WD

MR Nguyễn
Bình luận: 0Lượt xem: 711

MR Nguyễn

New Member
17499004_1935799533315895_2002571361235168490_n.jpg
One, WD module head resolution (common to all modules)
WD Marvell hard disks (except Hawk2 and before), all modules are
The beginning of "524F594C (corresponding character:ROYL)".
data analysis:
0x00 ~ 0x03: Module Tag [4]
0x04 ~ 0x05: Start Level [2]
0x06 ~ 0x07: Valid data address [2]
0x08 ~ 0x09: Module Name (ID) [2]
0x0A ~ 0x0B: Module Size [2]
0x0C ~ 0x0F: Module Check Code [4]
0x10 ~ 0x17: Module version information [8]

Second, ROM
1. ROM structure, every 20 bytes is a small segment, each segment has a check code
2. ROM directory, 0B/20B module: (0B and 20B represent ROM module list)
data analysis:
Valid data address: *[0x06] = 0x1e
(0x1e - 3) : 0B, 20B activation flags
0x1e ~ 0x1e: Number of entries [1]
0x1f ~ (0x1f + *[0x1f]): ROM module list first entry [*[0x1f]]
0x1f ~ (0x1f + *[0x1e] × *[0x1f] -1): {ROM module directory list} [*[0x1e] × *[0x1f]]

ROM module list entry resolution:
Entry length: [1]
Number of copies: [1]
Module ID: [2]
Module size: [2]
Unknown meaning: [4]
Copy0 address: [4]
Copy1 address: [4]
List end address: 0x1f + *[0x1e] × *[0x1f]
(list end address + 1) ~ (list end address + 1): number of magnetic heads
List End Address + 0x06: Header Service Area Address Allocation Information List

3. 0A module, head bitmap module:
data analysis:
Valid data address: *[0x06] = 0x1e
0x1e ~ 0x1e: Bitmap data length [1]
0x1f ~ 0x1f: Header Data Bytes [1]
0x20 ~ 0x20: Configuration flags, a value of 0 represents the default configuration, non-zero means the use of the current configuration [1]
0x21 ~ 0x21: Disk Holder Number [1]
0x22 ~ 0x22: Number of heads in use [1]
0x23 ~ 0x23: head bitmap in use [1]
0x24 ~ 0x24: Disk head bitmap [1]
:
0x2c ~ 0x2d: Verification of head bitmap data [2]

4. 30 modules, service area compiler module
data analysis:
0x28 ~ 0x28: Total number of defect entries |
0x35 ~ 0x3b: Total number of defect entries | -> 8 offset positions, corresponding to 8 heads
0x3c ~ (0x3c + *[0x28] × 8) : list of defect entries [*[0x28] × 8]
Defect list entry resolution:
Cumulative number of defects: [4]
Defect start address: [4]

5. 47 module, SA adapter module
There are three main configuration information: servo parameters, data adaptation parameters, preamplifier parameters

6. 4F module, microcode version information module
The main purpose is to check if the microcode version matches the ROM

Third, the important module
1. 01 module, module directory list
data analysis:
General header resolution.
Valid data address: *[0x06] = 0x30
0x30 ~ 0x31: Number of entries [2]
0x32 ~ (0x32 + *[0x32]): ROM Module List First Entry [*[0x32]]
0x32 ~ (0x32 + number of entries × entry length - 1): {ROM module directory list} [*[0x1e] × *[0x1f]]
Module list entry resolution:
Entry length: [1]
The length of the entry is usually 0x12
Number of copies: [1]
Module ID: [2]
Module size: [2]
Unknown meaning: [4]
Copy0 address: [4]
Copy1 address: [4]

2. 35 module
data analysis:
General header resolution.
Valid data address: *[0x06] = 0x30
0x30 ~ 0x33: Number of entries [4]
0x34: Service Area Defect List
Defect list entry resolution:
Defective track [1]
Two bytes reserved [2]
Defective head [1]
Defect start sector [2]
Defect end sector [2]
35 turns 30 (CHS to ABA):
Head * Sacyl * SPT + (SaCyl - Cyl) * SPT +Secoff = ABA
 

Bạn hãy đăng nhập hoặc đăng ký để phản hồi tại đây nhé.

Bên trên