bios:基于 Lua 的 BIOS 带内交互管理组件项目

System BIOS management app

Branch14Tags0
FilesLast commitLast update
2 months ago
1 month ago
1 year ago
4 months ago
2 months ago
1 month ago
3 months ago
3 months ago
2 days ago
4 months ago
2 days ago
4 days ago
3 months ago
1 year ago
4 days ago
3 months ago
3 months ago
2 months ago
2 days ago
2 days ago
4 months ago
4 months ago
1 year ago
3 months ago
3 months ago
4 months ago

BIOS

Function Overview

The BIOS component mainly interacts with the in-band module. Its key functions are as follows:

(1) Configuration: Supports import and export of BIOS configurations, setting of boot options and boot modes, and seamless upgrade policy reconfiguration.

(2) Certificate: Supports BIOS boot certificates, BIOS secure boot certificates, and BIOS revocation certificate management.

(3) Upgrade: Supports common BIOS upgrade, seamless upgrade, TEE OS upgrade, and Krun upgrade.

(4) PFR: Supports BIOS self-healing.

Directory Structure

├── src
│   ├── lualib-src
│   │   ├── CMakeLists.txt
│   │   └── mtd_api.c                               -- MTD driver
│   ├── lualib
│   │   ├── bios_app.lua 					        -- bios_app file
│   │   ├── domain
│   │   │   ├── bios_firmware
│   │   │   │   ├── defs.lua                        -- Firmware definition file
│   │   │   │   ├── gold                            -- BIOS firmware
│   │   │   │   └── package                         -- BIOS upgrade package
│   │   │   ├── mapping
│   │   │   │   ├── component_info.lua              -- File base class for seamless upgrade
│   │   │   │   ├── component_manager.lua           -- File manager for seamless upgrade
│   │   │   │   ├── component_version.lua           -- Version file for seamless upgrade
│   │   │   │   ├── policy_config_registery.lua     -- registery file for policy reconfiguration
│   │   │   │   └── policy_config_value.lua         -- File containing current values for policy reconfiguration
│   │   │   ├── policy_config
│   │   │   │   ├── policy_config_transfer.lua      -- Policy reconfiguration conversion
│   │   │   │   ├── policy_ipmi_format.lua          -- IPMI command format conversion for policy reconfiguration
│   │   │   │   └── policy_registery.lua            -- Registry conversion file for policy reconfiguration
│   │   │   ├── transport
│   │   │   │   ├── component_communicate.lua       -- IMU interaction
│   │   │   │   ├── component_effective.lua         -- Seamless upgrade validation
│   │   │   │   ├── component_info_query.lua        -- File for querying seamless upgrade
│   │   │   │   ├── component_process_query.lua     -- Query seamless upgrade progress
│   │   │   │   ├── component_send_confirmed.lua    -- Confirm seamless upgrade result
│   │   │   │   ├── component_upgrade.lua           -- Seamless upgrade
│   │   │   │   └── imu_communicate.lua             -- IMU interaction
│   │   │   └── alarm
│   │   │       ├── alarm_manager.lua               -- In-band alarm manager
│   │   │       ├── alarm.lua                       -- In-band alarm generation
│   │   │       └── defs.lua                        -- In-band alarm definition
│   │   ├── factory
│   │   │   └── bios_factory.lua                    -- Factory class
│   │   ├── handler
│   │   │   ├── bios_prop_handler.lua               -- Property configuration handler
│   │   │   ├── config_handler.lua                  -- Configuration handler
│   │   │   ├── config_util.lua                     -- Configuration handler
│   │   │   ├── effective_time_handler.lua          -- Effective times handler for boot options
│   │   │   ├── error_engineer.lua                  -- Error engine
│   │   │   ├── export_import_engine.lua            -- Import/Export handler
│   │   │   ├── mode_handler.lua                    -- Boot mode handler
│   │   │   └── start_option_handler.lua            -- Boot option handler
│   │   ├── infrastructure
│   │   │   ├── chain.lua                           -- Responsibility chain
│   │   │   ├── crc32.lua                           -- CRC32
│   │   │   ├── file_util.lua                       -- File utility class
│   │   │   ├── firmware_upgrade.lua                -- Upgrade class
│   │   │   ├── fructl.lua                          -- Power control class
│   │   │   ├── imu.lua                             -- IMU interaction class
│   │   │   ├── m3_verify.lua                       -- M3 verification class
│   │   │   ├── power_lock.lua                      -- Power-on/-off lock
│   │   │   ├── serialization_util.lua              -- Serialization utility
│   │   │   └── spi_flash.lua                       -- SPI tool
│   │   ├── interface
│   │   │   ├── mdb
│   │   │   │   └── firmware.lua                    -- Upgrade resource tree
│   │   │   └── signal.lua                          -- Signal class
│   │   ├── pojo                                    -- Entity class
│   │   ├── service                                 -- Service class
│   │   └── util                                    -- Utility class
│   └── service
│       └── main.lua                                -- Application entry

Key Features

1. BIOS Upgrade

(1) Introduction

​ BIOS upgrade modes include equipment upgrade, non-equipment upgrade, and seamless upgrade. Equipment upgrades force a power-on and power-off, while non-equipment upgrades do not. Upgrading the BIOS is to update the content of the upgrade package to the flash memory. For the seamless upgrade, the bottom layer uses the IPMB channel. For the non-seamless upgrade, the bottom layer uses the SPI link.

Upgrade Modes

Upgrade Mode Scenario
Equipment mode Pack the manufacture folder (equipment package).
Common upgrade mode The manufacture folder (equipment package) is not packed.
Seamless upgrade The manufacture folder (equipment package) is not packed. Redfish delivers a seamless upgrade (URL: /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate, including the BiosActivatedScope parameter).

Upgrade Actions

Upgrade Mode Upgrade Action
Equipment upgrade Forcibly power off the OS, update the BIOS flash, and power on the OS.
Non-equipment upgrade, OS power-on Cache the BIOS upgrade package and update the flash memory after power-off (effective).
Non-equipment upgrade, OS power-off Flash BIOS.
Seamless upgrade Upload the firmware to the IMU through the IPMB channel to implement online upgrade.

Upgrade Packages

Package Type update.cfg of the Upgrade Package
Patch package (for seamless upgrade) Version containing HPxxxx
Common package Version not containing HPxxxx

Upgrade Scenarios

Upgrade Mode Upgrade Package Supported
Equipment upgrade Patch package No
Equipment upgrade Common package Yes
Non-equipment upgrade Patch package No
Non-equipment upgrade Common package Yes
Seamless upgrade Patch package Yes
Seamless upgrade Common package No

(2) Service Process

The upgrade process is as follows:

The following figure shows the BIOS upgrade process.

  • First, the system checks whether the upgrade is an equipment upgrade. Then, it checks whether the upgrade package is a patch package. If it is a patch package, the upgrade fails. Otherwise, the system forcibly powers off the device, writes the upgrade package to the flash memory through the SPI link, and then powers on the device.
  • If the upgrade is not an equipment upgrade, the system assumes that it is a seamless upgrade. Then, the system checks whether the upgrade package is a patch package and whether the OS has been started. If these conditions are met, the system transfers the upgrade package to the flash memory through the IPMB channel. If these conditions are not met, the upgrade fails.
  • For a common upgrade, the system checks the power-on and power-off status of the OS. If the OS is powered on, the system executes the cached upgrade package. If the OS is powered off, the system writes the upgrade package to the flash memory through the SPI link.

image

Code process

The BIOS upgrade process consists of the prepare, process, and finish phases.

  • prepare: Decompress the upgrade package.
  • process: Verify the validity of the upgrade package and upgrade mode, and transfer the upgrade package to the flash memory through the SPI or IPMB channel.
  • finish: Perform information cleanup.

image

The most critical part is the list of Executors in upgrade_executor.lua, which is the key process for performing the upgrade. The following table lists the Executors and their functions.

Executor Name Functions
PackageCheckExecutor Verify the package validity. For example, a patch package cannot be upgraded in cold upgrade mode, a non-patch package cannot be upgraded in seamless upgrade mode, and a patch package cannot be upgraded in equipment mode.
BackExecutor Compress the upgrade package into bios.tar.gz.
Cache Cache the upgrade package during power-on upgrade and make it take effect after power-off.
ForcePower Forcibly power on or off the device, which is used in equipment mode.
LockPower Power-on lock. During the upgrade, power-on and power-off need to be locked, and power-on is not allowed.
SpiDriver Load the SPI driver. The SPI can be used to update the .bin package to the flash memory.
DecompressFile Decompress the bios.tar.gz package into a .bin package. (The size and address of the .bin package are the same as those of the flash memory.)
ParserBin Parse the .bin package, including the header, number of firmware files, firmware size, and firmware address.
ComponentFilter During a seamless upgrade, firmware with the same version is filtered out and not upgraded.
SelectChannel Channel selection: seamless upgrade (IPMB channel) or other (SPI link)
UpgradeComponent Upgrade the firmware.
WaitUpgradeFinish Wait for the firmware to take effect during a seamless upgrade.

(3) Example

Non-seamless upgrade

  • Upgrade the BIOS when the OS is powered off. You can see that the BIOS is being upgraded on the in-band interface.

Seamless upgrade

  • Query the URI of the firmware for a seamless upgrade: /redfish/v1/UpdateService/FirmwareInventory/Bios. Hotfix indicates the firmware that can be upgraded seamlessly.

image

  • Trigger a seamless upgrade. The upgrade success information and version change can be viewed in the log.

    url: /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate
    Parameters:
    {
    	"ImageURI":"/tmp/biosimage_patch.hpm",
    	"BiosActivatedScope":["IMU","IMP","SCC"] -- Query the value in the previous step.
    }
    

image

2. BIOS Configuration Import and Export

(1) Introduction

  • In addition to configuring the BIOS on the BIOS setup interface, you can also deliver BIOS configurations to the BIOS through the BMC. The following files are involved:

    • setting.json: BIOS configuration data of the user

    • currentValue.json: BIOS configuration that has taken effect

    • Registery.json: standard configuration file (used to determine whether the delivered configuration is correct)

    • result.json: BIOS running record file

(2) Implementation Mechanism

  • Interface layer: registers RPC interfaces, including import and export interfaces.

  • Service layer: contains service logic code. For example, file_service can export and import BBIOS image verificationIOS configurations, and registry_service can process the registry.json file.

  • Data layer: Considering the slow read/write speed of disks, disk data is loaded to the memory to improve the read/write speed. registry_object is an abstraction of the registry.json file, and setting_object is an abstraction of the currentvalue.json and setting.json files.

    img

  • Importing configuration involves two JSON files: registery.json (standard configuration file) and currentvalue.json (current configuration file). During the import, the system checks whether the imported configuration is valid based on the attribute of the registery.json file. If the configuration is invalid, an error is reported. Then, the system checks whether the imported configuration meets the dependency requirements based on the dependency and currentvalue.json configurations of the registery.json file. If the dependency requirements are met, the import is allowed. Otherwise, the import fails.

img

3. BIOS Image Verification

(1) Introduction

The Platform Firmware Resilience (PFR) function is used to ensure the integrity and recoverability of BIOS firmware, preventing malicious tampering or damage and improving system security and reliability.

(2) Implementation Mechanism

Before in-band power-on, the CMS signature in the header area is used to verify the firmware integrity. If the verification fails, the BIOS is re-burnt for recovery.

sequenceDiagram
    participant bmc_fructl
    participant bmc_bios
    participant Bios
    bmc_fructl ->> bmc_bios: pre-power-on signal
    bmc_bios ->> bmc_fructl: power-on lock
    bmc_bios ->> Bios: Query the CMS signature in the header area
    alt No signature
        bmc_bios ->> bmc_bios: Skip PFR verification
        bmc_bios ->> bmc_fructl: Remove the power-on lock
    else With signature
        bmc_bios ->> Bios: Use the CMS signature to verify the header
        alt Verification passed
            bmc_bios ->> bmc_fructl: Remove the power-on lock
        else Verification failed
            bmc_bios ->> Bios: Use the cached HPM package to upgrade the BIOS.
                alt Upgrade succeeded
                    bmc_bios ->> bmc_fructl: Remove the power-on lock
                else Upgrade failed
                    bmc_bios ->> bmc_fructl: Turn on the permanent power lock and unlock it after the next upgrade is successful
                end
        end
    end

4. BIOS Certificate Management

(1) Introduction

Currently, the BIOS component manages two types of boot certificates: secure boot certificate and HTTP boot certificate. Certificate management operations are implemented through the Redfish interface, including viewing, resetting, deleting, and importing boot certificates. The in-band BIOS uses IPMI commands to perform corresponding certificate operations.

Certificate Type

Certificate Database Type Purpose
db Secure boot signature certificate. The BIOS/UEFI firmware is used to verify the digital signatures of key components such as the boot loader and OS kernel. Only software that passes the verification can be loaded and executed.
dbx Secure boot forbidden signature certificate. The BIOS/UEFI firmware is used to verify the digital signatures of key components such as the boot loader and OS kernel. Components signed by certificates in the DBX cannot be loaded.
cert HTTPS boot certificate, which is used to verify the validity of the firmware, boot program, or BIOS image downloaded from a remote server.
crl Certificate revocation list, which is used to verify whether the digital certificate used by the HTTP boot image has been revoked.

(2) Implementation Mechanism

Users write related certificates through the Redfish interface. During the in-band BIOS startup, the system reads the certificate file to take effect and writes the effective certificate list to the BMC. Users can query the effective certificates through the Redfish interface.

sequenceDiagram
    participant client
    participant bmc_bios
    participant Bios
    client ->> bmc_bios: Manage certificates
    bmc_bios ->> Bios: Report the pending certificates
    Bios ->> bmc_bios: Write the list of certificates that have taken effect
    bmc_bios ->> bmc_bios: Clear the pending certificates
    client ->> bmc_bios: Query the list of certificates that have taken effect

External Interfaces

Resource collaboration interface

/bmc/kepler/Systems/${SystemId}/Bios - ChangePassword

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/Bios bmc.kepler.Systems.Bios ChangePassword a{ss}sss i Changing the BIOS Password Changing the BIOS Password The old password must be correct, and the new password must meet the verification rules. N/A N/A N/A N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/Bios - ClearCmos

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/Bios bmc.kepler.Systems.Bios ClearCmos a{ss} i Clearing BIOS configuration information Clearing BIOS configuration information You must have the configuration permission. N/A N/A N/A N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/Bios - ExportBiosSetup

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/Bios bmc.kepler.Systems.Bios ExportBiosSetup a{ss}s s Exporting BIOS configurations Exporting BIOS configurations N/A N/A N/A Depend on the BIOS reporting configuration. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/Bios - GetCurrentValueSetting

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/Bios bmc.kepler.Systems.Bios GetCurrentValueSetting a{ss}s s Obtaining the current value of an attribute Obtaining the current value of an attribute N/A N/A N/A Depend on the BIOS reporting configuration. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/Bios - ImportBiosSetup

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/Bios bmc.kepler.Systems.Bios ImportBiosSetup a{ss}ss i Importing BIOS configurations Importing BIOS configurations The imported configuration complies with the format and BIOS dependency. N/A N/A Depend on the BIOS reporting configuration rules. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/Bios - ResetSetupConfig

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/Bios bmc.kepler.Systems.Bios ResetSetupConfig a{ss} i Clearing BIOS configurations and pending configurations Clearing BIOS configurations and pending configurations You must have the configuration permission. N/A N/A N/A N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/Bios - SetBiosLogEnabled

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/Bios bmc.kepler.Systems.Bios SetBiosLogEnabled a{ss}y i Setting the switch for printing all BIOS logs Setting the switch for printing all BIOS logs N/A N/A N/A N/A N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/Bios - ExportFirmware

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/Bios bmc.kepler.Systems.Bios ExportFirmware a{ss}s u Exporting BIOS firmware information Exporting BIOS firmware information N/A N/A N/A N/A N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/SecureBootOptions - GetCertificate

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/SecureBootOptions bmc.kepler.Systems.SecureBootOptions GetCertificate a{ss} s Obtaining the BIOS secure boot certificate Obtaining the BIOS secure boot certificate N/A N/A N/A The BIOS is not in the boot phase. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/SecureBootOptions - ImportCertificate

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/SecureBootOptions bmc.kepler.Systems.SecureBootOptions ImportCertificate a{ss}sss N/A Writing the BIOS secure boot certificate Writing the BIOS secure boot certificate The format of the imported certificate is correct. N/A N/A The BIOS is not in the boot phase. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/SecureBootOptions - ResetCertificate

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/SecureBootOptions bmc.kepler.Systems.SecureBootOptions ResetCertificate a{ss}ss N/A Resetting the BIOS secure boot certificate Resetting the BIOS secure boot certificate N/A N/A N/A The BIOS is not in the boot phase. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/BootOptions - GetCertificate

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/BootOptions bmc.kepler.Systems.BootOptions GetCertificate a{ss} s Obtaining the BIOS HTTPS boot certificate Obtaining the BIOS HTTPS boot certificate N/A N/A N/A The BIOS is not in the boot phase. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/BootOptions - ImportCertificate

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/BootOptions bmc.kepler.Systems.BootOptions ImportCertificate a{ss}ss N/A Importing the BIOS HTTPS boot certificate Importing the BIOS HTTPS boot certificate The certificate format is correct. N/A N/A The BIOS is not in the boot phase. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/BootOptions - ImportCrl

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/BootOptions bmc.kepler.Systems.BootOptions ImportCrl a{ss}ss N/A Importing the BIOS HTTPS boot CRL Importing the BIOS HTTPS boot CRL N/A N/A N/A The BIOS is not in the boot phase. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/BootOptions - ResetCertificate

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/BootOptions bmc.kepler.Systems.BootOptions ResetCertificate a{ss}s N/A Resetting the BIOS HTTPS boot certificate Resetting the BIOS HTTPS boot certificate N/A N/A N/A The BIOS is not in the boot phase. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/BootOptions - ResetCrl

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/BootOptions bmc.kepler.Systems.BootOptions ResetCrl a{ss}s N/A Resetting the BIOS HTTPS boot CRL Resetting the BIOS HTTPS boot CRL N/A N/A N/A The BIOS is not in the boot phase. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/BootOptions - SetBootMode

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/BootOptions bmc.kepler.Systems.BootOptions SetBootMode a{ss}s i Setting the BIOS boot mode Setting the BIOS boot mode Currently, only UEFI is supported. N/A N/A N/A N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/BootOptions - SetBootOrder

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/BootOptions bmc.kepler.Systems.BootOptions SetBootOrder a{ss}s iss Setting the BIOS boot sequence Setting the BIOS boot sequence The boot sequence complies with the rules. N/A N/A Depend on the BIOS reporting configuration rules. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/BootOptions - SetStartOption

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/BootOptions bmc.kepler.Systems.BootOptions SetStartOption a{ss}s i Setting the BIOS boot option Setting the BIOS boot option Boot options: None, Pxe, Floppy, Cd, Hdd, and BiosSetup N/A N/A N/A N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/BootOptions - SetStartOptionFlag

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/BootOptions bmc.kepler.Systems.BootOptions SetStartOptionFlag a{ss}s i Setting the number of times for the BIOS boot option to take effect Setting the number of times for the BIOS boot option to take effect Available effective times: Disabled, Once, and Continuous N/A N/A N/A N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/BiosUpgradeService - ActivateFirmware

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/BiosUpgradeService bmc.kepler.Systems.BiosUpgradeService ActivateFirmware a{ss}as N/A Activating the BIOS firmware Activating the BIOS firmware The firmware must be eligible for activation. N/A N/A Seamless upgrade has been performed. N/A Unique SystemId N/A

/bmc/kepler/Systems/${SystemId}/BiosUpgradeService - ExportBiosFirmware

Path Interface Name Method Input Parameter Output Parameter Description Service Function Constraint Unit Mutual Exclusion Dependency Format Example Uniqueness Compatibility
/bmc/kepler/Systems/${SystemId}/BiosUpgradeService bmc.kepler.Systems.BiosUpgradeService ExportBiosFirmware a{ss} u Exporting BIOS firmware information Exporting BIOS firmware information N/A N/A N/A N/A N/A Unique SystemId N/A

IPMI Interface

Command Description
SetBootOption Set boot options.
GetBootOption Obtain boot options.
SetBridgeSystemInfo Set boot option (BridgeSystemInfo).
SetChannelInfo Set boot option (ChannelInfo).
SetDeviceSystemInfo Set boot option (DeviceSystemInfo).
SetOperatingSystemName Set boot option (OperatingSystemNam).
SetPrimaryOperatingSystemName Set boot option (PrimaryOperatingSystemName).
SetProgressSystemInfo Set boot option (ProgressSystemInfo).
SetSystemName Set boot option (SystemName).
WriteOcpCardBdfToBmc Set the BDF of the OCP card.
WritePcieCardBdfToBmc Set the BDF of the PCIe card.
WritePcieDiskBdfToBmc Set the BDF of the disk.
GetBridgeSystemInfo Obtain boot option (BridgeSystemInfo).
GetChannelInfo Obtain boot option (ChannelInfo).
GetDeviceSystemInfo Obtain boot option (DeviceSystemInfo).
GetOperatingSystemName Obtain boot option (OperatingSystemName).
GetPrimaryOperatingSystemName Obtain boot option (PrimaryOperatingSystemName).
GetProgressSystemInfo Obtain boot option (ProgressSystemInfo).
GetSystemFirmwareVersion Obtain boot option (SystemFirmwareVersion).
GetSystemName Obtain boot option (SystemName).
GetBiosGoldValid Obtain firmware backup status.
AddBiosLogEntry Set BIOS log information.
GetBiosBootInfo Obtain BIOS boot parameters.
GetFileChanged Obtain BIOS configuration file modification status.
GetSmBiosInfo Obtain SMBIOS information.
ReadFileFromBmc Read the configuration file from the BMC.
SetBiosBootInfo Set BIOS boot parameters.
SetBiosVersion Set the BIOS version.
SetCertificateAssertion Set the BIOS certificate expiration alarm.
SetFileChanged Set the modification status of the BIOS configuration file.
SetSmBiosInfo Set the SMBIOS information.
UpdateBiosPassword Set the BIOS password.
UpdateBiosStatus Set the BIOS boot status.
UpdatePostStatus Set BIOS post-boot status
WriteFileToBmc Report the BIOS configuration file.
WriteSmbiosData Report the SMBIOS configuration file.
GetAllowedPackageType Obtain the security type of the BIOS package that can be upgraded in equipment mode.
SetAllowedPackageType Set the security type of the BIOS package that can be upgraded in equipment mode.
SetBaseOSBootEvent Set BIOS sensor alarms.
GetBiosConfiguration Obtain BIOS configuration items.
SetBiosConfiguration Set BIOS configuration items.
SetKrunVersion Set the Krun firmware version.

Configuration

N/A

Introduction

System BIOS management app

Customize your domain