Updating computer firmware
First Claim
1. A method comprising:
- generating a user firmware volume within a local computer firmware volume of a computing device which contains computer firmware used by the computing device during a boot process, the user firmware volume comprising a file system;
obtaining a signed firmware file for updating the computer firmware used by the computing device during the boot process, wherein the signed firmware file is generated by integrating an encrypted message digest to a firmware file, the encrypted message digest generated by encrypting a first message digest with a first key, the first message digest generated by applying a hash function to the firmware file;
extracting the encrypted message digest and the firmware file from the signed firmware file;
decrypting the message digest with a second key associated with the first key used to encrypt the message digest;
applying the hash function to the firmware file extracted from the signed firmware file to generate a second message digest;
determining that the second message digest is consistent with the first message digest;
comparing the firmware file with a content of the local computer firmware volume to yield a comparison, wherein comparing the firmware file with the content of the local computer firmware volume comprises;
determining that the firmware file corresponds to an existing firmware file stored on the computer firmware local computer volume, the existing firmware being a part of the computer firmware; and
determining, via at least one of a pre-extensible firmware interface initialization dispatcher and a driver execution environment dispatcher, whether the firmware file comprises a different firmware file version as the existing firmware file;
determining that the firmware file corresponds to an existing firmware file that is currently stored on the local computer firmware volume;
determining that the firmware file and the local computer firmware volume belong to a same firmware module by comparing a global unique identifier (GUID) of the firmware file with a GUID of the existing firmware file; and
based on the comparison, storing the firmware file on the user firmware volume within the local computer firmware volume without flashing an entire portion of the computer firmware used by the computing device during the boot process, wherein storing the firmware file comprises loading the firmware file into the local computer firmware volume and executing the computer firmware with the firmware file.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods, and computer-readable storage media for updating a computer firmware. The system generates a user firmware volume within a computer firmware volume containing computer firmware used by the system during a boot process. In some cases, the user firmware volume can be a file system. The system also obtains a firmware file for updating the computer firmware used by the system during the boot process. Next, the system compares the firmware file with a content of the computer firmware volume to yield a comparison and, based on the comparison, stores the firmware file on the user firmware volume within the computer firmware volume without flashing an entire portion of the computer firmware used by the system during the boot process.
14 Citations
15 Claims
-
1. A method comprising:
-
generating a user firmware volume within a local computer firmware volume of a computing device which contains computer firmware used by the computing device during a boot process, the user firmware volume comprising a file system; obtaining a signed firmware file for updating the computer firmware used by the computing device during the boot process, wherein the signed firmware file is generated by integrating an encrypted message digest to a firmware file, the encrypted message digest generated by encrypting a first message digest with a first key, the first message digest generated by applying a hash function to the firmware file; extracting the encrypted message digest and the firmware file from the signed firmware file; decrypting the message digest with a second key associated with the first key used to encrypt the message digest; applying the hash function to the firmware file extracted from the signed firmware file to generate a second message digest; determining that the second message digest is consistent with the first message digest; comparing the firmware file with a content of the local computer firmware volume to yield a comparison, wherein comparing the firmware file with the content of the local computer firmware volume comprises; determining that the firmware file corresponds to an existing firmware file stored on the computer firmware local computer volume, the existing firmware being a part of the computer firmware; and determining, via at least one of a pre-extensible firmware interface initialization dispatcher and a driver execution environment dispatcher, whether the firmware file comprises a different firmware file version as the existing firmware file; determining that the firmware file corresponds to an existing firmware file that is currently stored on the local computer firmware volume; determining that the firmware file and the local computer firmware volume belong to a same firmware module by comparing a global unique identifier (GUID) of the firmware file with a GUID of the existing firmware file; and based on the comparison, storing the firmware file on the user firmware volume within the local computer firmware volume without flashing an entire portion of the computer firmware used by the computing device during the boot process, wherein storing the firmware file comprises loading the firmware file into the local computer firmware volume and executing the computer firmware with the firmware file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising:
-
a processor; and a computer-readable storage medium having stored therein instructions which, when executed by the processor, cause the processor to perform operations comprising; within a local computer firmware volume containing the computer firmware used by the system during the boot process, generating a user firmware volume comprising a file system for storing the firmware file within the local computer firmware volume as part of the computer firmware; obtaining a signed firmware file for updating the local computer firmware used by the computing device during the boot process, wherein the signed firmware file is generated by integrating an encrypted message digest to a firmware file, the encrypted message digest generated by encrypting a first message digest with a first key, the first message digest generated by applying a hash function to the firmware file; extracting the encrypted message digest and the firmware file from the signed firmware file; decrypting the message digest with a second key associated with the first key used to encrypt the message digest; applying the hash function to the firmware file extracted from the signed firmware file to generate a second message digest; determining that the second message digest is consistent with the first message digest; comparing the firmware file with a content of the computer firmware volume to yield a comparison, wherein comparing the firmware file with the content of the local computer firmware volume comprises; determining that the firmware file corresponds to an existing firmware file stored on the computer firmware local computer volume, the existing firmware being a part of the computer firmware; and determining, via at least one of a pre-extensible firmware interface initialization dispatcher and a driver execution environment dispatcher, whether the firmware file comprises a different firmware file version as the existing firmware file; determining that the firmware file corresponds to an existing firmware file that is currently stored on the local computer firmware volume; determining that the firmware file and the local computer firmware volume belong to a same firmware module by comparing a global unique identifier (GUID) of the firmware file with a GUID of the existing firmware file; and based on the comparison, storing the firmware file on the user firmware volume within the local computer firmware volume without flashing an entire portion of the computer firmware used by the system during the boot process wherein storing the firmware file comprises loading the firmware file into the local computer firmware volume and executing the computer firmware with the firmware file. - View Dependent Claims (11, 12)
-
-
13. A non-transitory computer-readable storage medium having stored therein instructions which, when executed by a processor, cause the processor to perform operations comprising:
-
within a local computer firmware volume containing computer firmware used by a computing device during a boot process, generating a user firmware volume comprising a file system within the local computer firmware volume; obtaining a signed firmware file for updating the local computer firmware used by the computing device during the boot process, wherein the signed firmware file is generated by integrating an encrypted message digest to a firmware file, the encrypted message digest generated by encrypting a first message digest with a first key, the first message digest generated by applying a hash function to the firmware file; extracting the encrypted message digest and the firmware file from the signed firmware file; decrypting the message digest with a second key associated with the first key used to encrypt the message digest; applying the hash function to the firmware file extracted from the signed firmware file to generate a second message digest; determining that the second message digest is consistent with the first message digest; comparing the firmware file with a content of the local computer firmware volume to yield a comparison, wherein comparing the firmware file with the content of the local computer firmware volume comprises; determining that the firmware file corresponds to an existing firmware file stored on the computer firmware local computer volume, the existing firmware being a part of the computer firmware; and determining, via at least one of a pre-extensible firmware interface initialization dispatcher and a driver execution environment dispatcher, whether the firmware file comprises a different firmware file version as the existing firmware file; determining that the firmware file corresponds to an existing firmware file that is currently stored on the local computer firmware volume; determining that the firmware file and the local computer firmware volume belong to a same firmware module by comparing a global unique identifier (GUID) of the firmware file with a GUID of the existing firmware file; and based on the comparison, storing the firmware file on the user firmware volume within the local computer firmware volume without flashing an entire portion of the computer firmware used by the computing device during the boot process, wherein storing the firmware file comprises loading the firmware file into the local computer firmware volume and executing the computer firmware with the firmware file. - View Dependent Claims (14, 15)
-
Specification