Firmware bug

Firmware bug by Windell H. Oskay used under Creative Commons

Yesterday morning I got several updates delivered to my laptop via Windows Update. These were not security patches that are typically delivered by Microsoft on the second Tuesday of the month (commonly referred to as Patch Tuesday). But these were non-security related updates to the system. An example of one was an update to the daylight savings functionality, seems that governments around the world are still adjusting the start dates (see http://support.microsoft.com/KB/979306 if you want the details).

Seeing the updates reminded me that it had been a while since I checked my various devices for updates to the firmware. This was a good reminder, so I spent a few minutes checking the devices and bringing them up to the latest versions.

Keeping your firmware up to date is just as important as keeping your operating system and applications up to date. Firmware updates will often correct application issues, close security holes, improve performance and even deliver new functionality.

The IEEE has a very dry, but functional definition of firmware:

The combination of a hardware device and computer instructions and data that reside as read-only software on that device

I tend to think of firmware as this magical layer of software abstraction that has a very intimate relationship with the hardware, but I am kind of a software romantic.

Firmware is becoming increasingly important in computing as we have more and more intelligent hardware devices. I bet the average person carries at least 1 device that has updatable firmware on it and many of us who are “mobile” workers can carry 3 or more (I have 3 on me right now: Zune, Mobile Phone and laptop). Even the speaker dock that I have for my Zune has firmware in it.

Firmware updates are different

One of the things that is so nice about Windows Update is that it can be set to automatically update the system by the user (in a home situation) or by the administrator (in a corporate situation). For the most part your updates are on auto pilot at that point, with the exception of getting prompted for a reboot if an update requires one.

Note: I don’t mean to be a Microsoft “fan boy” in praising Windows Update here; the Apple software update process is similar and just as reliable. There are philosophical differences between the two; Microsoft’s updates are more numerous, but much smaller in size and Apple generally prefers fewer, but much larger updates. There are also update processes for software applications other than the operating system as well: Apple Update for Windows, Adobe, Firefox, etc.

Updates to firmware are generally not as seamless and carefree as the Operating System Updates. Almost no hardware systems pull down the updates and apply them automatically. The processes by which you apply the updates also vary greatly:

  • The Zune and iPhone firmware updates are pulled down automatically and applied when you tether the devices, but they require software on the machine to accomplish it.
  • The BIOS updates on a computer usually require you to download an specialized installer that updates the firmware the next time you reboot
  • Home routers and access points generally have you download a binary file and upload it through the management interface

The slightly more complicated update process goes to the specialized nature of firmware, because it is at such a low level the update needs a little more care than updating a software application or even an operating system.

When was the last time that you updated your firmware?