METHOD AND SYSTEM FOR MODIFYING FIRMWARE IMAGE SETTINGS WITHIN DATA STORGAE DEVICE CONTROLLERS
First Claim
1. A method for modifying firmware settings within a data storage controller, wherein the data storage controller has stored therein at least one firmware image that includes a plurality of sub-modules, and wherein each sub-module includes a sub-module header and a compressed image, the method comprising the steps of:
- extracting at least one of the sub-modules from the firmware image;
stripping the sub-module header from the extracted sub-module;
decompressing the compressed image of the extracted sub-module, using a decompression-enabling extended image header, to generate a decompressed image, wherein the decompressed image includes executable code including a code header and at least one settings group having at least one settings group value therein;
separating the executable code and the at least one settings group;
reinitializing the executable code in such a way that the executable code becomes a valid image;
modifying at least one value of at least one settings group to form a modified version of the original settings group;
creating a modified sub-module using the reinitialized executable code and the modified version of the original settings group; and
inserting the modified version of the original settings group into the firmware image in such a way that the original settings group extracted from the firmware image is replaced by the modified version of the original settings group to form a modified firmware image, wherein the modified firmware image represents a modification of the firmware settings within the data storage controller.
6 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the invention include a method for modifying firmware settings within a data storage controller, such as a data storage controller used in a Redundant Array of Inexpensive Disks (RAID) storage array. The method includes extracting a sub-module from a firmware image stored in the controller, stripping off the sub-module'"'"'s header, decompressing the remaining compressed image by replacing the stripped sub-module header and an extended image header in the compressed image with an extended header image that allows conventional decompression, and separating the decompressed image into its executable code and at least one settings group. The method reinitializes the executable code to restore its validity, modifies one or more values of one or more settings groups, creates a new sub-module using the reinitialized executable code and the modified settings groups, and replaces the original settings groups in the firmware image with the modified settings groups, thereby modifying the firmware settings of the data storage controller.
-
Citations
20 Claims
-
1. A method for modifying firmware settings within a data storage controller, wherein the data storage controller has stored therein at least one firmware image that includes a plurality of sub-modules, and wherein each sub-module includes a sub-module header and a compressed image, the method comprising the steps of:
-
extracting at least one of the sub-modules from the firmware image; stripping the sub-module header from the extracted sub-module; decompressing the compressed image of the extracted sub-module, using a decompression-enabling extended image header, to generate a decompressed image, wherein the decompressed image includes executable code including a code header and at least one settings group having at least one settings group value therein; separating the executable code and the at least one settings group; reinitializing the executable code in such a way that the executable code becomes a valid image; modifying at least one value of at least one settings group to form a modified version of the original settings group; creating a modified sub-module using the reinitialized executable code and the modified version of the original settings group; and inserting the modified version of the original settings group into the firmware image in such a way that the original settings group extracted from the firmware image is replaced by the modified version of the original settings group to form a modified firmware image, wherein the modified firmware image represents a modification of the firmware settings within the data storage controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A data storage controller device, comprising:
-
an interface configured to couple the data storage controller device to at least one data storage device; and a controller coupled to the interface and configured to read data from and write data to the at least one data storage device, wherein the controller has stored therein at least one firmware image that includes a plurality of sub-modules, wherein each sub-module includes a sub-module header and a compressed image, and wherein the compressed image includes an extended image header therein, wherein the controller is configured to extract at least one of the sub-modules from the firmware image, strip the sub-module header from the extracted sub-module, decompress the compressed image of the extracted sub-module, using a decompression-enabling extended image header, to generate a decompressed image, wherein the decompressed image includes executable code including a code header and at least one settings group having at least one settings group value therein, separate the executable code and the at least one settings group, reinitialize the executable code in such a way that the executable code becomes a valid image, modify at least one value of at least one settings group to form a modified version of the original settings group, create a modified sub-module using the reinitialized executable code and the modified version of the original settings group, and insert the modified version of the original settings group into the firmware image in such a way that the original settings group extracted from the firmware image is replaced by the modified version of the original settings group to form a modified firmware image, wherein the modified firmware image represents a modification of the firmware settings within the data storage controller. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 20)
-
-
19. A computer readable medium storing instructions that carry out a method for modifying firmware settings within a data storage controller, wherein the data storage controller has stored therein at least one firmware image that includes a plurality of sub-modules, wherein each sub-module includes a sub-module header and a compressed image, and wherein the compressed image includes an extended image header therein, the computer readable medium comprising:
-
instructions for extracting at least one of the sub-modules from the firmware image; instructions for stripping the sub-module header from the extracted sub-module; instructions for decompressing the compressed image of the extracted sub-module, using a decompression-enabling extended image header, to generate a decompressed image, wherein the decompressed image includes executable code including a code header and at least one settings group having at least one settings group value therein; instructions for separating the executable code and the at least one settings group; instructions for reinitializing the executable code in such a way that the executable code becomes a valid image; instructions for modifying at least one value of at least one settings group to form a modified version of the original settings group; instructions for creating a modified sub-module using the reinitialized executable code and the modified version of the original settings group; and instructions for inserting the modified version of the original settings group into the firmware image in such a way that the original settings group extracted from the firmware image is replaced by the modified version of the original settings group to form a modified firmware image, wherein the modified firmware image represents a modification of the firmware settings within the data storage controller.
-
Specification