Write-Abort-Safe Firmware Update via Directory Indirection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory devices face challenges in performing write-abort-safe firmware updates due to limited functionality of ROM code and the separation of firmware storage blocks, making it difficult to manage firmware updates in a 'make-before-break' fashion, especially when firmware is stored redundantly.
Innovation Solution
The implementation of a memory device with two levels of indirection, where the boot block points to a directory that contains a pointer to the firmware, allowing for a simpler and atomic firmware update process by allocating a new location for the firmware update and writing a pointer to the directory in the boot block, ensuring operational integrity in case of a write abort.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If firmware is stored in physical blocks outside user space with ROM code having limited functionality, then the ROM code can locate and load the firmware, but it becomes difficult to perform write-abort-safe firmware updates in a make-before-break fashion
Solution Approach 1:
The patent introduces a directory structure as an intermediary layer between the boot block and firmware data. The boot block contains a pointer to the directory, which in turn contains pointers to firmware locations. This intermediary directory structure enables atomic firmware updates by allowing the system to update firmware pointers without modifying the boot block itself, thus achieving write-abort-safe updates while maintaining simple ROM code functionality.
2Reliability
If firmware is stored redundantly for reliability, then the system can tolerate failures, but performing write-abort-safe updates becomes more difficult due to the need to manage multiple firmware copies
Solution Approach 1:
The patent segments the firmware storage system into distinct components: boot blocks (containing directory pointers), directories (containing firmware location pointers), and firmware data blocks. This segmentation allows redundant firmware copies to be managed independently through the directory structure, where each firmware location is tracked separately. Updates can be performed on individual firmware copies without affecting the overall update process, simplifying the management of redundant firmware while maintaining reliability.
3Reliability
If a traditional firmware update approach is used without directory indirection, then the update process can be straightforward, but the system cannot ensure operational integrity in case of write aborts
Solution Approach 1:
The patent implements preliminary action by pre-allocating directory structures and firmware location pointers before actual firmware updates occur. The boot block is pre-configured with a pointer to the directory structure, which is prepared in advance to hold firmware location information. During updates, only the directory pointers need to be modified, not the entire boot block, allowing atomic updates that maintain operational integrity while minimizing the complexity of pointer management.
Data Source
AI summary
A memory device and method for performing a write-abort-safe firmware update are disclosed. In one embodiment, a location in a memory of a memory device for a firmware update is allocated. The firmware update is written into the allocated location in the memory. A pointer is written to the firmware update in a directory, and a pointer is written to the directory in a location in the memory that is read during boot-up. In another embodiment, a block in a memory of a memory device is allocated for updated file system data comprising a firmware update and a directory. The updated file system data is written into the allocated location in the memory. A pointer is written to the firmware update in the directory, and a pointer is written to the updated file system data in a boot block in the memory, wherein the boot block is read during boot-up.


