BMC Online Firmware Update via Root File System Copying

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for updating baseboard management controller (BMC) firmware require full or partial shutdown of services and automatic reboot, which is undesirable as BMC needs to remain active during server operation.

Innovation Solution

A system and method that involves copying the root file system from non-volatile memory to volatile memory, switching the service instances to the copy in volatile memory, receiving and writing an updated root file system code to non-volatile memory, allowing online firmware updates without immediate reboot, and recreating service instances after updating.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If firmware update is performed by erasing and updating flash devices, then firmware can be updated, but services must be shut down and device must be rebooted

Engineering Contradiction:
Improvefirmware update capabilityVSAvoidservice continuity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The root file system is segmented into two separate storage locations: non-volatile memory (for persistent storage) and volatile memory (for active operation). This segmentation allows the system to maintain service instances in volatile memory while updating the root file system in non-volatile memory, eliminating the need to shut down services during firmware updates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The root file system is copied from non-volatile memory to volatile memory before the update process begins. This preliminary action ensures that service instances can continue to operate from the volatile memory copy while the non-volatile memory is updated, allowing updates without service interruption.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If BMC is rebooted for firmware update, then updated firmware can be loaded, but BMC cannot remain active during update

Engineering Contradiction:
Improvefirmware update capabilityVSAvoiddowntime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

A copy of the root file system is created in volatile memory and used as the active file system for service instances. This copy allows the original non-volatile memory to be updated without affecting running services, eliminating the need for immediate reboot and reducing downtime.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

Service instances continue to operate continuously from the root file system copy in volatile memory while the non-volatile memory is updated. This maintains continuous useful action (service operation) during the firmware update process, avoiding interruptions and reducing downtime.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If root file system is updated in non-volatile memory, then firmware is updated, but service instances must be recreated from scratch

Engineering Contradiction:
Improvefirmware update capabilityVSAvoidservice instance management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the root file system into persistent storage (non-volatile) and active operation (volatile) portions. Service instances operate from the volatile copy, which remains unchanged during updates, simplifying service instance management as they don't need to be recreated when firmware is updated in non-volatile memory.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9910664B2System and method of online firmware update for baseboard management controller (BMC) devices
Publication Date: 2018.03.06 AMERICAN MEGATRENDS
  • US9910664B2 patent drawing
  • US9910664B2 patent drawing
  • US9910664B2 patent drawing

AI summary

A system includes a baseboard management controller (BMC), capable of online update of the BMC without shutting down any services. The BMC includes a processor, a volatile memory configured to perform multiple service instances, and a non-volatile memory storing a computer executable code and a root file system. The root file system includes multiple service modules as origin of the service instances. The computer executable code, when executed at the processor, is configured to: receive an update command and perform an update process based on the update command. The update process includes: copying the root file system from the non-volatile memory to the volatile memory; switching the origin of the service instances to the copy of the root file system; receiving an update root file system code; and writing the update root file system code to the non-volatile memory to obtain an updated root file system.