This invention relates to an apparatus and method to update multiple hardware components disposed in a computing system.
Computing systems generate information, access information, and store information, using a plurality of hardware components, where each of those hardware components comprise one or more devices. Those devices generally comprise a processor and a firmware image comprising microcode, instructions, and the like. The processor utilizes the firmware image to operate the device.
Every so often it is necessary to update the firmware image disposed in a plurality of devices disposed in the computing system. Using prior art methods, the device being upgraded can be rendered inoperable if the firmware image update is not successfully installed. What is needed is a method to increase the reliability of a firmware image update by ensuring that the device being updated is not corrupted by an unsuccessful download of the firmware image update.
Applicants' invention comprises a method to update firmware disposed in multiple devices sharing a common address in a computing system. The method supplies a computing system comprising an assembly having a single address in the computer system, wherein that assembly further comprises a first controller comprising a first firmware image, a first external memory interconnected with that first controller, a second controller comprising the first firmware image, a second external memory interconnected with the second controller, a first communication link comprising the address and interconnecting said first controller and said second controller, wherein that management module is in communication with the first communication link, and a second communication link interconnecting the first controller and the second controller.
The method provides a second firmware image to the address, the first controller writes the second firmware image to the first external memory and provides the second firmware image to the second controller using the second communication link. The method then writes the second firmware image to the second external memory, installs the second firmware image in the second controller, and installs the second firmware image in the first controller.
The invention will be better understood from a reading of the following detailed description taken in conjunction with the drawings in which like reference designators are used to designate like elements, and in which:
This invention is described in preferred embodiments in the following description with reference to the Figures, in which like numbers represent the same or similar elements. Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
The described features, structures, or characteristics of the invention may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are recited to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
Applicants' invention comprises a method to update firmware disposed in multiple devices sharing a common address in a computing system. Applicants' invention is described herein in embodiments wherein a firmware image update is provided to a plurality of assemblies, wherein each of those assemblies is in communication with a management module, and wherein each of those assemblies comprises two controllers. In certain embodiments, Applicants' invention comprises a method to update firmware disposed in multiple devices disposed in a computing device assembly, wherein that computing device assembly comprises a single address in a computing system.
In the illustrated embodiment of
In the illustrated embodiment of
In the illustrated embodiment of
As a general matter, hosts computers 102, 104, and 106, each comprises a computer system, such as a mainframe, personal computer, workstation, and combinations thereof, including an operating system such as Windows, AIX, Unix, MVS, LINUX, etc. (Windows is a registered trademark of Microsoft Corporation; AIX is a registered trademark and MVS is a trademark of IBM Corporation; UNIX is a registered trademark in the United States and other countries licensed exclusively through The Open Group; and LINUX is a registered trademark of Linus Torvald). In certain embodiments, one or more of host computers 102, 104, and/or 106, further includes a storage management program. In certain embodiments, that storage management program may include the functionality of storage management type programs known in the art that manage the transfer of data to and from a data storage and retrieval system, such as for example and without limitation the IBM DFSMS implemented in the IBM MVS operating system.
In the illustrated embodiment of
In the illustrated embodiment of
In certain embodiments, fabric 110 includes, for example, one or more switches 115. In certain embodiments, those one or more switches 115 comprise one or more conventional router switches. In the illustrated embodiment of
In other embodiments, one or more host computers, such as for example and without limitation host computers 102, 104, and 106, communicate directly with management module 120 using I/O protocols 103, 105, and 107, respectively. In certain embodiments, each host computer communicates with management module 120 via a different web server.
For the sake of clarity
Referring now to
Controllers 134 and 136 are interconnected by communication bus 210, wherein communication bus 210 comprises a single address known to management module 120, and wherein communication bus 210 is in communication with communication link 132. Communication bus 210 may comprise any I/O protocol known to those skilled in the art, including for example and without limitation an RS232, RS422, RS423, or RS485 bus. Controllers 134 and 136 are interconnected by communication bus 220. Communication bus 220 may comprise any I/O protocol known to those skilled in the art, including for example and without limitation an RS232, RS422, RS423, or RS485 bus.
In the illustrated embodiment of
In the illustrated embodiment of
In step 320, Applicant' method provides a plurality of data packets comprising a firmware image update to one of the assemblies of step 310, such as for example and without limitation data storage device assembly 130 (
In step 330, one of the two or more controllers, such as and without limitation controller 134 (
If Applicant' method determines in step 350 that the firmware image update download is not complete, then the method transitions from step 350 to step 330 and continues as described herein. Alternatively, if Applicant' method determines in step 350 that the firmware image update download is complete, then the method transitions from step 350 to step 360 wherein the method attempts to verify the integrity of the firmware image update. In certain embodiments, step 360 is performed by a processor, such as for example and without limitation processor 254 (
In step 370, Applicant' method determines if the integrity of the downloaded firmware image update could be verified. In certain embodiments, step 370 is performed by a processor, such as for example and without limitation processor 254 (
If Applicant' method determines in step 370 that the integrity of the downloaded firmware image update could not be verified, then the method transitions from step 370 to step 320 and continues as described herein. Alternatively, if Applicant' method determines in step 370 that the integrity of the downloaded firmware image update could be verified, then the method transitions from step 370 to step 380 wherein the receiving controller of step 330 provides the firmware image update to a second controller disposed in the data storage device assembly of step 320. Applicant' method transitions from step 380 to step 405 (
Referring now to
If Applicant' method elects in step 410 not to synchronously write the firmware image update to an external memory interconnected with the second controller and install the firmware image update in that second controller, then the method transitions from step 410 to step 415 wherein the second controller of step 380 writes the firmware image update to an interconnected external memory, such as and without limitation external memory 240 (
In step 420, Applicant' method attempts to verify the integrity of the firmware image update written to an external memory in step 415. In certain embodiments, step 420 is performed by a processor, such as for example and without limitation processor 234 (
In step 425, Applicant' method determines if the integrity of the downloaded firmware image update written to an external memory in step 415 could be verified. In certain embodiments, step 425 is performed by a processor, such as for example and without limitation processor 234 (
If Applicant' method determines in step 425 that the integrity of the downloaded firmware image update written to an external memory in step 415 could not be verified, then the method transitions from step 425 to step 380 and continues as described herein. Alternatively, if Applicant' method determines in step 425 that the integrity of the downloaded firmware image update written to an external memory in step 415 could be verified, then the method transitions from step 425 to step 430 wherein the original receiving controller of step 330 instructs the second controller of step 380 to install the firmware image update. In certain embodiments, step 430 is performed by a processor disposed in the first controller of step 330.
In step 435, the second controller installs the firmware image update. In certain embodiments, step 435 comprises overwriting an existing firmware image, such as firmware image 232, with the firmware image update. In certain embodiments, step 435 further comprises placing the second controller in an installation mode wherein that second controller is not operational during the firmware image update installation. In certain embodiments, step 425 further comprises rebooting the second controller after installation of the firmware image update. Applicant' method transitions from step 435 to step 455.
If Applicant' method elects in step 410 to synchronously write the firmware image update to an external memory interconnected with the second controller and install that firmware image update in the second controller, then the method transitions from step 410 to step 440 wherein the method writes the firmware image update to an external memory, such as external memory 240 (
In certain embodiments, step 440 comprises overwriting an existing firmware image, such as firmware image 232, with the firmware image update. In certain embodiments, step 440 further comprises placing the second controller in an installation mode wherein that second controller is not operational during the firmware image update installation. In certain embodiments, step 440 further comprises rebooting the second controller after installation of the firmware image update.
Applicant' method transitions from step 440 to step 445 wherein the method attempts to verify the integrity of the firmware image update written to an external memory in step 440. In certain embodiments, step 445 is performed by a processor, such as for example and without limitation processor 234 (
In step 450, Applicant' method determines if the integrity of the firmware image update written to an external memory in step 440 could be verified. In certain embodiments, step 450 is performed by a processor, such as for example and without limitation processor 234 (
If Applicant' method determines in step 450 that the integrity of the firmware image update written to an external memory in step 440 could not be verified, then the method transitions from step 450 to step 380 and continues as described herein. Alternatively, if Applicant' method determines in step 450 that the integrity of the downloaded firmware image update written to an external memory in step 440 could be verified, then the method transitions from step 450 to step 455 wherein the second controller signals the first controller of step 330 that the firmware image update installation is complete. In certain embodiments, step 455 is performed by a processor disposed in the second controller.
Applicant' method transitions from step 455 to step 460 wherein the method installs the firmware image update in the first controller of step 330, such as and without limitation controller 134 (
Applicant' method transitions from step 460 to step 465 wherein the first controller of step 330 signals a management module, such as management module 120 (
In certain embodiments, individual steps recited in
In certain embodiments, Applicant' invention includes instructions residing in computer readable medium, such as for example memory 121 (
In other embodiments, Applicant' invention includes instructions residing in any other computer program product, where those instructions are executed by a computer external to, or internal to, system 100, to perform one or more of steps 330, 340, 350, 360, 370, and/or 380, recited in
While the preferred embodiments of the present invention have been illustrated in detail, it should be apparent that modifications and adaptations to those embodiments may occur to one skilled in the art without departing from the scope of the present invention as set forth in the following claims.