What Does Firmware Mean?
Firmware is a type of software that is embedded directly in a piece of hardware to make the hardware work as intended. Firmware is programmed by the manufacturer and is installed on a digital device right in the factory. All computing devices have firmware.
Firmware microcode comes in various complexities and can be found in simple digital devices, like keyboards and more complex devices like connected vehicles.
When a device is powered on, firmware sends instructions to the device's processor to execute. If the device is as simple as a keyboard, the firmware continues to execute as there is no software to replace it. However, in more complex devices, such as PCs, laptops and tablets, multiple firmware sets interact to achieve a common goal; load the operating system.
According to the U.S. Department of Homeland Security (DHS) and Department of Commerce, firmware is now a priority target for hackers and represents a significant threat vector for computer systems and IT infrastructure. In response, many manufacturers are updating their firmware more often to improve device security and performance.
Techopedia Explains Firmware
Without firmware, the most basic digital devices will not function. That is why firmware is often stored on a Read-Only Memory (ROM) chip, ensuring it does not get erased by accident, while remaining as close as possible to the metal of the device.
Regardless of the type of device, firmware can only work with a basic or low level, binary language known as machine language. While the firmware's code could be written in a high level language for ease and versatility, it needs to be translated into a low level language before getting etched into the device.
Depending on where it is stored and the complexity of its functionality, firmware has three levels:
1. Low Level Firmware: This level of firmware is stored on non-volatile memory chips such as ROM, PROM—also known as One-Time Programmable (OTP) memory—and Programmable Logic Array (PLA) structures. Because low level firmware is often stored on read-only chips that cannot be rewritten or updated, it is considered an intrinsic part of the hardware.
2. High Level Firmware: This firmware is used with flash memory chips to allow for updates. It often has more complex instructions than low level firmware, making it closer to software than hardware.
3. Subsystems: A subsystem is a device or unit that is a semi-independent part of a larger system. Because this firmware level has its microcode embedded in flash chips, CPUs, and LCD units, and is similar to high level firmware, it often resembles its own device.
How to Update Firmware
The Internet of Things (IoT) raised the need for an efficient way to update edge device firmware. Updates can be distributed over a network or over-the-air. Over-the-air (OTA) technology allows firmware updates to be rolled out to a connected vehicle wirelessly and eliminate the need for an auto technician to physically install an update in the vehicle.
To update firmware, device owners and IT managers should:
1. Check with the device's manufacturer to see if a firmware update is available.
2. Set aside enough time to ensure the firmware update won't be interrupted.
3. Backup the device in question -- this will also back up the device's current firmware.
4. Download and install the firmware update.
History of Firmware
Originally, firmware was strictly written on ROM chips. That allowed it to be cheap to manufacture and ensured it did not get deleted or tampered with.
Programmable Read-Only Memory (PROM) chips were also used and allowed for a wider array of firmware. But using ROM and PROM to store firmware means that when a device's firmware becomes outdated, it cannot be updated, only replaced.
Firmware differs from drivers in that firmware is what instructs the device how to operate and the driver is the software that acts as a messenger between the operating system and the hardware.
As technology advanced more rapidly, firmware started becoming outdated sooner, before the hardware got worn down. Manufacturers then switched to using Erasable Programmable Read-Only Memory (EPROM) chips, which allowed for firmware updates. But since EPROM chips were expensive to manufacture and time-consuming to program and update, firmware eventually evolved to flash memory chips, as they are cheap and easy to write and rewrite on.
BIOS, modems, and video cards were usually made to be easy to update as their technology rapidly evolves. But firmware in storage devices, like hard drives and USB flash drives, often gets overlooked. That is because storage device's functionality is limited and straightforward, making it unnecessary to update them as often.