What data recovery tools to buy if you want to start a data recovery business?
Free video data recovery training on how to recover lost data from different hard drives?
Where to buy head and platter replacement tools at good prices?
Data recover case studies step by step guide
I want to attend professional data recovery training courses
It’s very important to understand the firmware structure when you are going to repair hard drives which are not detected due to firmware corruption. The following information is about the firmware architecture in HDD equipped with Parallel Flash.
Service data in Seagate drives is recorded in base ROM of the processor chip on PCB, external ROM on the PCB (there may be none, then its role is performed by shadow ROM in the processor chip) and on the disk surface tracks. Since there is no distinct modules table regulating HDD operation (HDD use addressing in SA based on offsets precompiled in drive firmware).
Barracuda drives can be subdivided into two groups: drives equipped with Parallel Flash and Serial Flash. The
first group includes U5, Barracuda I / II / III / IV. The second: Barracuda V, U Series 7, 7200.7, 7200.8, 7200.9,
7200.10, Momentus.
Firmware in Seagate
* Embedded code (base code in microprocessor ROM on drive controller board).
* Parallel Flash on controller board. Microcode stored there is used to implement the set of basic actions required to boot a drive and also contains the main commands of the terminal mode. It is identified by the FW version on HDD label. Therefore, while replacing a burnt-out controller on a donor board you should take into account its FW version and the general layout (every drive family uses several different types of boards). ATTENTION! Before board Hot Swap or replacement, be sure to check family-specific peculiarities! It may have some differences! In particular, for Barracuda II a Hot Swap from a donor drive can cause ROM reconfiguration on the donor PCB resulting in its inability to function properly (therefore ROM backup is required before the operation)!
Group of SA objects on disk surface, such as:
– ATA overlay (containing the code for processing of ATA commands).
– S.M.A.R.T. sector that contains S.M.A.R.T. Thresholds, Values and other S.M.A.R.T. logs.
– HDD ID template sector, Stuff. It contains basic information that makes up a HDD ID. Its structure matches the ATA specification for HDD ID. HDD ID actually provides data block built using Stuff as the basis, though it is not completely identical (some fields are changed in accordance with the drive status).
– Sector containing drive PN and information about HDD ID configuration.
– Sector containing the drive security subsystem data.
– Defect list tracks (P-List, Alt-List).
– Group of sectors containing zone allocation of the user data area on drive.
– Tracks containing drive operation logs (THEIR READABILITY IS NOT REQUIRED FOR DRIVE OPERATION VIA ATA).
– Track containing CERT code – the code block servicing an extended set of terminal commands and Self Test (NOT REQUIRED FOR DRIVE OPERATION VIA ATA).
– Group of sectors containing CERT tables – a table of Self Test parameters (NOT REQUIRED FOR DRIVE OPERATION VIA ATA)
Data recovery Salon welcomes your comments and share with us your ideas, suggestions and experience. Data recovery salon is dedicated in sharing the most useful data recovery information with our users and only if you are good at data recovery or related knowledge, please kindly drop us an email and we will publish your article here. We need to make data recovery Salon to be the most professional and free data recovery E-book online.
3 Comments
[…] Original post: Seagate Barracuda drives firmware structure review […]
Firmware architecture in HDD equipped with Serial Flash
The internal hierarchy of firmware in Seagate Barracuda HDD based on Serial Flash is as follows:
Embedded Code
|
Boot Flash Code
|
App Code
|
Main Firmware
Drive start invokes the embedded code including among other functions routines for copying of the Boot code from external or built-in Serial Flash memory. A portion of that code serves terminal level F. As soon as the code from
Serial Flash is copied to RAM and launched, it reads from certain hard-coded cylinders the so-called Application code (App code). That microprogram portion contains parts of executable code required to start the main portion of the microprogram, i.e. the code part servicing the mail levels of the drive command mode and the start of the ATA subsystem. It is its version that makes up the FW version number indicated in HDD ID and on drive label.
You can identify a compatible board using the ID data output to terminal when a drive starts.
E.g.:
Interface task reset
1024k x 16 buffer detected
ALPINE – 1_Disk S.15 01-16-03 11:51
Or
Interface task reset
1024k x 16 buffer detected
AVALANCHE – 1_Disk S.30 08-30-02 15:13 rcwood
Here the crucial compatibility aspect will be indicated by the characters that follow x_Disk, i.e.. S.xx and the word after
the ROM generation date. In the above examples, it is S.15 and S.30, rcwood (the last word may be missing). These parameters determine the code (which is also adjusted for the electronic components used) and variations in the
electronic components. To ensure compatibility between two PCB, both the parameters (shown in bold type in the examples) must match. If that is not so, the boards are INCOMPATIBLE! However, in some cases incompatibility can
be eliminated by overwriting the Flash ROM contents of a PCB.
If an incompatible PCB is installed, the drive will return an error message. E.g.:
Interface task reset
1024k x 16 buffer detected
AVALANCHE – 1_Disk S.30 08-30-02 15:13 rcwood
Buzz – Head Mask 0000 – Switch to full int.
Spin Ready
Application code incompatible with serial flash code
F>
Board compatibility is determined by the following aspects. PCB microcode contains information for initialization and
management of its components, including the spindle motor controller. It also stores data required for preamplifier
initialization. In other words, the code in the main controller chip and (external or internal) Serial Flash, contains the
information necessary for work with drive’s hardware. Besides, the code holds App code coordinates, i.e. makes a drive
able to find the firmware portion recorded in service area on disk surface. Based on the above, even if FW versions on
labels differ but the boards are compatible when estimated according to the said aspects, the drive will initialize
correctly. That is so because various FW versions are started by the App code and start-up parameters (boot adaptive
data, Reserve track defect list of the SA), and the placement of the latter is recorded in on-board data while the PCB
code and App code on disk surface will be compatible.
In addition, the service area contains the following objects:
– ATA overlay (the code processing ATA commands and S.M.A.R.T. operations)
– S.M.A.R.T. sector containing S.M.A.R.T. Thresholds, Values and other S.M.A.R.T. logs
– HDD ID sector, Stuff, containing basic information that makes up a HDD ID. Its structure matches the
ATA specification for HDD ID. HDD ID actually provides data block built using Stuff as the basis,
though it is not completely identical (some fields are changed in accordance with the drive status).
– Sector containing drive PN and information about HDD ID configuration.
– Sector containing the drive security subsystem data.
– Defect list tracks (P-List, Alt-List).
– Group of sectors containing zone allocation of the user data area on drive.
– Tracks containing drive operation logs (THEIR READABILITY IS NOT REQUIRED FOR
DRIVE OPERATION VIA ATA).
– Track containing CERT code – the code block servicing an extended set of terminal commands and
Self Test (NOT REQUIRED FOR DRIVE OPERATION VIA ATA).
– Group of sectors containing CERT tables – a table of Self Test parameters (NOT REQUIRED FOR
DRIVE OPERATION VIA ATA).
– etc.
App code is identified by the so-called Eng Rev. Eng Rev is output to terminal in response to the [Ctrl] + [A] command. The polled drive outputs then a string containing information in <> format.
An entire description of a HDD FW can be produced by adding FW and Eng Rev versions, i.e. if drive FW is 3.06, and Eng Rev = .F54, the resulting version will be 3.06.F54. ROM version should be specified as well in such
cases. For instance, for a drive examined above, it is S.15.
I have a seagate barracuda which spins up normally with no strange clicking but will not mount. I think it has the firmware problem common to many of these seagate drives. Is there a firmware flash programme available anywhere that will return the drive to functionality again? The contents of the drive would be convenient to retrieve but don’t merit the cost of paying a company to do it, so I thought I would have a try at it myself. Suggestions appreciated.
for firmware problems, you usually need some professional hdd repair tools to repair the firmware modules or you can sometimes have good luck by visiting Seagate official website and they provide flash programme tools and updated firmware to fix your problem