March 16th, 2020, 10:44
March 16th, 2020, 11:50
April 3rd, 2020, 8:44
April 3rd, 2020, 9:31
April 3rd, 2020, 9:35
April 3rd, 2020, 10:34
April 4th, 2020, 20:55
Analysing ROM.bin ...
Searching for LDSCs and verifying PCMBlocks ...
LDSC LDSC Att PCMBlock RAM size PCMBlk CS
Start ID CS Start - End address RAM / ROM Exp/Act
---------------------------------------------------------------------------
0 5A 40 04 140 - 1ED7 4B688 1D94 1D94 000BAF4E unknown CRC <-------- boot block
20 01 11 11 1ED8 - 5F7C 30080000 c 5500 40A4 69 69 OK
40 02 58 0C 5F7D - 6345 24000000 3C8 3C8 05 05 OK
60 03 01 40 6346 - BFAA FFE00200 5C64 5C64 19 19 OK
80 04 31 01 BFAB - 120F3 0 c 7C40 6148 3F 3F OK
A0 05 9E 01 120F4 - 12518 DFB0 c 4EC 424 F3 F3 OK
C0 06 94 03 12519 - 14AA5 402E0 c 3020 258C 36 36 OK
E0 07 ED 03 14AA6 - 14E7E 602B3400 c 9C0 3D8 D5 D5 OK
100 08 BE 01 14E7F - 2BBC7 383A4A00 c 1EA20 16D48 9A 9A OK
120 09 17 01 2BBC8 - 4E474 38008230 c 2F444 228AC E6 EA BAD <-------- bad checksum
LDSC = PM Loader Config String (32 bytes)
ID = ID byte of LDSC (byte #0)
CS = Checksum byte or word
Att = Attributes
PCMBlk = Program Code Memory Block
Exp = Expected checksum for PCMBLock
Act = Actual checksum for PCMBLock
c = compressed PCMBlock
size = size of decompressed (in RAM) and compressed (in ROM) PCMBlock in bytes
ROYL directory module 0x000B found at 0x7F19A
Active directory flag = 0x01
Identifying SA regions ...
Reg# Reg size Reg loc
----------------------------
0x00 0x0006352E 0x00000000
0x01 0x0006352E 0x000C8A00
0x02 0x0006352E 0x00191400
0x03 0x00000000 0x00000000
0x04 0x00000000 0x00000000
0x05 0x00000000 0x00000000
0x06 0x00000000 0x00000000
0x07 0x00000000 0x00000000
0x08 0x00000000 0x00000000
0x09 0x00000000 0x00000000
Verifying ROYL modules ...
ID Size (bytes) Address Checksum
dir hdr dir hdr
-----------------------------------------------------
0001 N/A 00008000 N/A 00000000 N/A
000A OK 0000004E 00000200 0007E000 00000000 OK
000B OK 00000129 00000200 0007F19A 00000000 OK
020B OK 00000129 00000200 0007D19A 00000000 OK
0030 OK 00000400 OK 0007B000 00000000 OK
0047 FFFF 00000B18 01FFFE00 0007E682 FFFFFD3A BAD
000D OK 00000108 00000200 0007E04E 00000000 OK
004F OK 0000052C 00000600 0007E156 00000000 OK
0181 OK 00000C00 OK 0007B400 00000000 OK
ROYL directory module 0x020B found at 0x7D19A
Active directory flag = 0x02
Identifying SA regions ...
Reg# Reg size Reg loc
----------------------------
0x00 0x000C6A5C 0x00000000
0x01 0x000C6A5C 0x000C8A00
Verifying ROYL modules ...
ID Size (bytes) Address Checksum
dir hdr dir hdr
-----------------------------------------------------
0001 N/A 00008000 N/A 000C591D N/A
000A OK 0000004E 00000200 0007C000 00000000 OK
000B OK 00000129 00000200 0007F19A 00000000 OK
020B OK 00000129 00000200 0007D19A 00000000 OK
0181 OK 00000C00 OK 0007B400 00000000 OK
0030 OK 00000400 OK 0007B000 00000000 OK
0047 OK 00000B18 00180000 0007C682 00000000 OK
000D OK 00000108 00000200 0007C04E 00000000 OK
004F OK 0000052C 00000600 0007C156 00000000 OK
dir - Module ID/Size as reported in directory module (0x20B or 0x0B)
hdr - Module ID/Size as reported in module's header
N/A - Not Applicable
BAD - Module has invalid checksum. This may be due to non-existent module.
ROM modules saved to Flash_00\000Bmods and Flash_00\020Bmods
Active directory is 0x20B
Analysing active 0x0A module ...
Head map checksum (Expected / Actual) = 0x0000 / 0x0000 - OK
Number of heads (physical / in use) = 10/9
Head map #1 = 0x03EF / 0b0000001111101111
Head map #2 = 0x03FF / 0b0000001111111111
DCM = | W | M J 3 D H 2 C
: : : : : : : : : :
: : : : : : : : : unknown
: : : : : : : : top VCM
: : : : : : : ACA
: : : : : : bottom VCM
: : : : : HSA
: : : : media
: : : preamp
: : latch
: base
spindle motor
Analysing active 0x0D module ...
Firmware Version = 01.01A01
World Wide Name = 50014EE059C260F5
Model Number = WDC WD30NMZW-11GX6S1
Serial Number =
Analysing active 0x4F module ...
ROM version = 00020014
Analysing active 0x47 module ...
Preamp values
-----------
0 01300681
1 0132067E
2 012C0681
3 012A0681
4 0130057A
5 0132067A
6 01300781
7 01320681
8 012E0681
9 02300570
Microjogs
-------
0 0000
1 0000
2 0000
3 0000
4 0000
5 0000
6 0000
7 0000
8 0000
9 0000
Head/Media DCM = 3J
April 5th, 2020, 4:52
April 6th, 2020, 6:56
April 6th, 2020, 6:58
pepe wrote:i can't really see anything wrong with that rom, but i did not check it very thoroughly, just ran through it and it looks like ok.
As i said, it is not very probable it developed 2 different issues simultaneously.
Btw, do you really want to recover this drive through usb?
pepe
April 6th, 2020, 7:21
fzabkar wrote:The last ROM module has a bad checksum. The boot block may also be bad, but I don't know how to check it.
- Code:
Analysing ROM.bin ...
Searching for LDSCs and verifying PCMBlocks ...
LDSC LDSC Att PCMBlock RAM size PCMBlk CS
Start ID CS Start - End address RAM / ROM Exp/Act
---------------------------------------------------------------------------
0 5A 40 04 140 - 1ED7 4B688 1D94 1D94 000BAF4E unknown CRC <-------- boot block
20 01 11 11 1ED8 - 5F7C 30080000 c 5500 40A4 69 69 OK
40 02 58 0C 5F7D - 6345 24000000 3C8 3C8 05 05 OK
60 03 01 40 6346 - BFAA FFE00200 5C64 5C64 19 19 OK
80 04 31 01 BFAB - 120F3 0 c 7C40 6148 3F 3F OK
A0 05 9E 01 120F4 - 12518 DFB0 c 4EC 424 F3 F3 OK
C0 06 94 03 12519 - 14AA5 402E0 c 3020 258C 36 36 OK
E0 07 ED 03 14AA6 - 14E7E 602B3400 c 9C0 3D8 D5 D5 OK
100 08 BE 01 14E7F - 2BBC7 383A4A00 c 1EA20 16D48 9A 9A OK
120 09 17 01 2BBC8 - 4E474 38008230 c 2F444 228AC E6 EA BAD <-------- bad checksum
LDSC = PM Loader Config String (32 bytes)
ID = ID byte of LDSC (byte #0)
CS = Checksum byte or word
Att = Attributes
PCMBlk = Program Code Memory Block
Exp = Expected checksum for PCMBLock
Act = Actual checksum for PCMBLock
c = compressed PCMBlock
size = size of decompressed (in RAM) and compressed (in ROM) PCMBlock in bytes
ROYL directory module 0x000B found at 0x7F19A
Active directory flag = 0x01
Identifying SA regions ...
Reg# Reg size Reg loc
----------------------------
0x00 0x0006352E 0x00000000
0x01 0x0006352E 0x000C8A00
0x02 0x0006352E 0x00191400
0x03 0x00000000 0x00000000
0x04 0x00000000 0x00000000
0x05 0x00000000 0x00000000
0x06 0x00000000 0x00000000
0x07 0x00000000 0x00000000
0x08 0x00000000 0x00000000
0x09 0x00000000 0x00000000
Verifying ROYL modules ...
ID Size (bytes) Address Checksum
dir hdr dir hdr
-----------------------------------------------------
0001 N/A 00008000 N/A 00000000 N/A
000A OK 0000004E 00000200 0007E000 00000000 OK
000B OK 00000129 00000200 0007F19A 00000000 OK
020B OK 00000129 00000200 0007D19A 00000000 OK
0030 OK 00000400 OK 0007B000 00000000 OK
0047 FFFF 00000B18 01FFFE00 0007E682 FFFFFD3A BAD
000D OK 00000108 00000200 0007E04E 00000000 OK
004F OK 0000052C 00000600 0007E156 00000000 OK
0181 OK 00000C00 OK 0007B400 00000000 OK
ROYL directory module 0x020B found at 0x7D19A
Active directory flag = 0x02
Identifying SA regions ...
Reg# Reg size Reg loc
----------------------------
0x00 0x000C6A5C 0x00000000
0x01 0x000C6A5C 0x000C8A00
Verifying ROYL modules ...
ID Size (bytes) Address Checksum
dir hdr dir hdr
-----------------------------------------------------
0001 N/A 00008000 N/A 000C591D N/A
000A OK 0000004E 00000200 0007C000 00000000 OK
000B OK 00000129 00000200 0007F19A 00000000 OK
020B OK 00000129 00000200 0007D19A 00000000 OK
0181 OK 00000C00 OK 0007B400 00000000 OK
0030 OK 00000400 OK 0007B000 00000000 OK
0047 OK 00000B18 00180000 0007C682 00000000 OK
000D OK 00000108 00000200 0007C04E 00000000 OK
004F OK 0000052C 00000600 0007C156 00000000 OK
dir - Module ID/Size as reported in directory module (0x20B or 0x0B)
hdr - Module ID/Size as reported in module's header
N/A - Not Applicable
BAD - Module has invalid checksum. This may be due to non-existent module.
ROM modules saved to Flash_00\000Bmods and Flash_00\020Bmods
Active directory is 0x20B
Analysing active 0x0A module ...
Head map checksum (Expected / Actual) = 0x0000 / 0x0000 - OK
Number of heads (physical / in use) = 10/9
Head map #1 = 0x03EF / 0b0000001111101111
Head map #2 = 0x03FF / 0b0000001111111111
DCM = | W | M J 3 D H 2 C
: : : : : : : : : :
: : : : : : : : : unknown
: : : : : : : : top VCM
: : : : : : : ACA
: : : : : : bottom VCM
: : : : : HSA
: : : : media
: : : preamp
: : latch
: base
spindle motor
Analysing active 0x0D module ...
Firmware Version = 01.01A01
World Wide Name = 50014EE059C260F5
Model Number = WDC WD30NMZW-11GX6S1
Serial Number =
Analysing active 0x4F module ...
ROM version = 00020014
Analysing active 0x47 module ...
Preamp values
-----------
0 01300681
1 0132067E
2 012C0681
3 012A0681
4 0130057A
5 0132067A
6 01300781
7 01320681
8 012E0681
9 02300570
Microjogs
-------
0 0000
1 0000
2 0000
3 0000
4 0000
5 0000
6 0000
7 0000
8 0000
9 0000
Head/Media DCM = 3J
April 6th, 2020, 8:20
April 6th, 2020, 8:26
April 6th, 2020, 11:21
April 7th, 2020, 0:26
pepe wrote:Thanks Franc for that log, it made me check the dump a bit more thoroughly.
the boot loader segment seems to be damaged, but i could not find this version, so could not repair it.
the other problem with mod47 seems not be a real one coz drive uses the other dir where 47 is valid.
pepe
April 7th, 2020, 4:35
Can you tell us the algorithm for the boot loader checksum/CRC?
April 7th, 2020, 5:53
pepe wrote:there are 2 segments with bad cs, the first one and the last one, the adaptive data is ok. So it would be sufficient to copy rom code from same version 0-4e474.
The real struggle would start afterwards i think (damaged heads and possibly surfaces).
April 7th, 2020, 13:21
jono-ats wrote:I've discovered that a ROM with the same FW version might work well enough to read LBAs on the Spyglass and Pebble Beach models.
My guess is that this may be true of other WD SMR drives as well.
Worth a try . . .
April 7th, 2020, 15:10
April 7th, 2020, 17:46
pepe wrote:Hello,Can you tell us the algorithm for the boot loader checksum/CRC?
it is a simple byte sum added in a 32bit accumulator.
Powered by phpBB © phpBB Group.