OK, no big deal, I hosed the flash chip through the use of fCCCC or vCCCC, whatever.
Now I see what others meant when they said "be prepared to destroy a lot of drives." The two drives that got hosed the same way were a ST920217AS and a ST3120827AS. Both had one flaky head, although in the case of the ST3120827AS I'm more inclined to believe that a scratch spanning the entire surface of one platter is to blame.
OK, I have ponyprog, and the schematic to build the simple two resistor I2C flash programmer. I have the ROM for the ST3120827AS but not the ST920217AS, and will build and flash. From more than 10 hours of research, I have come to the undeniable conclusion that only a physical hardware flash can fix a MASKROM being displayed... it would have been nice if someone had simply said so.
(For later readers, the TTL serial interface to the drive cannot be used with ponyprog: 3.3V vs. 5V. Use a regular 9 pin COM port for ponyprog.
http://www.riccibitti.com/quickdesigns.htm)
I hosed the ST920217AS after trying to disable the last head (T>YE1, T>w, invalid cert code, then the ignorant issuance of fFFFF thinking it would reset the ROM from the reserve tracks).
4096k x 16 buffer detected
PUMA - 1_Disk M-22d 11-11-04 10:47
Buzz - Head Mask FFFF - Switch to full int.
Spin Ready
3.42 01-04-05 12:57
/1
1>r
AutoRd Err 43 at ffffffff.01.
0000AutoRd Err 43 at ffffffff.01.
0000INVALID Cert Disk Code - ROM Resident Revision Required: 3.42
Code - 70 Track 0E9F3.1.000 Sns 000 Rty F7FF.FF.80FF Rtf 1800 LBA 00000000
1>r
AutoRd Err 43 at ffffffff.01.
005bAutoRd Err 43 at ffffffff.01.
0003INVALID Cert Disk Code - ROM Resident Revision Required: 3.42
Code - 70 Track 0E9F3.1.003 Sns 003 Rty F7FF.FF.80FF Rtf 1800 LBA 00000000
1>r
AutoRd Err 43 at ffffffff.01.
0020AutoRd Err 43 at ffffffff.01.
0013INVALID Cert Disk Code - ROM Resident Revision Required: 3.42
Code - 70 Track 0E9F3.1.013 Sns 013 Rty F7FF.FF.80FF Rtf 1800 LBA 00000000
<40 more attempts not shown, but finally persistence pays off>
T>/1
1>r
VALID Cert Disk Code Detected - Revision # .083
1>/T
T>D1,,40
Cert Table loaded
;Log 01 - Health 0000 - HlthDtl 0000 - Cert Rev = .083 - Rom Rev = 3.42.100 - Time = 00:00:10 Log Type = 01
(SN: 4MS0RYKD)
.PW
CERT - Wed Jun 29 23:32:41 2005 Script=1.00 Config=AYS80015-088 Flash=3.42 Cert=G087 PASS
FNC - Thu Jun 30 03:15:42 2005 Script=1.00 Config=AYS80015-088 Flash=3.42 Cert=.083 PASS
;Log 02 - Health 0000 - HlthDtl 0000 - Cert Rev = G087 - Rom Rev = 3.42.095 - Time = 00:54:30 Log Type = 01
Buzz - Head Mask FFFF - Switch to full int.
Spin Ready
Temp Diode 005D
( 47 C )
Zones 0-F, Heads 0-2, adaptives set to defaults
Head Mask FFFF -
Read Bias - Head 0 1 2 3
9 9 9
Head Mask FFFF - Switch to full int.
Spin Ready
Ref Trk Tan Timing Skew (h0 to h0) = 0000 servo clocks.
ID-OD Delta Timing Skew (h0 to h0) = 0000 servo clocks.
Ref Trk Tan Timing Skew (h0 to h1) = 1721 servo clocks.
ID-OD Delta Timing Skew (h0 to h1) = FF1A servo clocks.
Ref Trk Tan Timing Skew (h0 to h2) = 16F5 servo clocks.
ID-OD Delta Timing Skew (h0 to h2) = FF99 servo clocks.
Ref Trk Tan Timing Skew (h0 to h3) = 0000 servo clocks.
ID-OD Delta Timing Skew (h0 to h3) = 0000 servo clocks.
Greycode Index Skew (h0) = 0000 servo sectors.
Greycode Index Skew (h1) = 0002 servo sectors.
Greycode Index Skew (h2) = 00D8 servo sectors.
Greycode Index Skew (h3) = 0000 servo sectors.
Calibrating Physical Track 0 on heads 0 thru 2
Finding Maximum Eccentricity ...
Calibrating Head 1 ...
DAC value = FEB6
no need to post the rest...
Log 6F - Health 0000 - HlthDtl 0000 - Cert Rev = G087 - Rom Rev = 3.42.095 - Time = 00:00:37 Log Type = 01
Not Power Cycling
Power Cycling
Log 4E - Health 0008 - HlthDtl 0007 - Cert Rev = G087 - Rom Rev = 3.42.095 - Time = 00:00:09 Log Type = 01
Log 02 - Health 0000 - HlthDtl 0000 - Time = 00:54:30 Log Type = 01
Log 82 - Health 0000 - HlthDtl 0000 - Time = 00:00:00 Log Type = 01
Log 83 - Health 0000 - HlthDtl 0000 - Time = 00:07:18 Log Type = 01
Log 84 - Health 0000 - HlthDtl 0000 - Time = 00:00:37 Log Type = 01
Log 03 - Health 0000 - HlthDtl 0000 - Time = 00:22:59 Log Type = 01
Log 73 - Health 0000 - HlthDtl 0000 - Time = 00:00:45 Log Type = 01
Log 05 - Health 0000 - HlthDtl 0000 - Time = 00:00:09 Log Type = 01
Log 06 - Health 0000 - HlthDtl 0000 - Time = 00:00:01 Log Type = 01
Log 07 - Health 0000 - HlthDtl 0000 - Time = 00:00:25 Log Type = 01
Log 0F - Health 0000 - HlthDtl 0000 - Time = 00:26:57 Log Type = 01
Log 10 - Health 0000 - HlthDtl 0000 - Time = 00:17:13 Log Type = 01
Log 11 - Health 0000 - HlthDtl 0000 - Time = 00:14:16 Log Type = 01
Log 12 - Health 0000 - HlthDtl 0000 - Time = 00:08:35 Log Type = 01
Log 13 - Health 0000 - HlthDtl 0000 - Time = 00:08:37 Log Type = 01
Log 14 - Health 0000 - HlthDtl 0000 - Time = 00:08:37 Log Type = 01
Log 15 - Health 0000 - HlthDtl 0000 - Time = 00:08:38 Log Type = 01
Log 16 - Health 0000 - HlthDtl 0000 - Time = 00:07:45 Log Type = 01
Log 17 - Health 0000 - HlthDtl 0000 - Time = 00:05:49 Log Type = 01
Log 18 - Health 0000 - HlthDtl 0000 - Time = 00:05:46 Log Type = 01
Log 19 - Health 0000 - HlthDtl 0000 - Time = 00:14:14 Log Type = 01
Log 1A - Health 0000 - HlthDtl 0000 - Time = 00:08:35 Log Type = 01
Log 1B - Health 0000 - HlthDtl 0000 - Time = 00:08:35 Log Type = 01
Log 1C - Health 0000 - HlthDtl 0000 - Time = 00:08:35 Log Type = 01
Log 1D - Health 0000 - HlthDtl 0000 - Time = 00:20:00 Log Type = 01
Log 1E - Health 0000 - HlthDtl 0000 - Time = 00:36:04 Log Type = 01
Log 2A - Health 0000 - HlthDtl 0000 - Time = 00:17:19 Log Type = 01
Log DA - Health 0000 - HlthDtl 0000 - Time = 00:00:06 Log Type = 01
Log DC - Health 0000 - HlthDtl 0000 - Time = 00:00:07 Log Type = 01
Log D6 - Health 0000 - HlthDtl 0000 - Time = 00:00:04 Log Type = 01
Log D7 - Health 0000 - HlthDtl 0000 - Time = 00:00:04 Log Type = 01
Log D8 - Health 0000 - HlthDtl 0000 - Time = 00:00:04 Log Type = 01
Log D9 - Health 0000 - HlthDtl 0000 - Time = 00:00:06 Log Type = 01
Log 56 - Health 0000 - HlthDtl 0000 - Time = 00:29:40 Log Type = 01
Log B0 - Health 0000 - HlthDtl 0000 - Time = 00:00:24 Log Type = 01
Log B1 - Health 0000 - HlthDtl 0000 - Time = 00:00:36 Log Type = 01
Log B2 - Health 0000 - HlthDtl 0000 - Time = 00:00:25 Log Type = 01
Log 0B - Health 0000 - HlthDtl 0000 - Time = 00:00:10 Log Type = 01
Log 7D - Health 0000 - HlthDtl 0000 - Time = 00:00:25 Log Type = 01
Log 58 - Health 0000 - HlthDtl 0000 - Time = 00:03:47 Log Type = 01
Log 08 - Health 0000 - HlthDtl 0000 - Time = 03:37:08 Log Type = 02
Log 0C - Health 0000 - HlthDtl 0000 - Time = 00:49:24 Log Type = 02
Log 0D - Health 0000 - HlthDtl 0000 - Time = 00:00:00 Log Type = 01
Log 40 - Health 0000 - HlthDtl 0000 - Time = 00:43:03 Log Type = 01
Log 31 - Health 0000 - HlthDtl 0000 - Time = 00:30:49 Log Type = 04
Log 32 - Health 0000 - HlthDtl 0000 - Time = 00:14:46 Log Type = 04
Log 33 - Health 0000 - HlthDtl 0000 - Time = 00:00:05 Log Type = 04
Log 34 - Health 0000 - HlthDtl 0000 - Time = 00:00:05 Log Type = 04
Log 36 - Health 0000 - HlthDtl 0000 - Time = 00:00:01 Log Type = 02
Log 37 - Health 0000 - HlthDtl 0000 - Time = 00:00:01 Log Type = 02
Log 26 - Health 0000 - HlthDtl 0000 - Time = 00:17:20 Log Type = 01
Log 3A - Health 0000 - HlthDtl 0000 - Time = 01:40:22 Log Type = 02
Log 0A - Health 0000 - HlthDtl 0000 - Time = 00:03:59 Log Type = 01
Log 8A - Health 0000 - HlthDtl 0000 - Time = 00:01:08 Log Type = 01
Log 3B - Health 0000 - HlthDtl 0000 - Time = 00:00:16 Log Type = 02
Log 3C - Health 0000 - HlthDtl 0000 - Time = 00:00:17 Log Type = 02
Log 3D - Health 0000 - HlthDtl 0000 - Time = 00:00:00 Log Type = 02
Log 3E - Health 0000 - HlthDtl 0000 - Time = 00:00:00 Log Type = 02
Log A9 - Health 0000 - HlthDtl 0000 - Time = 00:00:02 Log Type = 01
Log 3F - Health 0000 - HlthDtl 0000 - Time = 00:00:08 Log Type = 01
Log 09 - Health 0000 - HlthDtl 0000 - Time = 00:07:31 Log Type = 01
Log 20 - Health 0000 - HlthDtl 0000 - Time = 00:11:16 Log Type = 01
Log 77 - Health 0000 - HlthDtl 0000 - Time = 00:02:15 Log Type = 01
Log 43 - Health 0000 - HlthDtl 0000 - Time = 00:23:29 Log Type = 01
Log 27 - Health 0000 - HlthDtl 0000 - Time = 00:06:01 Log Type = 01
Log B3 - Health 0000 - HlthDtl 0000 - Time = 00:00:26 Log Type = 01
Log B4 - Health 0000 - HlthDtl 0000 - Time = 00:00:36 Log Type = 01
Log B5 - Health 0000 - HlthDtl 0000 - Time = 00:00:26 Log Type = 01
Log 51 - Health 0000 - HlthDtl 0000 - Time = 00:08:32 Log Type = 01
Log 48 - Health 0000 - HlthDtl 0000 - Time = 00:48:09 Log Type = 01
Log 41 - Health 0000 - HlthDtl 0000 - Time = 00:04:07 Log Type = 01
Log 49 - Health 0000 - HlthDtl 0000 - Time = 00:44:27 Log Type = 01
Log 4B - Health 0000 - HlthDtl 0000 - Time = 00:08:14 Log Type = 01
Log 4A - Health 0000 - HlthDtl 0000 - Time = 00:00:25 Log Type = 01
Log 4D - Health 0000 - HlthDtl 0000 - Time = 00:00:27 Log Type = 01
Log 39 - Health 0000 - HlthDtl 0000 - Time = 00:00:00 Log Type = 01
Log 22 - Health 0008 - HlthDtl 0007 - Time = 00:00:26 Log Type = 01
Log 61 - Health 0000 - HlthDtl 0000 - Time = 00:00:00 Log Type = 02
Log 28 - Health 0000 - HlthDtl 0000 - Time = 00:00:00 Log Type = 01
Log 62 - Health 0000 - HlthDtl 0000 - Time = 00:00:00 Log Type = 02
Log 29 - Health 0000 - HlthDtl 0000 - Time = 00:00:00 Log Type = 01
Log 63 - Health 0000 - HlthDtl 0000 - Time = 00:00:00 Log Type = 02
Log 59 - Health 0000 - HlthDtl 0000 - Time = 00:00:00 Log Type = 01
Log B6 - Health 0000 - HlthDtl 0000 - Time = 00:00:26 Log Type = 01
Log B7 - Health 0000 - HlthDtl 0000 - Time = 00:00:36 Log Type = 01
Log B8 - Health 0000 - HlthDtl 0000 - Time = 00:00:26 Log Type = 01
Log 6F - Health 0000 - HlthDtl 0000 - Time = 00:00:37 Log Type = 01
Total Cert Time = 16:36:03
T>
Thought it might have fixed it but I fire up MHDD and the same result, one bad head or bad track. So I tried to disable the head and foolishly tried fCCCC and adios amigo into MASKROM land.
I'm not here to compete. I visit the dumpster behind the computer place, retrieve, and repair. I have 10 flat panel monitors, more than a dozen laptops, at least twenty 250 gig hard drives, 16 of which hold 4 copies of each of my four main computer's datasets... so the activity as a hobby is profitable. I just want to increase my recovery percentage. If I can figure out how to recertify Seagates or disable individual heads on Seagates, my recovery percentage increases. I have numerous Seagates that have full GLISTS from corroded ROHS contacts. Clean the contacts, and the problem is gone, but the GLIST is full, but now because of the terminal I can already fix that by clearing the GLIST and then rescanning so only the
actual bad sectors get remapped (and without destroying the drives now, because of what I have learned so far).
I would be perfectly happy to disable the bad head or surface on the ST3120827AS, and have an 80 gig Seagate in place of the 120 gig it used to be.
I guess I should be happy that I learned what I mainly wanted, to clear GLISTS and recertify, but I am still curious.