Patent ID: 7600055

Claim:
An apparatus to copy firmware, the apparatus comprising: a primary controller having a first memory device and a first communication address on a shared communication path and managing subordinate devices; a secondary controller having a second memory device and a secondary communication address on the shared communication path identical to the first communication address, the primary controller in communication with a management module over the shared communication path and the secondary controller disabled from communicating with the management module over the shared communication path and not activated to manage the subordinate devices; the management module placing the primary controller in standby mode and activating the secondary controller, wherein the primary controller is in communication with the management module and does not manage the subordinate devices, the secondary controller is disabled from communicating with the management module, and the secondary controller manages the subordinate devices, the management module further writing a firmware image to the first memory device; the primary controller placing the secondary controller in suspend mode; an update module, after the secondary controller is in suspend mode, writing a copy of the firmware image from the first memory device to the second memory device in a manner that is transparent to the management module in response to the management module writing the firmware image to the first memory device; the secondary controller rebooting while the primary controller is in standby mode and the secondary controller not managing the subordinate devices in response to the copy of the firmware image written to the second memory device and notifying the primary controller that the copy of the firmware image is successfully received; and the primary controller activating to manage the subordinate devices and placing the secondary controller in the standby mode in response to the notification from the secondary controller, wherein the secondary controller does not manage the subordinate devices.