Firmware is program code that lives in hardware’s non-volatile memory, which refers to a device’s static random access memory (RAM). When you turn off your device, the content is saved into the non-volatile memory. This principle also applies when your hardware loses an external power supply.
Hardware manufacturers can use embedded firmware to control multiple hardware systems and devices. The idea is similar to how your operating system pushes updates to the software on your device. The difference here is that firmware installation takes place upon manufacturing the piece of hardware.
There are three memory locations where manufacturers can write firmware:
- Read-only memory (ROM): controls the permanent data storage of PCs or other electronic devices
- Erasable programmable read-only memory (EPROM): stores data so a device doesn’t lose content when the power supply turns off
- Flash memory: also a form of memory that preserves data when a power supply turns off
Why Are Firmware Updates Important?
Firmware updates are essential because they can improve your device’s functionality, features and security.
For example, a firmware update can fix a performance issue or patch a loophole that exposes your device to attacks, such as malware injections with which an attacker can gain remote access to your device. To keep your firmware secure, install firmware updates as soon as they become available.
Also, thanks to the rapid developments in technology, firmware updates can help your device stay fresh and compete with newer device models.
3 Types of Firmware: What Are They?
- Low-level firmware
- High-level firmware
- Subsystem firmware
What Is Low-Level Firmware?
Low-level firmware is typically stored in non-volatile read-only memory chips such as ROM. This means you cannot overwrite or update low-level firmware, which means that low-level firmware is an intrinsic part of the hardware. A device that contains low-level firmware has one-time programmable memory.
What Is High-Level Firmware?
High-level firmware is a type of firmware that allows updates to the code. You typically encounter this type of firmware on flash memory chips. High-level firmware is closer to software than hardware because the code instructions are more complex than low-level firmware.
What Is Subsystem Firmware?
Subsystem firmware is usually a part of an embedded system and reminiscent of high-level firmware for two reasons:
- You can update subsystem firmware.
- The instructions for subsystem firmware are more complex than low-level firmware.
A great example of subsystem firmware is the server’s power subsystem, which works almost independently from the server.
Firmware vs. Software
Firmware is a piece of machine-level software that gives instructions for a machine. The firmware instructs the device to cooperate with other software that runs on it.
Firmware gives low-level control over the device’s hardware, which is why some people call firmware the “software of hardware.”
In this sense, firmware is a type of software, but the key difference between firmware and software is user friendliness. Software is usually developer-friendly readable code while firmware consists of low-level machine code that isn’t easy to comprehend by humans.
Software is also not tied to the underlying hardware. Usually, you can have software work on multiple platforms and operating systems regardless of the hardware. This is not the case with most firmware that’s designed to run on a specific hardware setup.
Some real-world applications of firmware include:
- PCs (Personal Computers): Firmware that lives on a PC comes in a memory chip on the motherboard. Also, the PC’s graphic and video cards consist of firmware.
- Storage Devices: USB drives, hard drives and other similar storage devices have firmware that makes the storage devices work with a computer.
- Mobile Devices: Smartphones, tablets and laptops all have firmware that make it possible for the hardware to work with different types of software and applications.
- Home Appliances: Washing machines, dishwashers and even coffee machines can contain firmware. These types of firmware allow a computer to interact with the machine to control the operations and machine settings.