See ...
Analysis of Seagate F3 ROM:
http://www.hddoracle.com/viewtopic.php?f=59&t=2173Here are the results of my checksum test:
Code:
02-WHOLE.BIN: CRC16 = 0x0000
02-USED.BIN: CRC16 = 0x0773
04-WHOLE.BIN: CRC16 = 0x0000
03-WHOLE.BIN: CRC16 = 0x0000
06-WHOLE.BIN: CRC16 = 0x0000
0B-WHOLE.BIN: CRC16 = 0x0000
0B-USED.BIN: CRC16 = 0x0000
05-WHOLE.BIN: CRC16 = 0x0000
0E-WHOLE.BIN: CRC16 = 0xA670
02-USED2.BIN: CRC16 = 0x4BE3
Code:
02-WHOLE BIN 398,904 10-08-17 5:54a 02-whole.bin
02-USED BIN 395,848 10-08-17 5:54a 02-used.bin
04-WHOLE BIN 528 10-08-17 5:55a 04-whole.bin
03-WHOLE BIN 77,824 10-08-17 5:58a 03-whole.bin
06-WHOLE BIN 33,808 10-08-17 5:58a 06-whole.bin
0B-WHOLE BIN 4,352 10-08-17 6:00a 0B-whole.bin
0B-USED BIN 4,120 10-08-17 6:01a 0B-used.bin
05-WHOLE BIN 8,216 10-08-17 6:02a 05-whole.bin
0E-WHOLE BIN 656 10-08-17 6:02a 0E-whole.bin
02-USED2 BIN 395,792 10-08-17 6:09a 02-used2.bin
The only segments that are questionable are 02 (CFW - controller firmware) and 0E (IAP - Interface Adaptive Parameters). The "whole-space" checksum for CFW is 0 but its used-space checksum is non-zero.
Note that, when calculating the checksum for segment 02, we need to include the directory (offsets 0 - 0x37). I tried cutting off the directory (02-USED2.BIN), but the used-space checksum remained non-zero. Either there is a genuine checksum error, or a misunderstanding on my part. In any case the "bad" used-space checksum appears to be benign, ie it is ignored by the drive.
The IAP segment appears to be in an uninitialised state. I suspect that its checksum would be recalculated by the drive when a particular flag (eg PUIS) is set.