Hi all. This is my own drive, with data that has value to me, but I'm still willing to gamble on it, hence my DIY approach - learning a lot along the way and enjoying it too.
What I'd like to know is whether there is any realistic way forward without the original ROM, and which direction is worth the effort. I've read a lot of threads here and on the PC-3000 forum and tried what I could, but none of it succeded.
While understand that without original ROM this a difficult case, I also have a feeling I may be missing something that is obvious to people who do this every day.
The drive: ST1000DM003, PN 1CH162-305, FW CC47 (cannot exactly recall if it was ever upgraded from stock), PCB 100717520 REV B.A likely power surge killed the PCB, leaving black arcing/burn marks throughout the laminate and also damaging the ROM chip (W25Q40BW). The ROM reads all zeros with no ID on a programmer that reads other 1.8 V chips fine. So no native ROM and no backup.
What I have: - a working replacement PCB of the same board number with a fresh flash chip
- a healthy donor ST1000DM003-1CH162-510 CC47 + a full ROM dump from it
- and additionally found a ROM image from another 1CH162-305 CC47 on this forum.
- No PC-3000/MRT/DFL, just a TTL adapter, PuTTY and a programmer.
What I've seen so far:1. The replacement PCB with the freshly programmed donor ROM works perfectly on the donor HDA (T>, ready, Windows sees the drive). So the board, the flash chip and the dump are fine. The problem only appears on my HDA.
2. Donor ROM on the patient stops in BootFW, byte-identical on six boots:
Code:
Boot 0x40M
Spin Up
RECOV Servo Op=0100 Resp=0005[LBA=0x000042F9]N01020C20o0o0o0o0o0o0o0o0[LBA=0x000042F9]NO1111
RECOV Servo Op=0155 Resp=0005[LBA=0x00066E3B]N02010C10o0o0o0o0o0o0o0o0[LBA=0x00066E3B]NO1111
RECOV Servo Op=0055 Resp=0005[LBA=0x00028F1D]N01010C10o0o0o0o0o0o0o0o0[LBA=0x00028F1D]NO1111
RECOV Servo Op=0155 Resp=0005[LBA=0x0008BA5F]N01010C10o0o0o0o0o0o0o0o0[LBA=0x0008BA5F]NO1111
SimError - Remaining in BootFW
Perform a double download without a power cycle
3. The -305 ROM from the other drive: same four LBAs, same Resp=0005, same SimError. Only the retry counters after each LBA differ (N01010C10 / N01010C10 / N01010C10 / N02020C20).
4. Hot-swap (that same PCB booted on the donor HDA, HDD spun down, then moved live to the patient) gives a full T> on the patient.
Head resistance (7>X) looks healthy: H0 0x0122 / H1 0x0129 against the donor's 0x0108 / 0x010F. 4>k gives a steady VGA readback and the servo counters advance, so the heads do see the platters. But the servo never settles on a track: every seek ends RECOV Servo Op=0055/0155 Resp=0005 and every read fails, SA or user area, either head. Almost always 43110081, a couple of times C3160080 (at cylinder 0x31000 and at a zone boundary).
One more thing that may mean something: after the first failed seek the drive stops trying. Further seeks return instantly with no RECOV and no retry at all, until I do 3>b0 / 3>b1, and then I get exactly one more attempt.
RRO/ZAP mode flags, seek offsets, load/unload cycles: no change in the result. 7>I shows the adaptives but is display-only, 7>r fails.
My questions:1. Is there something obvious I've missed? A known trick for Grenada with a foreign ROM, a command, a flag, a different way to get the adaptives in?
2. Is adapting a donor ROM to a foreign HDA without the native ROM feasible at all (the "remove everything unique from the donor" idea I've read about)? I'd be willing to try it but need pointing in the right direction, can post both dumps, SAP/RAP/CAP exports and the full terminal logs.
3. If the ROM road is closed, is a donor head stack (donor ROM + donor heads on my platters) the realistic DIY route for a 1 disc/2 head drive, or is that hopeless without the original adaptives too?
All suggestions welcome, thanks.