US20060136710A1 - Allowing or disallowing firmware upgrade based on comparison of firmware-related bits - Google Patents
Allowing or disallowing firmware upgrade based on comparison of firmware-related bits Download PDFInfo
- Publication number
- US20060136710A1 US20060136710A1 US11/020,595 US2059504A US2006136710A1 US 20060136710 A1 US20060136710 A1 US 20060136710A1 US 2059504 A US2059504 A US 2059504A US 2006136710 A1 US2006136710 A1 US 2006136710A1
- Authority
- US
- United States
- Prior art keywords
- firmware
- series
- bit
- bits
- computer system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Definitions
- the present invention relates generally to upgrading the firmware of a computer system with a new firmware image, and more particularly to determining whether to allow or disallow the upgrade based on comparing firmware-related bits of the firmware of the computer system with corresponding bits associated with the new firmware image.
- the firmware of a computer system can be considered a category of computer program code and data that is stored on non-volatile memories that hold their content without electrical power.
- non-volatile memories include read-only memories (ROM's), programmable ROM's (PROM's), electrically programmable ROM's (EPROM's), and electrically erasable and programmable ROM's (EEPROM's).
- ROM's read-only memories
- PROM's programmable ROM's
- EPROM's electrically programmable ROM's
- EEPROM's electrically erasable and programmable ROM's
- BIOS basic input/output system
- the BIOS may be considered an essential set of computer program routines, which are stored in a non-volatile memory and provide an interface between the operating system and the hardware.
- the BIOS supports peripheral technologies and internal services such as a realtime time-and-date clock.
- the firmware of a computer system may have to be periodically updated, or upgraded, to keep pace with new peripheral technologies, or to correct bugs present in the current firmware. If the firmware is stored on a ROM, it has to be physically replaced. However, if the firmware is stored on an EPROM or an EEPROM, it can be upgraded via software, by a new firmware image being loaded into the EPROM or EEPROM.
- firmware is common across a number of different types of computer systems, for a variety of reasons.
- having a common firmware decreases costs borne on users, especially information technology (IT) administrators, who otherwise have to manage separate firmware for different types of computer systems.
- having a common firmware decreases the number of firmware download pages on web sites throughout the world. Having a common firmware for a number of different types of computer systems also decreases the number of different items that have to be managed in factories, and that have to be addressed during development and test processes.
- a new firmware image may not be compatible with one or more specific types of computer systems.
- this strategy increases costs, for the reasons described in the previous paragraph.
- a “read me” or other type of file may be provided with a firmware update package, or another type of change history file may be provided. Therefore, users are able to determine whether a given new firmware image is compatible with their different computer systems. However, this approach places an undue burden on users, and cannot prevent users from accidentally installing the incorrect firmware image for a given computer system.
- a system identifier may be utilized. If the system identifier of a computer system does not match one of the system identifiers stored in the new firmware image, then the computer system is prevented from having its firmware upgraded with this new firmware image. When a new type of computer system is introduced, changes are made so that the new type of computer system returns a different system identifier than the old type of computer system. The system identifiers of all the possible different computer systems with which a given firmware image is compatible have to be added to the firmware image.
- the firmware update program that is used to update the firmware of a system itself has to be updated to ensure that it is compatible with the new type of computer system, and moreover that it properly obtains the system identifier from the new type of computer system, and properly compares this identifier with identifiers stored in the new firmware image. That is, this strategy requires that the firmware update program itself be updated each time a new type of computer system is introduced. The strategy also requires that the firmware update program itself be updated each time a new firmware image is introduced.
- the present invention relates to allowing or disallowing firmware upgrades based on comparisons of firmware-related bits.
- a method of the invention determines a first series of firmware-related bits.
- the first series of bits corresponds to firmware compatibility information of firmware of a computer system.
- Each bit of the first series corresponds in particular corresponds to an attribute of either the firmware or the computer system.
- Each bit of the first series may be equal to one when the attribute to which the bit corresponds denotes a potential incompatibility factor of the computer system as to the attribute, and may otherwise be equal to zero.
- the method determines a second series of firmware-related bits.
- the second series of bits corresponds to a firmware image with which the firmware of the computer system is desired to be upgraded.
- Each bit of the second series indicates whether the firmware image is compatible with the attribute of a corresponding bit of the first series.
- Each bit of the second series may be equal to one where the firmware image is compatible with the attribute of the corresponding bit of the first series, such that the firmware image does not cause the potential incompatibility factor of the computer system denoted by the corresponding bit of the first series.
- Each bit of the second series may otherwise be equal to zero.
- the method performs a logical AND operation on the first series of bits and the second series of bits. Where the result of the logical AND operation is equal to the first series of bits, the firmware of the computer system is allowed to be upgraded with the firmware image. However, where the result of the logical AND operation is not equal to the first series of bits, the firmware of the computer system is disallowed from being upgraded with the firmware image. In this way, the firmware of the computer system can be upgraded with the firmware image only if the firmware image is compatible with the computer system.
- a computer system of the invention includes a firmware that has an associated first series of bits corresponding to compatibility information of the firmware. Each bit of the first series corresponds to an attribute of the computer system or the firmware.
- the computer system also includes a storage device that is able to store a computer program executed by the computer system to upgrade the firmware based on at least the first series of bits associated with the firmware.
- the computer program is specifically to upgrade the firmware of the computer system with a firmware image having an associated second series of bits. Each bit of the second series indicates whether the firmware image is compatible with the attribute of a corresponding bit of the first series.
- the computer program is to upgrade the firmware of the computer system with the firmware image based on the first series of bits associated with the firmware and the second series of bits associated with the firmware image.
- the computer program can perform a logical AND operation on the first series of bits and the second series of bits. Where the result of the logical AND operation is equal to the first series of bits, the computer program upgrades the firmware with the firmware image. Where the result of the logical AND operation is not equal to the first series of bits, the computer program does not upgrade the firmware with the firmware image.
- An article of manufacture of the invention includes a computer-readable medium and means in the medium.
- the computer-readable medium may be a recordable data storage medium, a modulated carrier signal, or another type of computer-readable medium.
- the means is for upgrading the firmware of a computer system with a firmware image, based on comparing a first series of bits associated with the firmware with a second series of bits associated with the firmware image. Each first series bit corresponds to an attribute of the computer system or the firmware. Each second series bit indicates whether the firmware image is compatible with the attribute of a corresponding first series bit.
- Embodiments of the invention provide for advantages over the prior art.
- Each bit is independent of the other bits.
- the first series of bits is resident in the firmware of the computer system, whereas the second series of bits is resident in a new firmware image.
- the firmware upgrade computer program does not have to be aware of the details or the origin of the first and the second series of bits.
- the same firmware upgrade program can be used to administer firmware upgrades on any type of computer system on which the program is able to be run, for any new firmware image. That is, updates of the firmware upgrade program do not have to be synchronized with new firmware images.
- the comparison performed by the firmware upgrade program is always the same, and different comparisons do not have to be addressed by the firmware upgrade program when new types of computer systems are introduced.
- FIG. 1 is a diagram of a scenario for upgrading the firmware of a computer system with a new firmware image, according to an embodiment of the invention.
- FIG. 2 is a diagram of how the first series of bits of a computer system are compared with the second series of bits of a new firmware image to determine whether the firmware image is to be loaded into the firmware of the computer system, according to an embodiment of the invention.
- FIG. 3 is a flowchart of a method for determining whether to allow the firmware of a computer system to be upgraded with a new firmware image, according to an embodiment of the invention.
- FIG. 4 is a diagram of a rudimentary computer system, according to an embodiment of the invention.
- FIG. 1 shows a scenario 100 by which the firmware 104 of a computer system 102 is upgraded by a firmware upgrade computer program 106 with a new firmware image 108 , according to an embodiment of the invention.
- the computer system 102 can include any type of computing device or peripheral that has a firmware.
- the computer system 102 may be a desktop or a laptop computer, as well as peripherals such as video cards, sound cards, and so on.
- the firmware 104 may be a basic input/output system (BIOS), or another type of firmware, as has been described in the background section.
- the firmware 104 is stored in a non-volatile memory of the computer system 102 , such as a non-volatile memory integrated circuit (IC).
- IC non-volatile memory integrated circuit
- the firmware upgrade program 106 is a computer program designed to upgrade the firmware 104 with the new firmware image 108 , and can run on the computer system 102 .
- the upgrade program 108 is preferably not dependent on the specific firmware image 108 with which the firmware 104 is being upgraded. Furthermore, the upgrade program 108 is preferably not dependent on the specific firmware 104 , nor on the specific computer system 102 . That is, so long as the computer system 102 is able to run or execute the firmware upgrade computer program 106 , the program 106 does not have to take into account specific details of the firmware image 108 or the firmware 104 .
- the firmware image 108 may be a binary or other type of data file that is designed to be loaded into the firmware 104 to update the firmware 104 .
- the firmware image 108 may enable the computer system 102 to take advantage of new features coded into the firmware image 108 that are not present already in the firmware 104 .
- the firmware image 108 may enable the system 102 to also take advantage of new peripheral technologies that are not afforded by the firmware 104 .
- the firmware image 108 may also contain bug fixes and other corrections to the firmware 104 .
- the computer system 102 has an associated first series of firmware-related bits 110
- the firmware image 108 has an associated second series of firmware-related bits 112 .
- the first series of bits 110 corresponds to firmware compatibility information of the firmware 104 of the computer system 104 , as is described in more detail later in the detailed description.
- the second series of bits 112 corresponds to the firmware image 108 with which the firmware 104 of the computer system 102 is to be upgraded, as is described in more detail later in the detailed description.
- the first series of bits 110 is stored within the computer system 102 , such as within the firmware 104 thereof.
- the first series of bits 110 may be stored in the BIOS location 15 h , may be obtained via a software system management interrupt (SMI), and/or may be stored in a table within a BIOS read-only memory (ROM) area, as can be appreciated by those of ordinary skill within the art.
- the second series of bits 112 may be stored within the new firmware image 108 itself, such as within the same binary or other data file encompassing the firmware image 108 .
- the firmware upgrade computer program 106 first verifies that the firmware image 108 is compatible with the computer system 102 before upgrading the firmware 104 with the new image 108 . This is preferably accomplished as follows. First, the program 106 determines, or receives, the first series of bits 110 from the computer system 102 . Next, the program 106 determines, or receives, the second series of bits 112 from the firmware image 108 . The program 106 performs a logical AND operation on the first series of bits 110 with the second series of bits 112 .
- the program 106 upgrades the firmware 104 with the firmware image 108 . That is, the upgrade program 106 loads the firmware image 108 into the firmware 104 , as is known within the art. If the result of the logical AND operation is not equal to the first series of bits 110 , then the program 106 concludes that the firmware image 108 is not compatible with the computer system 102 , and does not upgrade the firmware 104 with the firmware image 108 .
- FIG. 2 shows a scenario 200 depicting in more detail how the process by which the first series of firmware-related bits 110 is compared with the second series of firmware-related bits 112 to determine whether to upgrade the firmware 104 of FIG. 1 with the firmware image 108 of FIG. 1 , according to an embodiment of the invention.
- the first series of bits 110 includes the bits 202 A, 202 B, 202 C, . . . , 202 N, collectively referred to as the bits 202 .
- the second series of bits 112 includes the bits 204 A, 204 B, 204 C, . . . , 204 N, collectively referred to as the bits 204 .
- the series of bits 206 includes the bits 208 A, 208 B, . . . , 208 N, collectively referred to as the bits 208 . It is noted that each of the series of bits 110 , 112 , and 206 can be represented by a decimal or a hexadecimal value, where this value is expressed in binary form as depicted in FIG. 2 .
- Each of the bits 202 of the first series of bits 110 corresponds to an attribute of the computer system 102 or of the firmware 104 .
- each of the bits 202 is equal to a value of one where the attribute to which this bit corresponds denotes a potential incompatibility factor of the computer system 102 as to this attribute.
- Each of the bits 202 is otherwise equal to a value of zero, indicating that the attribute to which this bit corresponds does not denote a potential incompatibility factor of the computer system 102 as to this attribute.
- the bit 202 A may indicate whether the computer system 102 has a particular type of graphics chip A. Because the bit 202 A is specifically equal to the value of one, this means that the computer system 102 has this particular type of graphics chip A. Thus, the bit 202 A denotes a potential incompatibility factor of the computer system 102 as to this attribute, because if a given firmware image, such as the image 108 , is not compatible with this particular type of graphics chip A, then the firmware 104 of the computer system 102 should not be upgraded with that firmware image.
- the bit 202 B may indicate whether the computer system 102 has a particular type of graphics chip B
- the bit 202 C may indicate whether the computer system 102 has a particular type of graphics chip C. Because the bits 202 B and 202 C are each specifically equal to the value of zero, this means that the computer system 102 does not have either the particular type of graphics chip B or the particular type of graphics chip C. Thus, the bits 202 B and 202 C do not denote potential incompatibility factors of the computer system 102 as to these attributes, because even where a given firmware image is not compatible with the particular types of graphics chips B and C, this incompatibility does not affect the ability of the computer system 102 to have its firmware 104 upgraded with the firmware image. That is, because the computer system 102 does not have the particular type of graphics chip B or C, it does not matter whether a new firmware image is compatible with these types of graphics chips or not.
- the bit 202 N may indicate whether the computer system 102 and/or the firmware 104 is able to support encrypted password protection within the firmware 104 .
- the bit 202 N is specifically equal to the value of one, this means that the computer system 102 and/or the firmware 104 cannot support encrypted password protection within the firmware 104 .
- the bit 202 N denotes a potential incompatibility factor of the computer system 102 and/or the firmware 104 as to this attribute, because if a given firmware image requires the capability of the system 102 and/or the firmware 104 to support encrypted password protection, then the firmware 104 should not be upgraded with that firmware image.
- the number of bits 202 within the first series 110 is desirably sufficiently large to denote any potential incompatibility factors of attributes of the computer system 102 and/or the firmware 104 .
- the bits 202 are themselves independent of one another. That is, the setting of each of the bits 202 to either a value of zero or one does not necessarily depend on the setting of any other of the bits 202 to either a value of zero or one. Rather, each of the bits 202 is set based on whether the computer system 102 and/or the firmware 104 is compatible or incompatible with the attribute to which the bit corresponds.
- Each of the bits 204 of the second series of bits 112 corresponds to one of the bits 202 of the first series of bits 110 .
- the bit 204 A corresponds to the bit 202 A
- the bit 204 B corresponds to the bit 202 B
- the bit 204 C corresponds to the bit 202 C
- the bit 204 N corresponds to the bit 202 N
- each of the bits 204 has a corresponding one of the bits 202 in that the bit of the second series 112 indicates whether the new firmware image 108 is compatible or not with the attribute to which the corresponding bit of the first series 110 corresponds.
- the bits 204 A and 204 B are equal to a value of one, which means that the new firmware image 108 is compatible with the particular types of graphics cards A and B to which the corresponding bits 202 A and 202 B correspond.
- the bit 204 C is equal to a value of zero, which means that the new firmware image 108 is incompatible with the particular type of graphic card C to which the corresponding bit 202 C corresponds.
- the bit 204 N is equal to a value of zero, which means that the new firmware image 108 requires (as opposed to not requiring) support of the encrypted password protection to which the corresponding bit 202 N corresponds.
- each of the bits 204 of the second series 112 is equal to a value of one when the firmware image 108 is compatible with the attribute to which the corresponding bit of the first series 110 corresponds, such that the firmware image 108 does not cause the potential incompatibility factor of the computer system 102 denoted by this bit of the first series 110 Otherwise, each of the bits 204 of the second series 112 can have a value of zero.
- the bit 202 A of the first series 110 having a value of one indicates that the computer system 102 and the firmware 104 requires that the firmware image 108 be compatible with the particular type of graphics card A. Because the corresponding bit 204 A of the second series 110 also has a value of one, this means that the firmware image 108 is compatible with the particular type of graphics card A.
- the bit 202 N of the first series 110 having a value of one indicates that the computer system 102 and/or the firmware 104 requires that the firmware image 108 not require encrypted password protection.
- the corresponding bit 204 A of the second series 110 has a value of zero, meaning that the firmware 108 requires encrypted password protection. Therefore, the firmware image 108 is not compatible with the computer system 102 and/or the firmware 104 in this regard. That is, the firmware image 108 causes the potential incompatibility factor of the attribute indicated by the bit 202 N of the first series 110 having the value of one.
- the bits 202 of the first series 110 are logically AND'ed with the bits 204 of the second series 112 , resulting in the bits 208 of the resulting series 206 .
- the bits 202 A and 204 A are logically AND'ed together, resulting in the bit 208 A
- the bits 202 B and 204 B are logically AND'ed together, resulting in the bit 208 B.
- the bits 202 C and 204 C are logically AND'ed together, resulting in the bit 208 C
- the bits 202 N and 204 N are logically AND'ed together, resulting in the bit 208 N.
- the value represented by the series of bits 110 is logically AND'ed with the value represented by the series of bits 112 , resulting in the series of bits 206 .
- bits 202 of first series 110 as logically AND'ed with the bits 204 of the second series 112 equal the bits 202 of the first series 110 , then this means that the computer system 102 is compatible with the new firmware image 108 , and the firmware 104 of the system 102 may be updated or upgraded with the image 108 .
- any of the bits 202 of the first series 110 has a value of one, than a corresponding bit of the bits 204 of the second series 112 must also be equal to a value of one in order to allow the firmware 104 be upgraded with the firmware image 108 .
- a corresponding bit of the bits 204 of the second series 112 can have either a value of one or zero, and thus does not affect whether the firmware 104 can be upgraded with the firmware image 108 .
- the bit 202 A of the first series 110 having the value of one means that the computer system 102 requires that the firmware image 108 be compatible with a particular type of graphics card A. Because the corresponding bit 204 A of the second series 110 also has the value of one, the firmware image 108 is compatible with this particular type of graphics card, and thus compatible with the system 102 in this respect. That is, the bit 202 A logically AND'ed with the bit 204 A results in the bit 208 A, which has the same value as the bit 202 A has.
- the bits 202 B and 202 C of the first series corresponding to particular types of graphics cards A and B, have values of zero, meaning that the computer system 102 does not require that the firmware image 108 be compatible with either of these particular types of graphics cards A and B. Therefore, the fact that the firmware image 108 is compatible with the particular type of graphics card B, as represented by the bit 204 B having the value of one, and is not compatible with the particular type of graphics card C, as represented by the bit 204 C having the value of zero, does not affect the compatibility of the image 108 with the system 102 . That is, the bits 202 B and 202 C logically AND'ed with the bits 204 B and 204 C results in the bits 208 B and 208 C, which have the same value as the bits 202 B and 202 C have.
- the bit 202 N of the first series 110 having the value of one means that the computer system 102 requires that the firmware image 108 not require the system 102 and/or the firmware 104 to support encrypted password protection.
- the bit 204 N of the second series 112 has a value of zero, meaning that the firmware image 108 does indeed require the system 102 and/or the firmware 104 to support encrypted password protection.
- the bit 202 N logically AND'ed with the bit 204 N results in the bit 208 N, which has a different value than the bit 202 N has. Therefore, the firmware image 108 is not compatible with the computer system 102 with respect to the attribute denoted by the bit 202 N. That is, the bit 202 N identifies a potential incompatibility factor of the system 102 , where the firmware image 108 indeed causes this incompatibility factor.
- any of the bits 202 of the first series 110 has a value of one, indicating a potential incompatibility factor for a given attribute of the computer system 102 and/or the firmware 104 , then the corresponding bit of the bits 204 of the second series 112 must also have a value of one for the firmware image 108 to be compatible with the system 102 . Otherwise, the firmware image 108 causes the potential incompatibility factor in question, and therefore the image 108 is not loaded into the firmware 104 .
- FIG. 3 shows a method 300 for determining whether to upgrade the firmware 104 of the computer system 102 with the new firmware image 108 , according to an embodiment of the invention.
- the method 300 may be implemented in one embodiment as one or more computer program parts executable by a processor of a computer, such as by the firmware upgrade computer program 106 of FIG. 1 .
- the method 300 first determines the first series of bits 110 ( 302 ). For instance, the first series of bits 110 may be retrieved from the computer system 102 .
- the method 300 next determines the second series of bits 112 ( 304 ). Similarly, the second series of bits 112 may be retrieved from the firmware image 108 .
- the method 300 then performs a logical AND operation on the first series of bits 110 and the second series of bits 112 ( 306 ), as has been described. For example, performing this logical AND operation results in the series of bits 206 in the example depicted in and described in relation to FIG. 2 . If the result of the logical AND operation is equal to the first series of bits 110 ( 308 ), then the firmware 104 of the computer system 102 is allowed to be upgraded with the firmware image 108 ( 310 ). Otherwise, the firmware 104 is not allowed to be upgraded with the firmware image 108 ( 312 ).
- the firmware 104 may be updated or upgraded with the firmware image 108 by loading of the image 108 onto or into the firmware 104 , such as by the firmware upgrade program 106 .
- the result of the logical AND operation is not equal to the first series of bits 110 , then this means that the new firmware image 108 is not compatible with the system 102 and the firmware 104 .
- the firmware 104 still maintains the same associated series of firmware-related bits 110 . That is, the firmware-related series of bits 110 is particular to a given computer system 102 and/or firmware 104 . Therefore, the series of bits 110 does not change when a new firmware image 108 , having an associated series of firmware-related bits 112 , is loaded into the firmware 104 . Furthermore, the entity that performs the method 300 , such as the firmware upgrade computer program 106 does not have to know the significance of any of the bits of the first series 110 or the second series 112 , and does not have to know the origin of these bits. Rather, the entity only has to perform the method 300 to determine whether to allow the firmware 104 to be updated with the new firmware image 108 .
- FIG. 4 shows the computer system 102 in more detail, according to a specific embodiment of the invention.
- the system 102 is depicted as including the firmware 104 , a processor 402 , and the storage device 404 storing the firmware upgrade computer program 106 .
- the computer system 102 may have other components, in addition to and/or in lieu of those depicted in FIG. 4 , in other embodiments of the invention.
- the firmware 104 is specifically depicted in FIG. 4 as storing the first series of firmware-related bits 110
- the storage device 404 is specifically depicted in FIG. 4 as storing the firmware upgrade computer program 106
- the storage device 404 may be or include non-volatile storage, such as hard disk drives, as well as volatile storage, such as semiconductor memories.
- the processor 402 executes the upgrade program 106 from the storage device 404 in one embodiment to determine whether to upgrade the firmware 104 with a new firmware image, based on the first series of bits 110 associated with the system 102 being compared with a second series of bits associated with the new firmware image.
- the upgrade program 106 also actually upgrades the firmware 104 with the new firmware image when the new firmware image is compatible with the computer system 102 and the firmware 104 .
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
- The present invention relates generally to upgrading the firmware of a computer system with a new firmware image, and more particularly to determining whether to allow or disallow the upgrade based on comparing firmware-related bits of the firmware of the computer system with corresponding bits associated with the new firmware image.
- The firmware of a computer system can be considered a category of computer program code and data that is stored on non-volatile memories that hold their content without electrical power. Such non-volatile memories include read-only memories (ROM's), programmable ROM's (PROM's), electrically programmable ROM's (EPROM's), and electrically erasable and programmable ROM's (EEPROM's). Firmware is thus “hard software” when storing computer program code.
- One common type of firmware is known as the basic input/output system (BIOS) of a computer. The BIOS may be considered an essential set of computer program routines, which are stored in a non-volatile memory and provide an interface between the operating system and the hardware. The BIOS supports peripheral technologies and internal services such as a realtime time-and-date clock.
- The firmware of a computer system may have to be periodically updated, or upgraded, to keep pace with new peripheral technologies, or to correct bugs present in the current firmware. If the firmware is stored on a ROM, it has to be physically replaced. However, if the firmware is stored on an EPROM or an EEPROM, it can be upgraded via software, by a new firmware image being loaded into the EPROM or EEPROM.
- Desirably, firmware is common across a number of different types of computer systems, for a variety of reasons. First, having a common firmware decreases costs borne on users, especially information technology (IT) administrators, who otherwise have to manage separate firmware for different types of computer systems. Furthermore, having a common firmware decreases the number of firmware download pages on web sites throughout the world. Having a common firmware for a number of different types of computer systems also decreases the number of different items that have to be managed in factories, and that have to be addressed during development and test processes.
- However, invariably a new firmware image may not be compatible with one or more specific types of computer systems. In such instances, there are a variety of strategies for handling firmware upgrades. First, two or more different versions of a new firmware image may be provided. However, this strategy increases costs, for the reasons described in the previous paragraph.
- Second, a “read me” or other type of file may be provided with a firmware update package, or another type of change history file may be provided. Therefore, users are able to determine whether a given new firmware image is compatible with their different computer systems. However, this approach places an undue burden on users, and cannot prevent users from accidentally installing the incorrect firmware image for a given computer system.
- Third, a system identifier, or ID, may be utilized. If the system identifier of a computer system does not match one of the system identifiers stored in the new firmware image, then the computer system is prevented from having its firmware upgraded with this new firmware image. When a new type of computer system is introduced, changes are made so that the new type of computer system returns a different system identifier than the old type of computer system. The system identifiers of all the possible different computer systems with which a given firmware image is compatible have to be added to the firmware image.
- Furthermore, the firmware update program that is used to update the firmware of a system itself has to be updated to ensure that it is compatible with the new type of computer system, and moreover that it properly obtains the system identifier from the new type of computer system, and properly compares this identifier with identifiers stored in the new firmware image. That is, this strategy requires that the firmware update program itself be updated each time a new type of computer system is introduced. The strategy also requires that the firmware update program itself be updated each time a new firmware image is introduced.
- Therefore, this approach is inflexible. It requires that changes be made to both the firmware and the firmware update program when a new type of computer system is introduced, so that the firmware of a new type of computer system has a unique identifier, and so that the firmware update program is aware of all different types of computer systems that may potentially be affected by a new firmware image. As such, the firmware upgrade program must be effectively synchronized with a given firmware image that is introduced. The same firmware upgrade program cannot be used for all different types of computer systems, nor for all new firmware images introduced.
- For these and other reasons, therefore, there is a need for the present invention.
- The present invention relates to allowing or disallowing firmware upgrades based on comparisons of firmware-related bits. A method of the invention determines a first series of firmware-related bits. The first series of bits corresponds to firmware compatibility information of firmware of a computer system. Each bit of the first series corresponds in particular corresponds to an attribute of either the firmware or the computer system. Each bit of the first series may be equal to one when the attribute to which the bit corresponds denotes a potential incompatibility factor of the computer system as to the attribute, and may otherwise be equal to zero.
- The method determines a second series of firmware-related bits. The second series of bits corresponds to a firmware image with which the firmware of the computer system is desired to be upgraded. Each bit of the second series indicates whether the firmware image is compatible with the attribute of a corresponding bit of the first series. Each bit of the second series may be equal to one where the firmware image is compatible with the attribute of the corresponding bit of the first series, such that the firmware image does not cause the potential incompatibility factor of the computer system denoted by the corresponding bit of the first series. Each bit of the second series may otherwise be equal to zero.
- The method performs a logical AND operation on the first series of bits and the second series of bits. Where the result of the logical AND operation is equal to the first series of bits, the firmware of the computer system is allowed to be upgraded with the firmware image. However, where the result of the logical AND operation is not equal to the first series of bits, the firmware of the computer system is disallowed from being upgraded with the firmware image. In this way, the firmware of the computer system can be upgraded with the firmware image only if the firmware image is compatible with the computer system.
- A computer system of the invention includes a firmware that has an associated first series of bits corresponding to compatibility information of the firmware. Each bit of the first series corresponds to an attribute of the computer system or the firmware. The computer system also includes a storage device that is able to store a computer program executed by the computer system to upgrade the firmware based on at least the first series of bits associated with the firmware.
- The computer program is specifically to upgrade the firmware of the computer system with a firmware image having an associated second series of bits. Each bit of the second series indicates whether the firmware image is compatible with the attribute of a corresponding bit of the first series. The computer program is to upgrade the firmware of the computer system with the firmware image based on the first series of bits associated with the firmware and the second series of bits associated with the firmware image.
- For example, the computer program can perform a logical AND operation on the first series of bits and the second series of bits. Where the result of the logical AND operation is equal to the first series of bits, the computer program upgrades the firmware with the firmware image. Where the result of the logical AND operation is not equal to the first series of bits, the computer program does not upgrade the firmware with the firmware image.
- An article of manufacture of the invention includes a computer-readable medium and means in the medium. The computer-readable medium may be a recordable data storage medium, a modulated carrier signal, or another type of computer-readable medium. The means is for upgrading the firmware of a computer system with a firmware image, based on comparing a first series of bits associated with the firmware with a second series of bits associated with the firmware image. Each first series bit corresponds to an attribute of the computer system or the firmware. Each second series bit indicates whether the firmware image is compatible with the attribute of a corresponding first series bit.
- Embodiments of the invention provide for advantages over the prior art. Each bit is independent of the other bits. There are a sufficient number of bits in each of the first series and the second series of bits to reflect all current and potentially future incompatibility factors that may need to be taken into account during the firmware upgrade process. The first series of bits is resident in the firmware of the computer system, whereas the second series of bits is resident in a new firmware image. The firmware upgrade computer program does not have to be aware of the details or the origin of the first and the second series of bits. Thus, the same firmware upgrade program can be used to administer firmware upgrades on any type of computer system on which the program is able to be run, for any new firmware image. That is, updates of the firmware upgrade program do not have to be synchronized with new firmware images. The comparison performed by the firmware upgrade program is always the same, and different comparisons do not have to be addressed by the firmware upgrade program when new types of computer systems are introduced.
- Still other advantages, aspects, and embodiments of the invention will become apparent by reading the detailed description that follows, and by referring to the accompanying drawings.
- The drawings referenced herein form a part of the specification. Features shown in the drawing are meant as illustrative of only some embodiments of the invention, and not of all embodiments of the invention, unless otherwise explicitly indicated, and implications to the contrary are otherwise not to be made.
-
FIG. 1 is a diagram of a scenario for upgrading the firmware of a computer system with a new firmware image, according to an embodiment of the invention. -
FIG. 2 is a diagram of how the first series of bits of a computer system are compared with the second series of bits of a new firmware image to determine whether the firmware image is to be loaded into the firmware of the computer system, according to an embodiment of the invention. -
FIG. 3 is a flowchart of a method for determining whether to allow the firmware of a computer system to be upgraded with a new firmware image, according to an embodiment of the invention. -
FIG. 4 is a diagram of a rudimentary computer system, according to an embodiment of the invention. - In the following detailed description of exemplary embodiments of the invention, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments may be utilized, and logical, mechanical, and other changes may be made without departing from the spirit or scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
-
FIG. 1 shows ascenario 100 by which thefirmware 104 of acomputer system 102 is upgraded by a firmwareupgrade computer program 106 with anew firmware image 108, according to an embodiment of the invention. Thecomputer system 102 can include any type of computing device or peripheral that has a firmware. For instance, thecomputer system 102 may be a desktop or a laptop computer, as well as peripherals such as video cards, sound cards, and so on. Thefirmware 104 may be a basic input/output system (BIOS), or another type of firmware, as has been described in the background section. Thefirmware 104 is stored in a non-volatile memory of thecomputer system 102, such as a non-volatile memory integrated circuit (IC). - The
firmware upgrade program 106 is a computer program designed to upgrade thefirmware 104 with thenew firmware image 108, and can run on thecomputer system 102. Theupgrade program 108 is preferably not dependent on thespecific firmware image 108 with which thefirmware 104 is being upgraded. Furthermore, theupgrade program 108 is preferably not dependent on thespecific firmware 104, nor on thespecific computer system 102. That is, so long as thecomputer system 102 is able to run or execute the firmwareupgrade computer program 106, theprogram 106 does not have to take into account specific details of thefirmware image 108 or thefirmware 104. - The
firmware image 108 may be a binary or other type of data file that is designed to be loaded into thefirmware 104 to update thefirmware 104. For instance, thefirmware image 108 may enable thecomputer system 102 to take advantage of new features coded into thefirmware image 108 that are not present already in thefirmware 104. Thefirmware image 108 may enable thesystem 102 to also take advantage of new peripheral technologies that are not afforded by thefirmware 104. Thefirmware image 108 may also contain bug fixes and other corrections to thefirmware 104. - The
computer system 102 has an associated first series of firmware-relatedbits 110, and thefirmware image 108 has an associated second series of firmware-relatedbits 112. The first series ofbits 110 corresponds to firmware compatibility information of thefirmware 104 of thecomputer system 104, as is described in more detail later in the detailed description. The second series ofbits 112 corresponds to thefirmware image 108 with which thefirmware 104 of thecomputer system 102 is to be upgraded, as is described in more detail later in the detailed description. - The first series of
bits 110 is stored within thecomputer system 102, such as within thefirmware 104 thereof. For instance, the first series ofbits 110 may be stored in the BIOS location 15 h, may be obtained via a software system management interrupt (SMI), and/or may be stored in a table within a BIOS read-only memory (ROM) area, as can be appreciated by those of ordinary skill within the art. The second series ofbits 112 may be stored within thenew firmware image 108 itself, such as within the same binary or other data file encompassing thefirmware image 108. - The firmware
upgrade computer program 106 first verifies that thefirmware image 108 is compatible with thecomputer system 102 before upgrading thefirmware 104 with thenew image 108. This is preferably accomplished as follows. First, theprogram 106 determines, or receives, the first series ofbits 110 from thecomputer system 102. Next, theprogram 106 determines, or receives, the second series ofbits 112 from thefirmware image 108. Theprogram 106 performs a logical AND operation on the first series ofbits 110 with the second series ofbits 112. - If the result of the logical AND operation is equal to the first series of
bits 110, then theprogram 106 upgrades thefirmware 104 with thefirmware image 108. That is, theupgrade program 106 loads thefirmware image 108 into thefirmware 104, as is known within the art. If the result of the logical AND operation is not equal to the first series ofbits 110, then theprogram 106 concludes that thefirmware image 108 is not compatible with thecomputer system 102, and does not upgrade thefirmware 104 with thefirmware image 108. -
FIG. 2 shows ascenario 200 depicting in more detail how the process by which the first series of firmware-relatedbits 110 is compared with the second series of firmware-relatedbits 112 to determine whether to upgrade thefirmware 104 ofFIG. 1 with thefirmware image 108 ofFIG. 1 , according to an embodiment of the invention. The first series ofbits 110 includes thebits bits 112 includes thebits bits 110 and the second series ofbits 112 results in the series ofbits 206. The series ofbits 206 includes thebits bits FIG. 2 . - Each of the bits 202 of the first series of
bits 110 corresponds to an attribute of thecomputer system 102 or of thefirmware 104. In particular, each of the bits 202 is equal to a value of one where the attribute to which this bit corresponds denotes a potential incompatibility factor of thecomputer system 102 as to this attribute. Each of the bits 202 is otherwise equal to a value of zero, indicating that the attribute to which this bit corresponds does not denote a potential incompatibility factor of thecomputer system 102 as to this attribute. - For example, the
bit 202A may indicate whether thecomputer system 102 has a particular type of graphics chip A. Because thebit 202A is specifically equal to the value of one, this means that thecomputer system 102 has this particular type of graphics chip A. Thus, thebit 202A denotes a potential incompatibility factor of thecomputer system 102 as to this attribute, because if a given firmware image, such as theimage 108, is not compatible with this particular type of graphics chip A, then thefirmware 104 of thecomputer system 102 should not be upgraded with that firmware image. - Conversely, the
bit 202B may indicate whether thecomputer system 102 has a particular type of graphics chip B, whereas thebit 202C may indicate whether thecomputer system 102 has a particular type of graphics chip C. Because thebits computer system 102 does not have either the particular type of graphics chip B or the particular type of graphics chip C. Thus, thebits computer system 102 as to these attributes, because even where a given firmware image is not compatible with the particular types of graphics chips B and C, this incompatibility does not affect the ability of thecomputer system 102 to have itsfirmware 104 upgraded with the firmware image. That is, because thecomputer system 102 does not have the particular type of graphics chip B or C, it does not matter whether a new firmware image is compatible with these types of graphics chips or not. - As a further example, the
bit 202N may indicate whether thecomputer system 102 and/or thefirmware 104 is able to support encrypted password protection within thefirmware 104. In one embodiment, because thebit 202N is specifically equal to the value of one, this means that thecomputer system 102 and/or thefirmware 104 cannot support encrypted password protection within thefirmware 104. Thus, thebit 202N denotes a potential incompatibility factor of thecomputer system 102 and/or thefirmware 104 as to this attribute, because if a given firmware image requires the capability of thesystem 102 and/or thefirmware 104 to support encrypted password protection, then thefirmware 104 should not be upgraded with that firmware image. - The number of bits 202 within the
first series 110 is desirably sufficiently large to denote any potential incompatibility factors of attributes of thecomputer system 102 and/or thefirmware 104. The bits 202 are themselves independent of one another. That is, the setting of each of the bits 202 to either a value of zero or one does not necessarily depend on the setting of any other of the bits 202 to either a value of zero or one. Rather, each of the bits 202 is set based on whether thecomputer system 102 and/or thefirmware 104 is compatible or incompatible with the attribute to which the bit corresponds. - Each of the bits 204 of the second series of
bits 112 corresponds to one of the bits 202 of the first series ofbits 110. Thus, thebit 204A corresponds to thebit 202A, thebit 204B corresponds to thebit 202B, thebit 204C corresponds to thebit 202C, thebit 204N corresponds to thebit 202N, and so on. That is, each of the bits 204 has a corresponding one of the bits 202 in that the bit of thesecond series 112 indicates whether thenew firmware image 108 is compatible or not with the attribute to which the corresponding bit of thefirst series 110 corresponds. - For example, the
bits new firmware image 108 is compatible with the particular types of graphics cards A and B to which thecorresponding bits bit 204C is equal to a value of zero, which means that thenew firmware image 108 is incompatible with the particular type of graphic card C to which thecorresponding bit 202C corresponds. In addition, thebit 204N is equal to a value of zero, which means that thenew firmware image 108 requires (as opposed to not requiring) support of the encrypted password protection to which thecorresponding bit 202N corresponds. - Thus, each of the bits 204 of the
second series 112 is equal to a value of one when thefirmware image 108 is compatible with the attribute to which the corresponding bit of thefirst series 110 corresponds, such that thefirmware image 108 does not cause the potential incompatibility factor of thecomputer system 102 denoted by this bit of thefirst series 110 Otherwise, each of the bits 204 of thesecond series 112 can have a value of zero. For example, thebit 202A of thefirst series 110 having a value of one indicates that thecomputer system 102 and thefirmware 104 requires that thefirmware image 108 be compatible with the particular type of graphics card A. Because thecorresponding bit 204A of thesecond series 110 also has a value of one, this means that thefirmware image 108 is compatible with the particular type of graphics card A. - As another example, the
bit 202N of thefirst series 110 having a value of one indicates that thecomputer system 102 and/or thefirmware 104 requires that thefirmware image 108 not require encrypted password protection. However, thecorresponding bit 204A of thesecond series 110 has a value of zero, meaning that thefirmware 108 requires encrypted password protection. Therefore, thefirmware image 108 is not compatible with thecomputer system 102 and/or thefirmware 104 in this regard. That is, thefirmware image 108 causes the potential incompatibility factor of the attribute indicated by thebit 202N of thefirst series 110 having the value of one. - To determine whether the
firmware 104 and thecomputer system 102 are compatible with thenew firmware image 108 presented, the bits 202 of thefirst series 110 are logically AND'ed with the bits 204 of thesecond series 112, resulting in the bits 208 of the resultingseries 206. For example, thebits bit 208A, and thebits bit 208B. Similarly, thebits bit 208C, and thebits bit 208N. In general, the value represented by the series ofbits 110 is logically AND'ed with the value represented by the series ofbits 112, resulting in the series ofbits 206. - If the bits 202 of
first series 110 as logically AND'ed with the bits 204 of thesecond series 112 equal the bits 202 of thefirst series 110, then this means that thecomputer system 102 is compatible with thenew firmware image 108, and thefirmware 104 of thesystem 102 may be updated or upgraded with theimage 108. Thus, if any of the bits 202 of thefirst series 110 has a value of one, than a corresponding bit of the bits 204 of thesecond series 112 must also be equal to a value of one in order to allow thefirmware 104 be upgraded with thefirmware image 108. By comparison, if any of the bits 202 of thefirst series 110 has a value of zero, then a corresponding bit of the bits 204 of thesecond series 112 can have either a value of one or zero, and thus does not affect whether thefirmware 104 can be upgraded with thefirmware image 108. - For example, the
bit 202A of thefirst series 110 having the value of one means that thecomputer system 102 requires that thefirmware image 108 be compatible with a particular type of graphics card A. Because thecorresponding bit 204A of thesecond series 110 also has the value of one, thefirmware image 108 is compatible with this particular type of graphics card, and thus compatible with thesystem 102 in this respect. That is, thebit 202A logically AND'ed with thebit 204A results in thebit 208A, which has the same value as thebit 202A has. - By comparison, the
bits computer system 102 does not require that thefirmware image 108 be compatible with either of these particular types of graphics cards A and B. Therefore, the fact that thefirmware image 108 is compatible with the particular type of graphics card B, as represented by thebit 204B having the value of one, and is not compatible with the particular type of graphics card C, as represented by thebit 204C having the value of zero, does not affect the compatibility of theimage 108 with thesystem 102. That is, thebits bits bits bits - As a final example, the
bit 202N of thefirst series 110 having the value of one means that thecomputer system 102 requires that thefirmware image 108 not require thesystem 102 and/or thefirmware 104 to support encrypted password protection. However, thebit 204N of thesecond series 112 has a value of zero, meaning that thefirmware image 108 does indeed require thesystem 102 and/or thefirmware 104 to support encrypted password protection. Thus, thebit 202N logically AND'ed with thebit 204N results in thebit 208N, which has a different value than thebit 202N has. Therefore, thefirmware image 108 is not compatible with thecomputer system 102 with respect to the attribute denoted by thebit 202N. That is, thebit 202N identifies a potential incompatibility factor of thesystem 102, where thefirmware image 108 indeed causes this incompatibility factor. - Therefore, in general, if any of the bits 202 of the
first series 110 logically AND'ed with the corresponding bit of the bits 204 of thesecond series 112 does not result in the bit of the bits 202, then thecomputer system 102 is not compatible with thefirmware image 108. Put another way, if the value represented by the bits 202 logically AND'ed with the value represented by the bits 204 does not equal the value represented by the bits 202, then thecomputer system 102 is not compatible with thefirmware image 108. If any of the bits 202 of thefirst series 110 has a value of one, indicating a potential incompatibility factor for a given attribute of thecomputer system 102 and/or thefirmware 104, then the corresponding bit of the bits 204 of thesecond series 112 must also have a value of one for thefirmware image 108 to be compatible with thesystem 102. Otherwise, thefirmware image 108 causes the potential incompatibility factor in question, and therefore theimage 108 is not loaded into thefirmware 104. -
FIG. 3 shows amethod 300 for determining whether to upgrade thefirmware 104 of thecomputer system 102 with thenew firmware image 108, according to an embodiment of the invention. Themethod 300 may be implemented in one embodiment as one or more computer program parts executable by a processor of a computer, such as by the firmwareupgrade computer program 106 ofFIG. 1 . Themethod 300 first determines the first series of bits 110 (302). For instance, the first series ofbits 110 may be retrieved from thecomputer system 102. Themethod 300 next determines the second series of bits 112 (304). Similarly, the second series ofbits 112 may be retrieved from thefirmware image 108. - The
method 300 then performs a logical AND operation on the first series ofbits 110 and the second series of bits 112 (306), as has been described. For example, performing this logical AND operation results in the series ofbits 206 in the example depicted in and described in relation toFIG. 2 . If the result of the logical AND operation is equal to the first series of bits 110 (308), then thefirmware 104 of thecomputer system 102 is allowed to be upgraded with the firmware image 108 (310). Otherwise, thefirmware 104 is not allowed to be upgraded with the firmware image 108 (312). - Thus, if the result of the logical AND operation is equal to the first series of
bits 110, then this means that thenew firmware image 108 is compatible with thecomputer system 102 and thefirmware 104. Therefore, thefirmware 104 may be updated or upgraded with thefirmware image 108 by loading of theimage 108 onto or into thefirmware 104, such as by thefirmware upgrade program 106. However, if the result of the logical AND operation is not equal to the first series ofbits 110, then this means that thenew firmware image 108 is not compatible with thesystem 102 and thefirmware 104. - It is noted that after the upgrading of the
firmware 104 with thefirmware image 108, thefirmware 104 still maintains the same associated series of firmware-relatedbits 110. That is, the firmware-related series ofbits 110 is particular to a givencomputer system 102 and/orfirmware 104. Therefore, the series ofbits 110 does not change when anew firmware image 108, having an associated series of firmware-relatedbits 112, is loaded into thefirmware 104. Furthermore, the entity that performs themethod 300, such as the firmwareupgrade computer program 106 does not have to know the significance of any of the bits of thefirst series 110 or thesecond series 112, and does not have to know the origin of these bits. Rather, the entity only has to perform themethod 300 to determine whether to allow thefirmware 104 to be updated with thenew firmware image 108. -
FIG. 4 shows thecomputer system 102 in more detail, according to a specific embodiment of the invention. Thesystem 102 is depicted as including thefirmware 104, aprocessor 402, and thestorage device 404 storing the firmwareupgrade computer program 106. As can be appreciated by those of ordinary skill within the art, thecomputer system 102 may have other components, in addition to and/or in lieu of those depicted inFIG. 4 , in other embodiments of the invention. - The
firmware 104 is specifically depicted inFIG. 4 as storing the first series of firmware-relatedbits 110, whereas thestorage device 404 is specifically depicted inFIG. 4 as storing the firmwareupgrade computer program 106. Thestorage device 404 may be or include non-volatile storage, such as hard disk drives, as well as volatile storage, such as semiconductor memories. Theprocessor 402 executes theupgrade program 106 from thestorage device 404 in one embodiment to determine whether to upgrade thefirmware 104 with a new firmware image, based on the first series ofbits 110 associated with thesystem 102 being compared with a second series of bits associated with the new firmware image. Theupgrade program 106 also actually upgrades thefirmware 104 with the new firmware image when the new firmware image is compatible with thecomputer system 102 and thefirmware 104. - It is noted that, although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is intended to cover any adaptations or variations of embodiments of the present invention. For instance, whereas different of the bits 202 have been described as relating to particular attributes of the
computer system 102 and/or of thefirmware 104 thereof, regarding particular potential incompatibility factors in relation to these attributes, such particular attributes and particular potential incompatibility factors have been presented for example purposes only. Other embodiments of the invention can have bits relating to different attributes, and thus different potential incompatibility factors, as can be appreciated by those of ordinary skill within the art. Therefore, it is manifestly intended that this invention be limited only by the claims and equivalents thereof.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/020,595 US20060136710A1 (en) | 2004-12-22 | 2004-12-22 | Allowing or disallowing firmware upgrade based on comparison of firmware-related bits |
JP2005367496A JP2006190278A (en) | 2004-12-22 | 2005-12-21 | Method, computer system and program for allowing or disallowing firmware upgrade |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/020,595 US20060136710A1 (en) | 2004-12-22 | 2004-12-22 | Allowing or disallowing firmware upgrade based on comparison of firmware-related bits |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060136710A1 true US20060136710A1 (en) | 2006-06-22 |
Family
ID=36597566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/020,595 Abandoned US20060136710A1 (en) | 2004-12-22 | 2004-12-22 | Allowing or disallowing firmware upgrade based on comparison of firmware-related bits |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060136710A1 (en) |
JP (1) | JP2006190278A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080001710A1 (en) * | 2006-06-15 | 2008-01-03 | Microsoft Corporation | Support for batching of events, and shredding of batched events in the rfid infrastructure platform |
US20080001711A1 (en) * | 2006-06-15 | 2008-01-03 | Microsoft Corporation | Reliability of execution for device provider implementations |
US20080126591A1 (en) * | 2006-11-23 | 2008-05-29 | Kwang Hun Kwon | Media sink device, media source device and method of controlling the same |
US20080174404A1 (en) * | 2007-01-23 | 2008-07-24 | Microsoft Corporation | Dynamic updates in rfid manager |
US20080184151A1 (en) * | 2007-01-25 | 2008-07-31 | Microsoft Corporation | Standardized mechanism for firmware upgrades of rfid devices |
US20080288625A1 (en) * | 2006-01-04 | 2008-11-20 | Microsoft Corporation | Rfid device groups |
US20120117557A1 (en) * | 2009-07-13 | 2012-05-10 | Zte Corporation | Method and system for upgrading wireless data card |
US10956143B2 (en) * | 2017-12-06 | 2021-03-23 | Hewlett Packard Enterprise Development Lp | Server updates |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5237690A (en) * | 1990-07-06 | 1993-08-17 | International Business Machines Corporation | System for testing adaptor card upon power up and having disablement, enablement, and reconfiguration options |
US6216186B1 (en) * | 1998-06-15 | 2001-04-10 | Sun Microsystems, Inc. | Modular computer system including compatibility evaluation logic |
US6223283B1 (en) * | 1998-07-17 | 2001-04-24 | Compaq Computer Corporation | Method and apparatus for identifying display monitor functionality and compatibility |
US20030233493A1 (en) * | 2002-06-15 | 2003-12-18 | Boldon John L. | Firmware installation methods and apparatus |
US20040001087A1 (en) * | 2002-06-27 | 2004-01-01 | Warmus James L. | Methods and apparatus for electronic distribution of customized content via a broadcast signal |
US6754723B2 (en) * | 2000-02-04 | 2004-06-22 | Minolta Co., Ltd. | System comprising host device that determines compatibility of firmware for connected peripheral device and downloads optimum firmware if peripheral device is not compatible |
US20040143828A1 (en) * | 2003-01-20 | 2004-07-22 | Tun-Hsing Liu | Firmware updating method and related apparatus for checking content of replacing firmware before firmware updating |
US20040205745A1 (en) * | 2001-07-30 | 2004-10-14 | International Business Machines Corporation | Method and system for identifying compatibility between firmware images |
-
2004
- 2004-12-22 US US11/020,595 patent/US20060136710A1/en not_active Abandoned
-
2005
- 2005-12-21 JP JP2005367496A patent/JP2006190278A/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5237690A (en) * | 1990-07-06 | 1993-08-17 | International Business Machines Corporation | System for testing adaptor card upon power up and having disablement, enablement, and reconfiguration options |
US6216186B1 (en) * | 1998-06-15 | 2001-04-10 | Sun Microsystems, Inc. | Modular computer system including compatibility evaluation logic |
US6223283B1 (en) * | 1998-07-17 | 2001-04-24 | Compaq Computer Corporation | Method and apparatus for identifying display monitor functionality and compatibility |
US6754723B2 (en) * | 2000-02-04 | 2004-06-22 | Minolta Co., Ltd. | System comprising host device that determines compatibility of firmware for connected peripheral device and downloads optimum firmware if peripheral device is not compatible |
US20040205745A1 (en) * | 2001-07-30 | 2004-10-14 | International Business Machines Corporation | Method and system for identifying compatibility between firmware images |
US20030233493A1 (en) * | 2002-06-15 | 2003-12-18 | Boldon John L. | Firmware installation methods and apparatus |
US20040001087A1 (en) * | 2002-06-27 | 2004-01-01 | Warmus James L. | Methods and apparatus for electronic distribution of customized content via a broadcast signal |
US20040143828A1 (en) * | 2003-01-20 | 2004-07-22 | Tun-Hsing Liu | Firmware updating method and related apparatus for checking content of replacing firmware before firmware updating |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080288625A1 (en) * | 2006-01-04 | 2008-11-20 | Microsoft Corporation | Rfid device groups |
US8452860B2 (en) | 2006-01-04 | 2013-05-28 | Microsoft Corporation | RFID device groups |
US20080001710A1 (en) * | 2006-06-15 | 2008-01-03 | Microsoft Corporation | Support for batching of events, and shredding of batched events in the rfid infrastructure platform |
US20080001711A1 (en) * | 2006-06-15 | 2008-01-03 | Microsoft Corporation | Reliability of execution for device provider implementations |
US8207822B2 (en) | 2006-06-15 | 2012-06-26 | Microsoft Corporation | Support for batching of events, and shredding of batched events in the RFID infrastructure platform |
US20080126591A1 (en) * | 2006-11-23 | 2008-05-29 | Kwang Hun Kwon | Media sink device, media source device and method of controlling the same |
US20080174404A1 (en) * | 2007-01-23 | 2008-07-24 | Microsoft Corporation | Dynamic updates in rfid manager |
US20080184151A1 (en) * | 2007-01-25 | 2008-07-31 | Microsoft Corporation | Standardized mechanism for firmware upgrades of rfid devices |
US8245219B2 (en) | 2007-01-25 | 2012-08-14 | Microsoft Corporation | Standardized mechanism for firmware upgrades of RFID devices |
US20120117557A1 (en) * | 2009-07-13 | 2012-05-10 | Zte Corporation | Method and system for upgrading wireless data card |
US10956143B2 (en) * | 2017-12-06 | 2021-03-23 | Hewlett Packard Enterprise Development Lp | Server updates |
Also Published As
Publication number | Publication date |
---|---|
JP2006190278A (en) | 2006-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6725178B2 (en) | Use of hidden partitions in a storage device for storing BIOS extension files | |
KR100675518B1 (en) | Modular bios update mechanism | |
US8707297B2 (en) | Apparatus and methods for updating firmware | |
US6754828B1 (en) | Algorithm for non-volatile memory updates | |
US7017004B1 (en) | System and method for updating contents of a flash ROM | |
US6542167B1 (en) | System and method for flexible software linking | |
US20050177709A1 (en) | Apparatus and method for updating firmware | |
US6430685B1 (en) | Method and apparatus for enabling a computer system | |
US20140250290A1 (en) | Method for Software Anti-Rollback Recovery | |
CN102298529B (en) | Providing silicon integrated code for a system | |
US7069445B2 (en) | System and method for migration of a version of a bootable program | |
US20080209193A1 (en) | Manageability Extension Mechanism for System Firmware | |
KR20050028157A (en) | Booting and boot code update method and system thereof | |
JP2006190278A (en) | Method, computer system and program for allowing or disallowing firmware upgrade | |
CN101807152A (en) | Basic output and input system for self verification of selection read only memory and verification method thereof | |
US9110678B1 (en) | Automated BIOS enhancements and upgrades | |
CN103455750B (en) | The high peace verification method of a kind of embedded device and device | |
EP2648092B1 (en) | Updating method and multi-domain embedded system | |
US6336215B1 (en) | Apparatus and method for on-line code only replacement of a running program using checkpoints | |
US20060037013A1 (en) | Program update apparatus, method, and medium | |
KR100860402B1 (en) | Device and method for upgradin system using two step bootloader | |
EP4120066A1 (en) | Replacement of executable load files in secure elements | |
CN114780173B (en) | Method for loading plug-in application, computing device and storage medium | |
US20190146804A1 (en) | Method for synchronization of system management data | |
JP2000357093A (en) | Computer system and reloading method for non-volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:OKA, KENJI;KASAMATSU, EITAROH;OHISHI, SHINJI;REEL/FRAME:016129/0867 Effective date: 20041220 |
|
AS | Assignment |
Owner name: LENOVO (SINGAPORE) PTE LTD.,SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:016891/0507 Effective date: 20050520 Owner name: LENOVO (SINGAPORE) PTE LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:016891/0507 Effective date: 20050520 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |