Browse Prior Art Database

Method for Realtime Recovery of Interrupted Asynchronous Firmware Update Disclosure Number: IPCOM000032413D
Original Publication Date: 2004-Nov-03
Included in the Prior Art Database: 2004-Nov-03
Document File: 2 page(s) / 29K

Publishing Venue



The act of updating firmware on the port controller flash may be interrupted due to an external interrupt or some other event. In this situation, the firmware update process is at risk of being in such a state as to leave the adapter (specifically the port flash) in a non-working state. This invention handles the interrupt in such a way as to recover the firmware to prevent a service action.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 71% of the total text.

Page 1 of 2

Method for Realtime Recovery of Interrupted Asynchronous Firmware Update

Our port firmware is comprised of several images stored on a flash device. In order to function, two of these images must be intact - the kernel image and the functional code image. During asynchronous update of port firmware, the adapter is exposed to a failure which could render the card unusable. If the kernel image burn is interrupted due to an error elsewhere in the box (i.e. warmstart), the card will be rendered useless and have to be replaced. The exposure is magnified when we perform the burn at the same time we are running I/O.

To counteract this fatal error, we developed a process to detect the failure and attempt a recovery. When the firmware update of the kernel begins we turn on the kernel update in progress indicator. Once the kernel update is complete the kernel update in progress indicator will be turned off. If an interrupt occurs then the recovery process starts. During the interrupt processing the algorithm will determine what the last step performed by investigating the interface to the update process. Once it determine the current phase of the process it then determines if there was a failure for the previous step, the previous step was successful or if the previous step is still in progress.

If the previous step failed then the recovery fails. If the previous step was successful, then the update process will be continued until completed or time-out occurs. If the previo...