Non-destructive Firmware Update via Volatile Memory Staging
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for updating firmware are often destructive, require reconfiguration of non-volatile memory, and can render systems inoperable if not executed correctly, leading to complications such as rendering the computer system unrecoverable.
Innovation Solution
The solution involves using a Baseboard Management Controller (BMC) and a RESTful interface to non-destructively update firmware components by querying for availability and retrieving updates through a hypermedia representational state transfer (REST) interface, allowing execution of updated components from main memory without altering the non-volatile memory, thus avoiding reconfiguration and ensuring system stability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional firmware update methods are used, then firmware can be updated, but the non-volatile memory device must be reconfigured and the system may become inoperable if the update fails
Solution Approach 1:
The system performs preliminary actions by copying firmware components to a temporary location in volatile memory before making any changes to the non-volatile memory. This allows the update to be prepared and validated beforehand, ensuring that the original firmware remains intact and the system can recover if the update fails.
Solution Approach 2:
The patent creates a copy of the firmware component in volatile memory (main memory) rather than directly modifying the firmware in non-volatile memory. This copying approach allows updates to be tested and validated in the temporary copy before committing changes, eliminating the risk of rendering the system inoperable.
2Productivity
If firmware components are updated by erasing and rewriting non-volatile memory, then the firmware can be updated, but the entire memory section must be erased even if only a small component needs updating
Solution Approach 1:
The patent segments the firmware into discrete, independently updateable components stored as separate files in the firmware file system. This allows individual components to be updated without affecting other firmware components, enabling selective updates rather than requiring erasure of entire memory sections.
Solution Approach 2:
The patent extracts the specific firmware component that needs updating from the larger firmware set and places it in a separate temporary location in volatile memory. This extraction allows the update to be applied only to the necessary component without touching the rest of the firmware in non-volatile memory.
3Ease of operation
If firmware updates are performed during system operation, then updates can be applied without service interruption, but the update process becomes more complex and risky
Solution Approach 1:
The patent introduces volatile memory as an intermediary between the firmware in non-volatile memory and the executing firmware in the system. This intermediary layer simplifies the update process by providing a safe staging area where updates can be prepared and validated before being activated, reducing the complexity and risk of in-operando updates.
Solution Approach 2:
The system prepares for potential update failures by maintaining the original firmware intact in non-volatile memory while preparing updates in volatile memory. This beforehand cushioning ensures that if the update process encounters errors, the system can simply continue using the original firmware without requiring complex recovery procedures.
Data Source
AI summary
Non-destructive update of discrete firmware components of a firmware is provided. During a boot-up process, the availability of an update for the firmware can be determined prior to execution thereof. To that end, a controller device can be queried for availability of the update and, when the update is available, a processor that executes the firmware as part of the boot-up process can retrieve an updated version of one or more components of the firmware from a virtual drive device provided by the controller device. The processor can retain such component(s) in a main memory device. The processor can then execute the component(s) from the main memory and can execute other non-updated component(s) of the firmware from a non-volatile memory device that retains the firmware. Therefore, the firmware can be updated during the boot-up process, without changing the contents of the non-volatile memory device.


