First of all we must clarify that a firmware update is not equivalent to a driver update, because while the controller that we install on the PC is used by applications to communicate with the different components and peripherals. Firmware, on the other hand, tells it how it should perform at all times.
We must not forget that many devices contain a microcontroller for their management, which can be considered as a computer all by itself. Which recursively executes a program that is inside where it is how to do things and when. These processors that we find in the different materials therefore do not interact in their operation with the CPU and the rest of the system in terms of communication, but they are essential to access all the capacities of our material. .
What are the benefits of upgrading firmware to a component?
Suppose we have a monitor with stand HDMI 2.1 which is not complete, the manufacturer has decided not to include functions such as VRR and the bandwidth it supports is less than 48 Gbps. One day, thanks to a firmware update, we have access to these features without having to buy a new model.
A firmware update can also positively affect a processor, since its control unit and even the memory controller are themselves microcontrollers with specific firmware. We may find an increase in performance of some instructions or support for faster memory through updating the firmware of the processor. However, its capabilities can also be reduced, either for security reasons or because a feature conflicts with other products from the same company.
economic benefit
Although its greatest advantage is that the possibility of performing a firmware update means that we and the manufacturer do not have to carry out replacements and repairs to solve certain problems that affect our hardware. So that saves a lot of headaches for both parties, as it saves us from having to send the device out for warranty and the manufacturer from having to deal with complex shipping and return logistics, as well as having to stop production.
In any case, updating the firmware doesn’t give it capabilities beyond what the hardware can perform on its own, but what it does do is optimize how its functions work for the make it more efficient and block or unblock its functions. We also cannot forget that the process may also involve fixing errors from previous versions of it.
How does a firmware update work?
A manufacturer can update their hardware’s firmw are in two ways, both of which depend on the type of memory used to store the firmware, as not all manufacturers want users to have easy access to their content.
Using a programmable ROM
In some cases, this is in a EEPROMwhose content can only be modified by the manufacturer using specialized tools or by replacing the chip that contains it with another of the same type, but which stores an updated version, which is the case for example graphics cards on PC.
As its name suggests, a ROM is read-only and its contents cannot be replaced by another, moreover, in many cases, they are small enough pieces that those who are not aware of the handling small electronic parts have problems handling them. In addition, its factory assembly has often been carried out by a high-precision robot.
Via internal Flash memory
Instead, most hardware typically includes firmware content in non-volatile RAM or Flash memory that resides in the device’s own embedded microcontroller. This indicates that the user does not need to manipulate the hardware to update the firmware.
Devices with direct RAM access
If we are talking about a device that has direct access to RAM, whether it is the CPU, the motherboard chipset or a PCI Express device, the update is obviously done through the DMA unit included in the component to update. Let’s not forget that what a DMA unit does is give an external device access to the RAM by temporarily blocking access to the IMC from the rest of the components in order to copy the contents of a memory physics to another. In this case, it is the memory that stores the firmware inside the controller.
The memory addresses that are specifically used to update firmware are not known to the user, but are known to the specific component and are done completely transparently to the operating system. Simply, the component to be updated periodically examines this part of RAM and stores the information. In many cases, the flash memory usually includes space for two firmware, one for the current version and one for the update. The reason? Simple, in case the update is broken and gives serious operating errors, to be able to return to the previous one.
Components without direct RAM access
In changed for devices that connect via USB or other ports that do not have direct memory access and depend on the IOMMU they just receive the firmware update directly, so there is no DMA drive in the middle of the process.
For example, a mouse or keyboard which are input devices, not output devices, but the interface they use is bi-directional. It is therefore sufficient to send them data to update their firmware or to store certain information such as the macros of the keys or buttons.
Table of Contents