I suspect that people updating the firmware in their devices is
*vanishingly* rare, especially if those updates are persistent.
I never ever do it unless I encounter a bug that a new revision fixes,
because in almost all of these devices *there is no way back*: screw up
the upload (itself often done by software written for that purpose and
hardly ever run, thus horrendously buggy crap) and your device is toast.
Some BIOS vendors have fixed this by having a 'backup BIOS' in actual ROM
(or non-overwritten flash RAM, there's no real difference) and an easy
hit-one-key/flip-one-jumper way to flash that over the top of the BIOS
that actually gets run. But apart from those BIOS vendors, I've never seen
another piece of hardware that even tries to deal with this problem. (Oh,
your disk controller flashing failed? Hope you had backups, hope you
weren't planning on doing anything with that disk soon... your RAID
controller flashing failed? Send it back to the vendor, hope it's still in
its warranty window, and your disks? hope you didn't need them for a long
while.)
This has happened to me more than once, as a result of which I am now
fricking terrified of ever reflashing anything. So is anyone else with any
experience of these things. It's a one-way trapdoor with a possible tiger
beneath it. (The possible tiger being what happens if you lock a tiger in
a box with a radioactive atom and a phial of poison gas...)
Blobs that have to be uploaded every time have *none* of these problems.
I'd upload those on a whim. The absolute worst that happens there is you
need to pull the power and restart (if you had a bad CPU microcode upload
that locked up the CPU).
Posted Oct 4, 2009 13:32 UTC (Sun) by man_ls (subscriber, #15091)
[Link]
From my very limited experience with these things, I think that vendors have improved a lot. I bricked my first ADSL router uploading the wrong file (which it did not check at all -- it was a .txt for goodness' sake!). The next one was cleverer. The current model has a recovery mode where pushing certain buttons upon startup it will load the provided file as a firmware image; that part (the "bootloader") cannot be overwritten so it is always available. IIRC the NSLU2 has that capability too, and I believe the iPhone has a similar panic mode.
Modern network-connected devices know how to upgrade themselves, generally require signed images, and the panic mode is there just in case something really bad happens. This auto-upgrading somehow negates dlang's argument about him deciding when to upgrade his firmware, and again tips the scales towards the vendor.
Free vs convenient
Posted Oct 4, 2009 20:37 UTC (Sun) by nix (subscriber, #2304)
[Link]
Network-connected devices, sure. What about your hard drive firmware? Your
BIOS? Your disk controller? All of those have upgradable flashable
firmware in my latest machine, and only one (the BIOS) provides any sort
of recovery if things go wrong --- and *that* requires me to dismantle the
computer, turn it on with the case off, and flip a jumper. Hardly
convenient.
Hardly convenient
Posted Oct 4, 2009 21:08 UTC (Sun) by man_ls (subscriber, #15091)
[Link]
Scary, I didn't even know drives or controllers had updateable firmware. For these low-level components I am fairly sure it's as you say, a vanishingly small percentage of people ever reflash them. (And there isn't even the option to upload a binary blob from the OS to use them, since either the firmware is used before the OS or it would be needed to fetch the blob.)
Hardly convenient
Posted Oct 4, 2009 22:46 UTC (Sun) by nix (subscriber, #2304)
[Link]
Both have updateable firmware. My Seagate drives require (ick) a Windows
program to update the firmware: my Areca RAID controllers can be updated
via their relatively icky (Linux statically linked closed-source 32-bit
x86 binary) web proxy, or I think via their BIOS-accessible interface
(higher-end controllers also have an Ethernet port but I bloody hope you
can't reflash the firmware over that). If the update goes awry you could
potentially reflash back to the earlier version --- *if* you have it
somewhere accessible with your disks behind a dead controller, and *if*
the updater still works in that situation, and *if* the firmware lets you
downgrade like that. (All these facts are, of course, undocumented.)
As you suggest, uploaded blobs are a lost cause in both cases, but
autodowngrading on failure is something both could implement. (Hell, for
all I know they do, but if they do they don't document it anywhere I can
find.)
Free vs convenient
Posted Oct 5, 2009 15:35 UTC (Mon) by paulj (subscriber, #341)
[Link]
I had a Yamaha SCSI 4416 CD-RW which I discovered had an emergency
firmware, after I made a mistake in my port of a firmware-writing utility. The
emergency firmware could only speak SCSI and upgrade the firmware, it couldn't
run the actual CDRW drive..
Free vs convenient
Posted Oct 6, 2009 0:29 UTC (Tue) by nix (subscriber, #2304)
[Link]
Oh good, some vendors have thought of this then (though it sounds like
they still haven't thought of documenting it).