guru wrote:Disassemble the firmware and post what you find
How much do you guys already know? I would appreciate any information I can start with, cause this is the first time I've ever tried doing anything to a hard drive, so I'm starting from scratch with absolutely no info but what I can find on the web. Any good links on related info would be really nice!
I could not find the technical datasheet for the Agere chip for my hard drive. Does anybody know where I can find it?
The writing on the chip says:
agere
100404225
SEAGATE (e3)
YUMACPA2-E16
0714K 2413817
2413817000C A4
Looks like YUMACPA2-E16 is the part number, but searching only gets me a few web pages that mention that it's a SoC designed specifically for hard drives.
Before I figure out how to download the firmware from my own hard drive, I decided to look at some firmware I found on seagate's website (SN06C.lod) for a similar drive and see if I can at least figure out the instruction set.
I took a brief look at it, and here is what I have discovered so far:
- The instruction set seems to be ARMv5TE or similar, running in little-endian mode.
- The source code seems to have been written in C++.
- The firmware contains a complete listing of the "serial terminal commands" supported by the hard drive, and their format. I recently found out about the serial terminal interface from this website.
The .lod file seems to be organized into separate sections. Does anybody know the file format for this? Is there any table within the file that lists all the sections and their offsets?
I found a really neat looking serial terminal command: DisplayZoneInfo
I heard about the zones from a youtube video I saw, where the guy showed the output of some "expensive" package that showed LBA offset sections, and which head/track they were physically located on. Is this what DisplayZoneInfo will give me?
I already have a large list of bad sector LBA offsets from my hard drive. I was thinking of extracting the zone list, and checking if the bad sectors all fall on the same head. My drive has 6 heads, so maybe 5 of the heads are fine, and all the bad sectors are from only one bad head. If that is the case, I can use the zone list, and only copy the sectors from the working heads, and recover 83% (5/6) of my hard drive without problems! And after that is done, I can work on the remaining 17% (1/6). Has anybody here ever done something like this before? Has anybody ever seen a case where only ONE out of all the heads was giving problems on a hard drive?