How NOR flash technology is making over-the-air firmware updates more reliable
Firmware over-the-air (FOTA) updates are required to remotely fix bugs and make enhancements to systems, including introducing new features and services. FOTA updates are ideal for applications that are fielded in remote areas or may need ongoing updates due to the nature of the application, including wireless infrastructure, smart factories, and connected cars. A typical system will include a processing unit with nonvolatile memory to boot and configure the processing unit. The use of FOTA is gaining momentum, thanks to advances in system connectivity and an industry shift toward more programmable silicon architectures that allow seamless FOTA as nonvolatile memories become more reliable, safe, and secure.
A Requirement for Mission-Critical Systems
A reliable FOTA update process is required for mission-critical applications that cannot afford to fail during the update process. Thus, the update process must be immune to communication errors and require very few system pauses during updating. For many applications, it is not economically feasible to send a technician out to a system in the field for reprogramming. Similarly, automakers cannot afford to recall all affected vehicles to update software. For these and other reasons, over-the-air updating continues to gain momentum. To ensure reliability, the ability to implement this feature at the system level is mandatory and requires the silicon inside the system to have reliable FOTA features. Figure 1 details the advantages of FOTA technology.
click for larger image
Figure 1. Advantages of FOTA (Source: Cypress)
Flash memory devices are commonly used in systems to store software/firmware code. The primary purpose of the FOTA process is to update the code in the Flash memory. Current-generation host devices typically use only internal Flash or a combination of internal and external Flash to store the data and code. However, modern semiconductor technology faces challenges in scaling and cost as system complex continues to rise, making it increasingly difficult to embed Flash memory within the host MCU, as has been typically done in automotive and industrial applications. Embedded Flash will likely hit a wall at 28nm or 22nm. Beyond that, external Flash will become necessary and the host will need to be able to perform FOTA updates with external Flash devices only.
FOTA Update Methods
There are several ways to implement FOTA updates using NOR Flash. The first is the FOTA update without software/firmware backup.
In this architecture, the system uses a single Flash device or partition to store application software. With this approach, the application needs to be paused during the software update procedure because the system can either run the application from the Flash or update the software. Such applications typically have a host MCU with basic features and limited memory.
A second FOTA update option includes software/firmware backup. In this scenario, a higher-end MCU and additional Flash memory are used to overcome the drawback of needing to pause the system during updating. With this architecture, the system uses two Flash devices or partitions where it can run the application from one Flash/partition and update the other in parallel.
A third update method includes a “golden” software/firmware backup copy. With this FOTA update method, the system uses three Flash memory devices or partitions. Typically, one partition (or die) contains the current software. A second partition is reserved for the code to be updated (or that has been updated by FOTA). A third partition is used to store a “golden” copy of the software that the system can be revert back to if the current and new software become corrupted. Table 1 summarizes the advantages and disadvantages of each of these approaches.
Table 1. Advantages & Disadvantages of Different FOTA Architectures
FOTA Update Without Software/Firmware Backup
FOTA Update with Software/Firmware Backup
System needs an advanced host (e.g. MCU with bootloader) and additional memory to store the previous software
|FOTA Update with “Golden” Software/Firmware Backup Copy||
System needs an advanced host such as an MCU with bootloader, and additional memory to store both the previous software and the golden software copy