PCIe Device Firmware Update Without Host Reset
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for updating firmware on PCIe devices require resetting the host and device, leading to long downtimes and increased power consumption.
Innovation Solution
A method for live and seamless firmware updates using a PCIe bus, where the host copies the updated firmware to a reserved memory block accessible by the device, allowing the device to switch to the new version without restarting, by using memory mapping and interrupt handling to facilitate chunked copying and context switching.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If firmware update is performed using traditional methods, then firmware can be updated, but host and device must be reset causing long downtime
Solution Approach 1:
The patent segments the firmware update process into multiple chunks that are transferred separately through the PCIe bus. Each chunk is copied to a reserved memory block in the device, allowing the update to proceed without resetting the host or device. This segmentation enables continuous operation during the update process.
Solution Approach 2:
The patent performs preliminary actions by reserving a memory block in the device before the actual firmware update begins. This reserved memory block is prepared in advance to receive the firmware chunks, enabling seamless switching to the new firmware without interruption to the host or device operation.
2Reliability
If firmware update is performed using traditional methods, then firmware can be updated, but power consumption increases due to restarts
Solution Approach 1:
The firmware update is divided into chunks transferred through the PCIe bus, allowing the device to remain powered and operational throughout the update process. This eliminates the need for complete system restarts that would cause spikes in power consumption.
Solution Approach 2:
The patent maintains continuous operation of both host and device during the firmware update by transferring firmware chunks in the background. The device continues to process requests from the host while receiving firmware updates, ensuring uninterrupted useful action and stable power consumption.
3Loss of time
If memory mapping is used for firmware transfer, then seamless update is enabled, but device complexity increases
Solution Approach 1:
The patent utilizes the existing PCIe bus capabilities for memory-mapped I/O, which are already standard features of PCIe devices. By leveraging these universal, built-in capabilities rather than implementing custom memory mapping logic, the solution achieves seamless updates without significantly increasing device complexity.
Data Source
AI summary
Techniques for updating code of a device may be described. In an example, bus may connect the device to a management entity. The device may run a first version of the code. A second version of the code may be available from memory. The device may access the second version from the memory, stop running the first version of the code, and start running the second version of the code without restarting the management entity or the device.


