What is firmware?

Defining firmware is no small task. The IEEE defines firmware thus: The
combination of hardware devices and computer instructions and data that reside as
read-only software on that device... the confusion around this term has led some to
suggest that it be avoided altogether.
Firmware has also been defined as the fixed, usually rather small programs and/or
data structures that internally control various electronic devices. When definitions use
words such as usually, often, small, and avoid, it's a good indication we need to go
back to the basics to define the term.

I posed this question to the Firmware group on LinkedIn, both in discussion threads
and in survey form. After weeks of online debate, no clear definition emerged on
which the majority of engineers responding could agree.

With that in mind, let me share some of my findings that I feel may help in building a
foundation. After much discussion and attempts to define the term, I decided to create
a poll using the definitions that had found the greatest support in the discussion
threads. Among the 148 firmware engineers who participated, the most popular
definition, with a 81% acceptance, was the one provided by Arthur Sittler (a firmware
engineer of the LinkedIn group): Firmware is programming stored in nonvolatile
storage that the end user is not generally expected to change at run time.

This focus on persistence and storage has been nearly constant in all the discussions I
have had. The only notable exception was provided by Robert Gezelter, who made a
compelling argument: The storage mechanism is a thin reed to grasp for
classification... The etymology of "firmware" is, in essence, "software embedded in
hardware." FPGA configuration information is part of that continuum, as are many
other realizations of hardware-dependent encoding.

During my discussion with Dr. Schwartz, he presented the following definition: I
define firmware as anything that comes with a device, any device that the end user is
not likely to change or would have to know something unusual to be able to change.
Dr. Schwartz had no awareness of my survey or the online discussion and was not a
member of the Firmware group at the time of our discussion. I will not attempt to
piece a definition together from their contributions, but suffice it to say that
constancy, hardware dependency, and device programming are probable elements. An
emdedded developer should learn to explain the features and benefits of firmware
including how it may provide significant benefits to the business.

What is firmware

  • 1.
    What is firmware? Definingfirmware is no small task. The IEEE defines firmware thus: The combination of hardware devices and computer instructions and data that reside as read-only software on that device... the confusion around this term has led some to suggest that it be avoided altogether. Firmware has also been defined as the fixed, usually rather small programs and/or data structures that internally control various electronic devices. When definitions use words such as usually, often, small, and avoid, it's a good indication we need to go back to the basics to define the term. I posed this question to the Firmware group on LinkedIn, both in discussion threads and in survey form. After weeks of online debate, no clear definition emerged on which the majority of engineers responding could agree. With that in mind, let me share some of my findings that I feel may help in building a foundation. After much discussion and attempts to define the term, I decided to create a poll using the definitions that had found the greatest support in the discussion threads. Among the 148 firmware engineers who participated, the most popular definition, with a 81% acceptance, was the one provided by Arthur Sittler (a firmware engineer of the LinkedIn group): Firmware is programming stored in nonvolatile storage that the end user is not generally expected to change at run time. This focus on persistence and storage has been nearly constant in all the discussions I have had. The only notable exception was provided by Robert Gezelter, who made a compelling argument: The storage mechanism is a thin reed to grasp for classification... The etymology of "firmware" is, in essence, "software embedded in hardware." FPGA configuration information is part of that continuum, as are many other realizations of hardware-dependent encoding. During my discussion with Dr. Schwartz, he presented the following definition: I define firmware as anything that comes with a device, any device that the end user is not likely to change or would have to know something unusual to be able to change. Dr. Schwartz had no awareness of my survey or the online discussion and was not a member of the Firmware group at the time of our discussion. I will not attempt to piece a definition together from their contributions, but suffice it to say that constancy, hardware dependency, and device programming are probable elements. An emdedded developer should learn to explain the features and benefits of firmware including how it may provide significant benefits to the business.