BMC Storage of EFI Variables via JSON Conversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern servers lack the ability to effectively store and manage dynamic BIOS settings, such as EFI variables, which are essential for centralized management and portability across data centers, due to their dynamic nature and binary format.

Innovation Solution

A system and method that utilizes a baseboard management controller (BMC) to store and manage EFI variables using a modified BIOS setting via an application programming interface (API), converting binary EFI variables into JSON format for storage and applying them during the BIOS power-on self-test (POST) process, allowing for centralized management and portability of BIOS firmware across data centers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If EFI variables are stored in binary format in the BMC, then the storage capacity is sufficient, but the ease of operation and centralized management is poor

Engineering Contradiction:
Improvecentralized management of BIOS settingsVSAvoidbinary format conversion process
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent transforms EFI variables from binary format to JSON text format, changing the data representation parameter. This conversion enables centralized management and portability while maintaining the underlying binary data integrity through proper encoding/decoding processes during BIOS operations.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces JSON format as an intermediary representation layer between the binary EFI variables and the centralized management system. This intermediary format facilitates easy storage, transmission, and management while the BMC acts as a mediator to convert between formats as needed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If EFI variables are converted to JSON format for storage, then the portability and centralized management improve, but the processing time during boot increases

Engineering Contradiction:
ImproveBIOS firmware portabilityVSAvoidboot process time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs JSON conversion and storage of EFI variables in advance, during system operation or pre-boot phases. During the critical boot process, the BMC simply retrieves and applies the pre-converted JSON settings, minimizing boot time impact while achieving portability benefits.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a copy of EFI variables in JSON format for centralized management and portability purposes, while the original binary variables remain intact for immediate use during boot. This copying approach enables parallel existence of both formats without interfering with the boot process.

Inventive Principle:
Principle #26Copying

3Reliability

If the BMC stores modified BIOS settings in a future setting data structure, then the reliability of settings application is improved, but the device complexity increases

Engineering Contradiction:
Improvesettings application accuracyVSAvoiddata structure management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments BIOS settings management into distinct data structures: current settings, future settings, and attribute registry. This segmentation organizes the complexity by separating concerns - current operational settings from pending modifications - enabling reliable settings application while managing complexity through structured organization.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11934838B2Storing EFI variables in a BMC using an API
Publication Date: 2024.03.19 QUANTA COMPUTER INC
  • US11934838B2 patent drawing
  • US11934838B2 patent drawing
  • US11934838B2 patent drawing

AI summary

A system includes one or more data processors and a non-transitory computer-readable storage medium containing instructions which, when executed on the one or more data processors, cause the one or more data processors to perform operations. The operations include receiving a modified basic input-output system (BIOS) setting using an application programming interface (API). The modified BIOS setting includes an attribute describing at least one extensible firmware interface (EFI) variable. The operations further include storing the modified BIOS setting in a future setting data structure in a baseboard management controller (BMC). The operations further include providing a current setting data structure stored in the BMC. The operations further include replacing at least a portion of the current setting data structure with the modified BIOS setting to provide a modified current setting data structure. The modified current setting data structure is then applied to the system.