Reply
Byte
_chud_
Posts: 12
Registered: ‎10-20-2011
0

A flash of stupidity killed my 7200.11 with wrong firmware - fixable? ST3160813AS CC2J

Early in the morning when still half asleep I flashed a 160 gb 7200.11 ST3160813AS CC2J accidently with firmware for SD2B.

 

It got from 1:00 to ~ 00:59 (about 1 second into it) and head started boing boing which is when I realised what I'd done. I let it finish at this point as thought interrupting it was only going to make it worse. 

 

Did it 'die' when programming eeprom so no wrong firmware parts were written to the actual disk? If this is so, can a board swap get data from it - (I have a drive I can take board from that came at same time so pretty sure its almost exactly same.)

 

Any other suggestions, is it possible to load correct LOD via serial console? (I cant find a CC2J firmware though)

 

Thanks for any suggestions.

 

 

Terabyte
myforum
Posts: 213
Registered: ‎07-17-2011
0

Re: A flash of stupidity killed my 7200.11 with wrong firmware - fixable? ST3160813AS CC2J

First of all, you can't do a board swap as each board was specifically "calibrated" for that drive even though they are same model.

 

You can contact Seagate Support for "CC2J firmware" or this outlet: http://www.hdd-parts.com/ for more info.

 

Hope this helps.

Byte
_chud_
Posts: 12
Registered: ‎10-20-2011
0

Re: A flash of stupidity killed my 7200.11 with wrong firmware - fixable? ST3160813AS CC2J

hdd-parts say they copy the firmware from old pcb to a different one. If the firmware is the problem in the first place, then the drive is completely irreparable?

Terabyte
myforum
Posts: 213
Registered: ‎07-17-2011
0

Re: A flash of stupidity killed my 7200.11 with wrong firmware - fixable? ST3160813AS CC2J

"If the firmware is the problem in the first place, then the drive is completely irreparable?" It's not 100% true as long as your hardware is still good and you'll still be able to restore the original firmware (CC2J). It's not the end of the world yet! Have you contacted Seagate Support for firmware CC2J?

 

Also, try this outlet:

 

http://www.onepcbsolution.com/seagate-barracuda-7200720011.html

http://hddscan.com/doc/HDD_from_inside.html

 

Good Luck! :smileyhappy:

Yottabyte
fzabkar
Posts: 4,697
Registered: ‎01-27-2009
0

Re: A flash of stupidity killed my 7200.11 with wrong firmware - fixable? ST3160813AS CC2J

There are two places where the firmware is stored. The bulk of it is written to a firmware zone in the hidden System Area on the platters, while a small portion of the boot firmware resides in an 8-pin serial flash memory IC on the PCB. This flash memory also stores unique, drive specific "adaptive" information. Therefore a firmware transfer from flash memory to flash memory would be pointless. In fact it would only compound the problem due to wrong adaptives being transferred.

AISI, you need some way of retrieving the CC2J firmware modules from a working drive, and then transferring them to your patient. I don't know how to do this via the serial terminal interface. There is a freeware tool (STR-3000) that may allow you to read the modules from a working drive, but it won't allow you to write them. I haven't had a chance to experiment with it, though.

There is another technique that the data recovery professionals refer to as hot swapping, but I doubt that it would work for you.
Byte
_chud_
Posts: 12
Registered: ‎10-20-2011
0

Re: A flash of stupidity killed my 7200.11 with wrong firmware - fixable? ST3160813AS CC2J

Hi , Thanks for info.

 

The console output when just plugged in is;

 

Rst 0x08M
ASCII Diag mode

F3 T>
(H) SATA Reset

LED:000000CC FAddr:0025E047
LED:000000CC FAddr:0025E047
LED:000000CC FAddr:0025E047
LED:000000CC FAddr:0025E047
LED:000000CC FAddr:0025E047
LED:000000CC FAddr:0025E047
LED:000000CC FAddr:0025E047
LED:000000CC FAddr:0025E047

 

 

If I poke Cntrl-Z while its still trying to initialise I can get this;

 

Rst 0x08M
ASCII Diag mode

F3 T>
ASCII Diag mode

F3 T>
DiagError 00007001

Blks 000E1C-000E1C (000001), BufAddr 001C3800-001C39FF, DBA 061C3800, BytesPerBlk 200 Cmd Input Buf
Blks 000E1D-000E1D (000001), BufAddr 001C3A00-001C3BFF, DBA 061C3A00, BytesPerBlk 200 Diag Batch File
Blks 000E1E-000E1E (000001), BufAddr 001C3C00-001C3DFF, DBA 061C3C00, BytesPerBlk 200
Blks 000E1F-000E1F (000001), BufAddr 001C3E00-001C3FFF, DBA 061C3E00, BytesPerBlk 200
Blks 000E20-000E20 (000001), BufAddr 001C4000-001C41FF, DBA 061C4000, BytesPerBlk 200
Blks 000E21-000E21 (000001), BufAddr 001C4200-001C43FF, DBA 061C4200, BytesPerBlk 200
Blks 000E22-000E22 (000001), BufAddr 001C4400-001C45FF, DBA 061C4400, BytesPerBlk 200
Blks 000E23-000E23 (000001), BufAddr 001C4600-001C47FF, DBA 061C4600, BytesPerBlk 200
Blks 000E24-000E27 (000004), BufAddr 001C4800-001C4FFF, DBA 061C4800, BytesPerBlk 200
Blks 000E28-000E2B (000004), BufAddr 001C5000-001C57FF, DBA 061C5000, BytesPerBlk 200
Blks 000E2C-000E2F (000004), BufAddr 001C5800-001C5FFF, DBA 061C5800, BytesPerBlk 200
Blks 000E30-000E33 (000004), BufAddr 001C6000-001C67FF, DBA 061C6000, BytesPerBlk 200
Blks 000E34-000E53 (000020), BufAddr 001C6800-001CA7FF, DBA 061C6800, BytesPerBlk 200 Online Cmd SDBP DFB
Blks 000E54-000E73 (000020), BufAddr 001CA800-001CE7FF, DBA 061CA800, BytesPerBlk 200 Diag Mode Cmd SDBP DFB
Blks 000E74-000E93 (000020), BufAddr 001CE800-001D27FF, DBA 061CE800, BytesPerBlk 200 Test Service SDBP DSB
Blks 000E94-000EB3 (000020), BufAddr 001D2800-001D67FF, DBA 061D2800, BytesPerBlk 200
Blks 000EB4-000F0D (00005A), BufAddr 001D6800-001E1BFF, DBA 061D6800, BytesPerBlk 200
Blks 000F0E-000F67 (00005A), BufAddr 001E1C00-001ECFFF, DBA 061E1C00, BytesPerBlk 200

DiagError 00007001
DiagError 00007001
DiagError 00007001
Spinning Down

LED:000000CE FAddr:0025E155

 

 

I tried another 7200.11 board on it (yes I know its keyed to specific board I just wondered what difference it made)

This would let it spin up and initialise to some extent, made a few odd noises and then nothing - which I assume is what would happen swapping a board with two working 7200.11's anyway. Nothing got output to the console at all though and cntrl-Z didnt do anything.

 

 

I read the STR-3000 PDF. It appears you can send firmware to the drive via the console (as software runs via console)

"

11. Read/write for All Modules;
12. ROM Read/write with PCB;

"

 

Very frustrating as the drive and board are fine, just needs flashing!

Byte
_chud_
Posts: 12
Registered: ‎10-20-2011
0

Re: A flash of stupidity killed my 7200.11 with wrong firmware - fixable? ST3160813AS CC2J

Ahh, took the PCB off, hooked up power and TTL, now get [ive replaced correct serial with X's]

 

Rst 0x08M
ASCII Diag mode

F3 T>
ASCII Diag mode

F3 T>
TetonST4 SATA Brinks Gen3.1 (RAP14)
Product FamilyId: 2D, MemberId: 09
HDA SN: XXXXXXXX, RPM: 7203, Wedges: 108, Heads: 1, Lbas: 12A19EB0, PreampType: 00 00
PCBA SN: 00007009A5MC, Controller: TETONST_4(63A2)(3-0E-4-2), Channel: AGERE_COP PERHEAD_LITE, PowerAsic: MCKINLEY DESKTOP LITE Rev 13, BufferBytes: 800000
Package Version: BR120C.SDD2.BX0R0A., Package P/N: 100555436, Package Builder ID : 3K,
Package Build Date: 01/15/2009, Package Build Time: 19:44:14, Package CFW Versio n: BR12.SDD2.00131122.3K00,
Package SFW1 Version: C0C4, Package SFW2 Version: ----, Package SFW3 Version: -- --, Package SFW4 Version: ----
Controller FW Rev: 01151944, CustomerRel: SD2B, Changelist: 00131122, ProdType: BR12.SDD2, Date: 01/15/2009, Time: 194414, UserId: 00000761
Servo FW Rev: C0C4
RAP FW Implementation Key: 0E, Format Rev: 0200, Contents Rev: 01 0C 00 00
Features:
- Quadradic Equation AFH enabled
- VBAR with adjustable zone boundaries enabled
- Volume Based Sparing enabled
- IOEDC enabled
- IOECC enabled
- DERP Read Retries enabled
- LTTC-UDR2 enabled

 

 

Am I correct in thinking that the Seagate flash tool would have flashed the EEPROM with this incorrect SD2B, the MCU then would have loaded it into SDRAM, it would then have tried to run and program the firmware on the drive and failed as the firmware is wrong and wouldnt access on-platter firmware (hence seeking noise when flashing after a second). Therefore I assume just the board needs reflashing.....?

 

 

 

 

Yottabyte
fzabkar
Posts: 4,697
Registered: ‎01-27-2009
0

Re: A flash of stupidity killed my 7200.11 with wrong firmware - fixable? ST3160813AS CC2J

[ Edited ]
I don't know what happens during the firmware update process. If I were to suggest something, it would only be a case of the blind leading the blind.

That said, I would hope that the drive would calculate a checksum over the downloaded code (in SDRAM) to confirm its integrity before writing it to flash or to the platters. Your results confirm that at least part of the code is written to flash. In fact if you examine the size of the 1HBXR2B.LOD file (986KB) and compare it against the capacity of the serial flash IC, then it will be evident that all the code cannot be stored in flash. For example, M25P40VP is a 4Mbit part, ie 512KB.

Datasheets for HDD memory ICs including EEPROM, EPROM, flash:
http://www.users.on.net/~fzabkar/HDD/HDD_EEPROM_Flash.html

As for the time needed to update the firmware, ISTM that even if the drive were running in PIO mode, the data transfer rate would still be in excess of 1MB/sec. Since the size of the LOD file is of the order of 1MB, then ISTM that an update shouldn't require more than a couple of seconds. Why it takes much longer than this, if indeed it does, is beyond my understanding. I'm aware that there is an enforced delay of around 10 seconds after the procedure and before the drive is powered off, but this would seem much more than is necessary.

As for STR-3000, it's not actually freeware. AIUI, the demo version allows you to read the various modules, but you need the full version in order to write to the drive. If you can somehow read the code off the platters, then you could then compare it against the code in your LOD file. This will tell you if anything was written to the System Area.

Here is the update matrix for the Brinks SD2B update:
http://www.users.on.net/~fzabkar/HDD/Brinks_1HSD2B.TXT

It was extracted (and decoded) from the following ISO:

Firmware Update for ST31500341AS, ST31000333AS, ST3640323AS, ST3640623AS, ST3320613AS, ST3320813AS, ST3160813AS [207957]:
http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=207957
http://www.seagate.com/staticfiles/support/downloads/firmware/Brinks-1D1H-SD2B.ISO

FYI, the following references in your flash dump also appear in the aforementioned update matrix:

Package Version: BR120C.SDD2.BX0R0A
Servo FW Rev: C0C4

Yottabyte
fzabkar
Posts: 4,697
Registered: ‎01-27-2009
0

Re: A flash of stupidity killed my 7200.11 with wrong firmware - fixable? ST3160813AS CC2J

Sorry, I directed you to the wrong tool. STR-3000 is a commercial tool (US$200) that doesn't appear to have a demo version.

Instead I should have referred you to the read-only demo version of SeDiv - HDD Seagate Terminal for Windows:
http://sediv2008.narod.ru/Easy1014.rar (software)
http://sediv2008.narod.ru/HelpEn.rar (documentation)

BTW, SeDiv is time limited. You will see a message which translates to "This version is outdated". Try setting your system date back to around April 28, 2009 (date stamp of SeDiv.exe).

Byte
_chud_
Posts: 12
Registered: ‎10-20-2011
0

Re: A flash of stupidity killed my 7200.11 with wrong firmware - fixable? ST3160813AS CC2J

fzabkar: thanks for info, will have a play with that util when I get a minute.

 

This was Seagates helpful technical support response after requesting CC2J firmware;

 


"

Thank you for contacting Seagate Technical Support.
Your Case Number is 2028749.

Unfortunately we are unable to provide an old firmware.
I recommend going to a data recovery company, if you need your data off that drive.
Data recovery is not covered under the warranty.


For more information or all other questions you can contact again Seagate technical support.

Best regards

Mr. James  

"