The explanation I heard was that the drive keeps an internal log of events like remapping sectors. If the log hits 320 entries when the drive restarts, the firmware doesn't like it and prevents it from starting properly. Seagate have some sort of internal diagnostic tool or program that can reset the log and then allow them to reflash it to a working firmware.