Practical, but unofficial definition: data and instructions compiled, or capable of being compiled, into machine readable form such that it can execute without transfer (“loading”) from its on-device storage memory. (i.e., it executes in the same memory address space where it is stored). A computer’s BIOS is a good example of firmware.
The method for upgrading firmware is a critical distinction in how it is represented in the Product Structure. It needs to be correctly reflected in order to drive the correct Engineering and Logistical aspects of the product’s life cycle.
- If the host hardware must be returned to the OEM in order to upgrade the firmware, then said firmware is in-scope to the hardware’s Part Number. Changing the firmware means that the hardware must be considered for re-identification at the time of the upgrade, because it might no longer be interchangeable with a device that has not been upgraded.
- If the firmware can be upgraded by the End User (including Depot operations using support equipment procured from the OEM) then said firmware is NOT in-scope to the hardware Part Number – the firmware is an independent End Item, separately identified, procured, delivered and installed. The upgrade of a video card driver (which sometimes squirts new firmware to chips on the video card itself) is an example of this situation.
Contrast with the unofficial definition of software. See also Software Installation Drawing and Software Version Description.