NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Dealing with Seagate's problematic 7200.11 firmware.



Most of you have read about the problems with Seagate's
7200.11 disks.  For those of you that haven't, the firmware
on many of these drives is buggy, and can "brick" the drive
when powering up or rebooting the system.  Thus far,
Seagate's response has been less than wonderful.  We need
a FLOSS solution.

Goals:

        1) Ability to read the number of log entries.

        2) Ability to change the number of log entries.

        3) Ability to install new firmware from Unix.

We need for this to work with any flavor of Unix,
on any CPU arch, without reboot or power cycle.
We need for this to work on one drive without affecting
other drives.

I don't expect to be able to write FLOSS firmware for the drives, so
this isn't listed as a goal.  If you think you can, please feel free.

The problem:

"IF the drive is powered down when there are 320 entries in this journal
or log, then when it is powered back up, the drive errors out on init and
won't boot properly - to the point that it won't even report it's
information to the BIOS."

                        Maxtorman, slashdot discussion [2]

If Maxtorman is correct, then once the drive has been operating awhile,
we have a 1 in 320 chance that the circular log is at entry 320.  We want
to be able to find out how many log entries the disk currently has, and
we want to be able to change the number of log entries away from 320,
while we wait for Seagate to get its act together and release firmware
that works properly.  Since Seagate's solution will require attaching
the drive to an x86 system and booting a FreeDOS ISO from CD, if the log
is at 320 that boot will brick the drive.

There are other firmware problems with the 7200.11 series, but this is
the biggie.

Once Seagate releases working firmware, we want to be able to install
it from Unix, on any CPU arch.  Seagate's release can only install
on x86 using FreeDOS.

*ATA Commands that may be useful:

command name                    command code in hex   page [1] pdf page [1]
Read Log Ext                    0x2F                    27      33
S.M.A.R.T. Read Log Sector      0xB0 / 0xD5             28,34   34,40
S.M.A.R.T. Write Log Sector     0xB0 / 0xD6             28,34   34.40
Write Log Extended              0x3F                    28      34
Download Microcode              0x92                    27      33

Questions:

        Is Maxtorman correct about the 320 log entries?

        Are the commands listed above the ones we need?
        What is the difference between the "Log Extended"
        and the S.M.A.R.T. Log Sector?
        Is "Microcode" the same as "firmware"?  (Seagate uses
        the term firmware elsewhere in the manual, but I don't
        find any sort of "write firmware" command.)

        Where can we get more detailed info about these
        commands and how to use them?

References:

[1] Seagate Barracuda 7200.11 Serial ATA Product Manual rev C  August 2008
http://www.seagate.com/staticfiles/support/disc/manuals/desktop/Barracuda%207200.11/100507013c.pdf

[2] http://it.slashdot.org/article.pl?sid=09/01/21/0052236


Home | Main Index | Thread Index | Old Index