This model has a new architecture. The CPs, assuming that's what they are still called, appear to begin at offset 0x100000.
Code:
Offset(h) 00 04 08 0C
00100000 53545550 00000000 00000000 10000000 STUP............
00100010 00000000 00000000 00000000 00000000 ................
00100020 9DABAAAF FFFFFFFF FFFFFFFF FFFFFFFF .«ª¯ÿÿÿÿÿÿÿÿÿÿÿÿ
00100030 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
00100040 5345524E 00000000 00000000 0C000000 SERN............
00100050 5A393430 4130304A 46393447 C01715F0 Z940A00JF94GÀ..ð
00100060 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
00100070 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
00100080 57574E20 00000000 00000000 08000000 WWN ............
00100090 50000399 D8C89AE5 79DF1361 FFFFFFFF P..™ØÈšåyß.aÿÿÿÿ
001000A0 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
They appear to have a 16-byte header, a body of data, and a 32-bit checksum.
This appears to be the serial number:
Code:
Offset(h) 00 04 08 0C
00100040 5345524E 00000000 00000000 0C000000 SERN............
^^^^^^^^ ^^^^^^^^
name size
00100050 5A393430 4130304A 46393447 C01715F0 Z940A00JF94G....
^^^^^^^^^^^^^^^^^^^^^^^^^^ ========
data checksum
The size dword reflects the size of the data, not the whole CP.
The checksum is calculated so that the sum of all 32-bit little-endian dwords, including the checksum dword, is 0x00000000.
I still have an ongoing medical emergency (not mine), so it will take me some time to write a new tool to extract and verify the CPs.
That said, doesn't the fact that the drive spins up suggest that the ROM is OK? Surely if the ROM was bad the firmware would produce a no-spin symptom?
The area from 0 to 0xFFFF appears to be reserved for a flash loader. The checksum dword is calculated so that the sum of all 32-bit little-endian dwords, including the checksum dword, is 0x00000000.
Code:
Offset(h) 00 04 08 0C
00000000 5647525F 464C4452 00000000 97000000 VGR_FLDR........
00000010 08190021 00000000 00000000 00000000
^^^^
size of loader excluding checksum dword = 0x1908
........
000000E0 38D09FE5 1EFF2FE1 436F7079 72696768 8Пå.ÿ/áCopyrigh
000000F0 74284329 546F7368 69626120 436F7270 t(C)Toshiba Corp
00000100 6F726174 696F6E20 32303135 00000000 oration 2015....
........
00001780 D0000098 0050049E 0A5B4546 5553455D Ð..˜.P.ž.[EFUSE]
00001790 20415653 20566572 73696F6E 20657272 AVS Version err
000017A0 6F722E20 25303858 00000000 0A5B4546 or. %08X.....[EF
000017B0 5553455D 20534153 2D534154 41206469 USE] SAS-SATA di
000017C0 7374696E 6374696F 6E206572 726F722E stinction error.
000017D0 20253038 58000000 0A5B4546 5553455D %08X....[EFUSE]
000017E0 20415653 20636865 636B7375 6D206572 AVS checksum er
000017F0 726F722E 20253038 58000000 0A5B4546 ror. %08X....[EF
00001800 5553455D 20444443 20657272 6F722E20 USE] DDC error.
00001810 25303858 00000000 0A5B4546 5553455D %08X.....[EFUSE]
00001820 20415653 2056616C 75652065 72726F72 AVS Value error
00001830 2E202530 38580000 234910B5 04460868 . %08X..#I.µ.F.h
........
00001900 23F10CC1 94A42880 47EDCE48 00000000
^^^^^^^^
checksum dword
This SEQL area also has a checksum of 0x00000000.
Code:
Offset(h) 00 04 08 0C
00010000 5345514C 72C49943 00000000 0008F46C SEQL............
^^^^^^^^
checksum dword ?
00010010 10000000 8000FFFF 00000000 010D010D
........
000110D0 010CFF04 0008F465 0C360000 00000000
000110E0 010D6304 0008F46B 0C360000 00000000
000110F0 00000000 00000000 00000000 00000000
I don't know what this is:
Code:
Offset(h) 00 04 08 0C
00012F00 00000000 00000000 00BFFE00 00064296
This section appears to identify the firmware in some way. It is absent in the patient.
Code:
Offset(h) 00 04 08 0C
0001FF00 464D434C 2020414C 46432020 20202020 FMCL ALFC
0001FF10 71612020 44455432 2D320D0A 436F7079 qa DET2-2..Copy
0001FF20 72696768 74284329 546F7368 69626120 right(C)Toshiba
0001FF30 436F7270 6F726174 696F6E20 32303137 Corporation 2017
0001FF40 2E30332E 31300D0A 45462F46 452F3045 .03.10..EF/FE/0E
0001FF50 2020533A 30626437 20202020 20202020 S:0bd7
0001FF60 20202020 20202020 20202020 20202020
0001FF70 20202020 20202020 20202020 20202020
0001FF80 20202020 20202020 20202020 20202020
0001FF90 20202020 20202020 20202020 20202020
0001FFA0 20202020 20202020 20202020 20202020
0001FFB0 20202020 20202020 20202020 20202020
0001FFC0 20202020 20202020 20202020 20202020
0001FFD0 20202020 20202020 20202020 20202020
0001FFE0 20202020 20202020 200D0A1A 00000000 .......
0001FFF0 00100000 E0C70A00 EFFE0E00 94C60A00 ....àÇ..ïþ..”Æ..
This is the main code section. It also has a checksum of 0x00000000.
Code:
Offset(h) 00 04 08 0C
00020000 DC770700 43010000 00240450 1100200E Üw..C....$.P.. .
00020010 30363031 A4250450 31383235 30363232 0601¤%.P18250622
00020020 00141000 04000100 069A0000 B0040E00
00020030 00000000 00000000 E82A0300 120002F1
........
000CFFF0 00000000 00000000 00000000 00000000 ................
I haven't worked out what these are:
Code:
Offset(h) 00 04 08 0C
000E0000 53434844 BC30ADBC 01000200 00000D01 SCHD¼0.¼........
000E0010 4D473037 00000000 53333544 43000000 MG07....S35DC...
........
000E7FF0 00000000 00000000 00000000 00000000
Code:
Offset(h) 00 04 08 0C
000E8000 B80BB80B B0040000 00000000 630A0014 ¸.¸.°.......c...
000E8010 46000000 00000000 09143075 F401503C F.........0uô.P<
Code:
Offset(h) 00 04 08 0C
000E8100 464D4D47 303706E0 00000000 00000000 FMMG07.à........
000E8110 00000808 A2DB1600 4A563380 280EE3FF ....¢Û..JV3€(.ãÿ
........
000EFFF0 00000000 00000000 00000000 00000000
Code:
Offset(h) 00 04 08 0C
000FBFF0 FFFFFFFF FFFFFFFF 504F4544 01000000 ÿÿÿÿÿÿÿÿPOED....
000FC000 574C4644 01000000 5A820000 02000000 WLFD....Z‚......
........
000FCFE0 00000000 00000000 00000000 00000000
Code:
Offset(h) 00 04 08 0C
000FCFF0 574C4644 01000000 5A820000 02000000 WLFD....Z‚......
000FD000 574C4644 01000000 59820000 01000000 WLFD....Y‚......
000FD010 0000037C 4850574C 01068806 006488F2 ...|HPWL..ˆ..dˆò
........
000FDFE0 00000000 00000000 00000000 00000000
Code:
Offset(h) 00 04 08 0C
000FDFF0 574C4644 01000000 59820000 01000000 WLFD....Y‚......
000FE000 0B824404 38240100 8D6B0A00 69943202
Code:
Offset(h) 00 04 08 0C
000FF000 434C4E54 00000021 00000000 FFFFFFFF CLNT............
These two sections have a checksum of 0x00000000.
Code:
Offset(h) 00 04 08 0C
000FF010 4D504348 00000008 00000000 B3AFBCAF MPCH............
======== ^^^^^^^^
size including checksum dword checksum dword
Code:
Offset(h) 00 04 08 0C
000FF020 4D532020 00000608 4D532020 08000000 MS ....MS ....
========
size including checksum dword
000FF030 00000000 000002D8 00000075 05000000 .......Ø...u....
........
000FF620 00000000 00000000 43010000 70ABD9D7
^^^^^^^^
checksum dword