NOR Flash Improves Over-the-air Firmware Updates | Cypress Semiconductor
NOR Flash Improves Over-the-air Firmware Updates
The following post contains excerpts from an article published in Embedded in March 2019.
There’s a saying that there isn’t anything so good that there isn’t some bad in it, and there isn’t anything so bad, that there isn’t some good in it. That sums up the increasing number of connected devices. Yes, while being connected makes these devices more vulnerable to attack, however, we see that as an opportunity to make them safe and secure.
Firmware over-the-air (FOTA) updates are used to remotely fix bugs and make system enhancements. FOTA is especially useful for applications that are in remote areas or may need ongoing updates due to the nature of the application, including wireless infrastructure, smart factories, and connected cars. The use of FOTA is gaining momentum, thanks to advances in system connectivity and an industry shift toward more programmable silicon architectures. What’s more, nonvolatile memories have become more reliable, safe, and secure, and make FOTA updates quick and seamless.
Mission-critical systems require extra care when enabling FOTA as they can’t afford to fail during the update process. For these systems, the process must be immune to communication errors and require minimal system pauses during the update process. To ensure reliability, the ability to implement this feature at the system level is mandatory and requires the silicon to have robust FOTA features.
Each device requires storage to hold the software/firmware code, and flash memory is commonly the medium of choice. The primary purpose of the FOTA process is to update that code in the flash memory. Current-generation host devices typically use only internal flash or a combination of internal and external flash. However, as the system complexity increases, it becomes harder to embed flash with the MCU, and most likely will require external flash with a host that can perform FOTA updates.
FOTA update methods that are currently used are as follows:
- FOTA update without software/firmware backup: With this method, the system uses a single flash device to store the application software. With only a single flash device, the application needs to be paused during the update procedure. Such applications typically have a host MCU with basic features and limited memory.
- FOTA update with software/firmware backup: In this scenario, a higher-end MCU adds a second flash device to overcome the need to pause the application during the update. The additional flash allows the application to continue while the update is made.
- FOTA update with "golden" software/firmware backup: With this approach, the system uses three flash memory devices. Typically, one partition (or die) contains the current software, the second is reserved for the updated code, and the third is used to store a “golden” copy of the software that the system can revert to if the current and new software becomes corrupted.
NOR Flash Designed for FOTA
NOR flash devices are designed to enable more reliable FOTA updates, including:
- Simultaneous Read/Write Operation: The most-advanced NOR flash devices have a flexible bank architecture (i.e., group of sectors) where data can be continuously read from one bank, while executing erase/program functions in another bank. This is known as simultaneous read/write operation and is ideal for the FOTA update process. It improves overall system performance by allowing a host system to program or erase in one bank, then immediately and simultaneously read from another bank. As a result, it can prevent a system from stalling while it waits for the program or erase operations.
- Program/Erase Resume/Suspend: This is another important feature of NOR flash that can greatly improve the reliability of FOTA operations. It allows the system to interrupt a program/erase operation so that data can be read from any non-program/erase suspended sector and, once the read operation is complete, resume the program/erase operation.
- Globally Unique Identifiers (GUID) Partition Table: To use this method with a NOR flash device, the host needs to partition the flash memory. The flash device contains a primary (and secondary in case the primary becomes corrupted) partition table that describes how the memory is divided and portioned. The remaining sectors are divided between the two applications.
- Store and Download (SnD): With this approach, the system copies the NOR flash data to a RAM device immediately after power up. After the MCU copies and stores the data from the NOR flash device to the RAM device, it reads the software from the RAM device for the application and can perform the FOTA update in the flash using any of the three FOTA update approaches.
With features such as high-performance and density, a multi-die packaging solution and simultaneous operation, NOR flash devices enable robust and reliable FOTA updating, while saving board space and reducing overall cost. That’s why Cypress has doubled down on NOR flash for connected applications and autonomous vehicles.
Learn more about our Semper NOR flash portfolio by visiting: https://www.cypress.com/event/semper-nor-flash