Non-Volatile Memory Update Sequence for Firmware Reliability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Firmware update processes in information processing apparatuses with both code and setting data areas on a non-volatile memory face challenges due to potential power disconnections, leading to incomplete updates and data corruption, which can result in the apparatus failing to activate normally, especially when digital signature verification is not available for the setting data area.
Innovation Solution
The solution involves acquiring update data for the non-volatile memory, deleting a portion of the program in the code area before updating the data area, and completing the update process for the code area after updating the data area, thereby enhancing failure tolerance against forced interruptions during the update process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the firmware update process updates both code area and setting data area simultaneously, then the update efficiency is improved, but the reliability deteriorates due to potential power disconnection causing incomplete updates and data corruption
Solution Approach 1:
The update process is divided into two sequential phases: first updating the setting data area, then updating the code area. This segmentation ensures that each area is updated completely before moving to the next, preventing partial updates that could cause system failure. The setting data area is updated first because it contains configuration information needed for the update process, and only after this is complete does the system proceed to update the code area.
Solution Approach 2:
The setting data area is updated before the code area in the update sequence. This preliminary action ensures that all configuration data and parameters required for the code update are already in place and consistent before the code itself is modified. This ordering prevents scenarios where code updates occur without corresponding data area updates, which would cause activation failures.
2Ease of operation
If the code area is updated before the setting data area, then the update process follows traditional sequence, but the reliability worsens because power disconnection during code update leaves the system in an inconsistent state
Solution Approach 1:
The traditional update sequence is inverted: instead of updating the code area first and then the setting data area, the patent updates the setting data area first and then the code area. This inversion ensures that the foundation data is established before building upon it with code updates, preventing inconsistent states where code references data that hasn't been updated yet. This reversal of the traditional sequence is the core innovation that solves the reliability problem.
3Measurement precision
If digital signature verification is used for the code area, then data corruption detection is improved, but the setting data area remains vulnerable without similar verification mechanisms
Solution Approach 1:
The update process design makes the setting data area update a prerequisite for code area update, creating a universal dependency relationship. This multi-functional approach serves dual purposes: it ensures data consistency by establishing the data area first, and it indirectly protects the setting data area by making its update mandatory before code updates can proceed. This creates a systematic safeguard that complements the digital signature verification already in place for the code area.
Data Source
AI summary
The present information processing apparatus comprises a non-volatile memory that has a first portion including a code area configured to hold a program and a data area configured to hold data. In addition, the information processing apparatus acquires update data of a first portion, and updates the first portion with the acquired update data. In the updating process, at least a portion of the program held in the code area is deleted before updating the contents of the data area, and after updating the contents of the data area, updating to the code area is completed.


