Method for atomically updating a plurality of files
First Claim
1. A method for updating an existing portion of platform firmware data in persistent firmware memory, comprising:
- writing updated firmware data to a pad file in the persistent firmware memory that is different from a memory location of the existing platform firmware data so that the persistent firmware memory comprises both the existing platform firmware data and the updated platform data; and
performing an atomic operation to modify firmware configuration data to indicate whether the existing platform firmware data or the updated platform firmware data is valid and is to be loaded and executed, such that only the existing platform firmware data will be loaded and executed before the atomic operation is performed and only the updated platform firmware data will be loaded and executed after the atomic operation is performed.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for updating platform firmware is disclosed. This capability is facilitated by a standard software abstraction for a firmware storage device, known as Firmware Volume (FV) that is managed through a Firmware File System (FFS). The FFS enables firmware files to be created, deleted, and updated individually. The FFS also enables a plurality of firmware files to be updated atomically by managing file state information via state bits stored in a file header of each firmware file, whereby an atomic change to a single state bit simultaneously causes the FFS to use an updated set of firmware files in place of an original set of firmware files.
-
Citations
27 Claims
-
1. A method for updating an existing portion of platform firmware data in persistent firmware memory, comprising:
-
writing updated firmware data to a pad file in the persistent firmware memory that is different from a memory location of the existing platform firmware data so that the persistent firmware memory comprises both the existing platform firmware data and the updated platform data; and performing an atomic operation to modify firmware configuration data to indicate whether the existing platform firmware data or the updated platform firmware data is valid and is to be loaded and executed, such that only the existing platform firmware data will be loaded and executed before the atomic operation is performed and only the updated platform firmware data will be loaded and executed after the atomic operation is performed. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for updating a plurality of existing platform firmware files in persistent firmware memory, which at least a portion of existing platform firmware data comprises header data indicating whether or not the existing platform firmware data is valid and is to be updated, the method comprising:
-
modifying the header data of the existing platform firmware data to indicate that the existing platform firmware data is valid and is to be updated; writing updated platform firmware data to a memory location that is different from the memory location of the existing platform firmware data so that the persistent firmware memory comprises both the existing platform firmware data and the updated platform firmware data, which update platform firmware data comprises header data indicating that the updated platform firmware data is not valid and is not to be updated; and performing an atomic operation to modify the header data of the updated platform firmware data is valid and is not to be updated, thereby indicating that the updated platform firmware data is to be loaded and executed instead of the existing platform firmware data. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A machine readable media on which a plurality of machine-executable instructions are stored that when executed by a machine updates an existing portion of platform firmware data partitioned into a plurality of sets of firmware code by performing the operation of:
-
writing updated firmware data to a pad file in the persistent firmware memory that is different from a memory location of the existing platform firmware data so that the persistent firmware memory comprises both the existing platform firmware data and the updated platform data; and performing an atomic operation to modify firmware configuration data to indicate whether the existing platform firmware data or the updated platform firmware data is valid and is to be loaded and executed, such that only the existing platform firmware data will be loaded and executed before the atomic operation is performed and only the updated platform firmware data will be loaded and executed after the atomic operation is performed. - View Dependent Claims (17, 18)
-
-
19. A machine readable media on which a plurality of machine-executable instructions are stored that when executed by a machine updates a plurality of existing platform firmware files in persistent firmware memory wherein each of said plurality of existing platform firmware files comprises header data indicating whether or not the existing platform firmware file is valid and is to be updated by performing the operations of:
-
creating a pad file at a memory location in the persistent firmware memory which is different from the memory location of the existing platform firmware files, the pad file having a data area and a header data indicating that the pad file is valid; writing data corresponding to a plurality of updated platform firmware files comprising new versions of the plurality of existing platform firmware files to the data area of the pad file so that the persistent firmware memory comprises both the plurality of existing platform firmware files and the plurality of updated platform firmware files, each of the plurality of update platform firmware files comprising header data indicating that the updated platform firmware file is valid and is not to be updated; modifying the header data of each of the existing platform firmware files to indicate that the existing platform firmware file is valid and is to be updated; and performing an atomic operation to modify the header data of the pad file to indicate that the pad file is not valid, thereby indicating that the updated platform firmware files written to the data area of the pad file are to be loaded and executed instead of the existing platform firmware files. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
Specification