IP Library Granted Patent US 11,204,752
Granted Patent B1
US 11,204,752 · App. 16/438,122 · Granted Dec 21, 2021

Intelligent migration of firmware configuration settings

Inventors: Bejean David Mosher (Acworth, GA); Senthamizhsey Subramanian (Suwanee, GA)
Assignee: American Megatrends International, LLC
G06F8/65G06F9/44505H04L9/0643
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,204,752
App. No.
16/438,122
Granted
Dec 21, 2021
Kind
B1
Abstract

A firmware settings data structure and a settings mapping table for a first firmware are stored in a non-volatile memory. A second firmware settings data structure and a second settings mapping table for a second firmware are also stored. An entry is selected in the second firmware settings mapping table. A search is made of the first settings mapping table for an entry having an identifier that is the same as an identifier in the selected entry in the second firmware settings mapping table. If a matching entry is located, a value in the first firmware settings data structure identified by the entry in the first firmware settings mapping table is copied to the second firmware settings data structure. If a matching entry is not found in the first firmware settings data structure, a default value for the firmware setting is stored in the second firmware settings data structure.

Claims (53)

1. A computer-implemented method, comprising:

storing a first firmware settings data structure, the first firmware settings data structure associated with a first firmware and comprising firmware settings for a computing device;

storing a first firmware settings mapping table associated with the first firmware, the first firmware settings mapping table comprising entries storing

offsets of fields in the first firmware settings data structure,

field sizes for the fields in the first firmware settings data structure, and

hash values for the fields in the first firmware settings data structure, wherein the hash values for the fields in the first firmware settings data structure comprise hashes of names associated with the firmware settings for the computing device;

storing a second firmware settings mapping table associated with a second firmware, the second firmware settings mapping table comprising entries storing

offsets of fields in a second firmware settings data structure,

field sizes for the fields in the second firmware settings data structure, and

hash values for the fields in the second firmware settings data structure, wherein the hash values for the fields in the second firmware settings data structure comprise hashes of the names associated with the firmware settings for the computing device;

for an entry in the second firmware settings mapping table,

searching the first firmware settings mapping table for an entry having a hash value that is the same as a hash value stored in the entry in the second firmware settings mapping table,

responsive to locating the hash value in an entry of the first firmware settings mapping table, copying a value from a location in the first firmware settings data structure identified by the entry in the first firmware settings mapping table to a location in the second firmware settings data structure, and

responsive to not locating the hash value in an entry of the first firmware settings mapping table, storing a default value in the second firmware settings data structure at a location defined by the entry in the second firmware settings mapping table;

consolidating the values of the second firmware settings data structure in a non-volatile memory of the computing device; and

configuring the computing device using the values of the second firmware settings data structure in the non-volatile memory of the computing device.

2. The computer-implemented method of claim 1 , wherein the hash values comprise MD5 hashes.

3. A non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computing device, cause the computing device to:

store a first firmware settings data structure, the first firmware settings data structure associated with a first firmware and comprising firmware settings for the computing device;

store a first firmware settings mapping table associated with the first firmware, the first firmware settings mapping table comprising entries storing

offsets of fields in the first firmware settings data structure,

field sizes for the fields in the first firmware settings data structure, and

hash values for the fields in the first firmware settings data structure, wherein the hash values for the fields in the first firmware settings data structure comprise hashes of names associated with the firmware settings;

store a second firmware settings mapping table associated with a second firmware, the second firmware settings mapping table comprising entries storing

offsets of fields in a second firmware settings data structure,

field sizes for the fields in the second firmware settings data structure, and

hash values for the fields in the second firmware settings data structure, wherein the hash values for the fields in the second firmware settings data structure comprise hashes of the names associated with the firmware settings for the computing device;

for an entry in the second firmware settings mapping table,

search the first firmware settings mapping table for an entry having a hash value that is the same as a hash value stored in the entry in the second firmware settings mapping table,

responsive to locating the hash value in an entry of the first firmware settings mapping table, copy a value from a location in the first firmware settings data structure identified by the entry in the first firmware settings mapping table to a location in the second firmware settings data structure, and

responsive to not locating the hash value in an entry of the first firmware settings mapping table, store a default value in the second firmware settings data structure at a location defined by the entry in the second firmware settings mapping table;

consolidate the values of the second firmware settings data structure in a non-volatile memory of the computing device; and

configure the computing device using the values of the second firmware settings data structure in the non-volatile memory of the computing device.

4. The non-transitory computer-readable storage medium of claim 3 , wherein the hash values comprise MD5 hashes.

5. A computing device, comprising:

one or more processors; and

at least one non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by the one or more processors, cause the computing device to:

store a first firmware settings data structure, the first firmware settings data structure associated with a first firmware and comprising firmware settings for the computing device;

store a first firmware settings mapping table associated with the first firmware, the first firmware settings mapping table comprising entries storing

offsets of fields in the first firmware settings data structure,

field sizes for the fields in the first firmware settings data structure, and

hash values for the fields in the first firmware settings data structure, wherein the hash values for the fields in the first firmware settings data structure comprise hashes of names associated with the firmware settings;

store a second firmware settings mapping table associated with a second firmware, the second firmware settings mapping table comprising entries storing

offsets of fields in a second firmware settings data structure,

field sizes for the fields in the second firmware settings data structure, and

hash values for the fields in the second firmware settings data structure, wherein the hash values for the fields in the second firmware settings data structure comprise hashes of the names associated with the firmware settings for the computing device;

for an entry in the second firmware settings mapping table,

search the first firmware settings mapping table for an entry having a hash value that is the same as a hash value stored in the entry in the second firmware settings mapping table,

responsive to locating the hash value in an entry of the first firmware settings mapping table, copy a value from a location in the first firmware settings data structure identified by the entry in the first firmware settings mapping table to a location in the second firmware settings data structure, and

responsive to not locating the hash value in an entry of the first firmware settings mapping table, store a default value in the second firmware settings data structure at a location defined by the entry in the second firmware settings mapping table;

consolidate the values of the second firmware settings data structure in a non-volatile memory of the computing device; and

configure the computing device using the values of the second firmware settings data structure in the non-volatile memory of the computing device.

6. The computing system of claim 5 , wherein the hash values comprise MD5 hashes.

Assignments (5)
PATENT SECURITY AGREEMENT Recorded Oct 23, 2024
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: BAIN CAPITAL CREDIT, LP, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 069229/0834 →
RELEASE OF SECURITY INTEREST Recorded Oct 17, 2024
From: MIDCAP FINANCIAL TRUST
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 069205/0948 →
SECURITY INTEREST Recorded Apr 30, 2024
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT
Reel/Frame 067274/0834 →
ENTITY CONVERSION Recorded Feb 28, 2020
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 052050/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2019
From: MOSHER, BEJEAN DAVID; SUBRAMANIAN, SENTHAMIZHSEY
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 049437/0440 →