Dual Memory Firmware Update for Closed Storage Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing IC card firmware update methods often result in incomplete updates, leading to card failure and inconvenience, as the updated application may lack necessary code, and require resetting to initial settings when updates fail.
Innovation Solution
A method for updating firmware in closed storage devices with two memories, where one memory remains locked with the old version as a boot loader, allowing transactions to continue even if the new version application has bugs, and automatically switching back to the old version if the new update fails, ensuring continuous functionality.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the memory updates the application using the new version firmware image file, then the application can be improved with new features and bug fixes, but the IC card may fail if the update is incomplete or the new version has bugs
Solution Approach 1:
The memory is divided into two separate memory units (first memory and second memory) that can store different versions of the application independently. This segmentation allows the system to maintain both old and new versions simultaneously, enabling fallback to the old version if the new version fails, thus resolving the contradiction between updating for improvement and maintaining reliability.
Solution Approach 2:
The system changes the state parameter of the memory by introducing a locked state. When one memory is being updated, it is locked to prevent execution, while the other memory remains unlocked and executable. This parameter change ensures that the card can always execute from a valid memory, preventing failure even when updates are in progress or fail.
2Adaptability or versatility
If the update process is performed, then the application can be updated to a newer version, but the card may require resetting to initial settings if the update fails
Solution Approach 1:
The system performs preliminary actions by preparing two memory units before the update process. One memory is locked and contains the old version, while the other is unlocked and receives the new version. This preliminary setup ensures that if the update fails, the system can immediately switch to the old version without requiring resetting, thus maintaining user convenience while enabling version updates.
Solution Approach 2:
The bootstrap loader acts as an intermediary that manages the execution between the first and second memories. It determines which memory to execute based on the locked/unlocked state, enabling seamless switching between versions without user intervention or resetting, thereby resolving the contradiction between adaptability and ease of operation.
3Reliability
If two memories are provided for alternate updating, then continuous transaction capability is maintained, but the device complexity increases
Solution Approach 1:
Both the first and second memories are designed with identical structure and functionality, each capable of storing and executing the application. This universality means that either memory can serve as the active execution memory, simplifying the overall design despite having two memories. The bootstrap loader universally manages both memories using the same locked/unlocked state mechanism, reducing control complexity.
Solution Approach 2:
The system uses a simple binary state parameter (locked/unlocked) to manage the two memories. This parameter change approach provides a clear, unambiguous mechanism for controlling which memory is active, reducing the complexity of memory management despite having dual memories. The locked state clearly indicates update-in-progress or invalidation, while unlocked indicates executable status.
Data Source
AI summary
A method of updating firmware of closed storage device includes the steps of connecting an electronic device to a closed storage device having built-in first and second memories and bootstrap loader, and the first memory storing a first application that is set by the bootstrap loader as a default boot loader; the electronic device downloading a second application having a different version from the first application and setting the first memory to a locked state; the electronic device transmitting the second application to the second memory via the bootstrap loader and the second memory is updated when the second application is written thereinto; and the bootstrap loader setting the second application as the boot loader. The two applications of different versions in the closed storage device are updated alternately, and the old application can still be used as the boot loader when the update of the other application has failed.


