System BIOS management app
| Files | Last commit | Last 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.
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.

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.

-
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. }

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_servicecan export and import BBIOS image verificationIOS configurations, andregistry_servicecan process theregistry.jsonfile. -
Data layer: Considering the slow read/write speed of disks, disk data is loaded to the memory to improve the read/write speed.
registry_objectis an abstraction of theregistry.jsonfile, andsetting_objectis an abstraction of thecurrentvalue.jsonandsetting.jsonfiles. -
Importing configuration involves two JSON files:
registery.json(standard configuration file) andcurrentvalue.json(current configuration file). During the import, the system checks whether the imported configuration is valid based on the attribute of theregistery.jsonfile. 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 andcurrentvalue.jsonconfigurations of theregistery.jsonfile. If the dependency requirements are met, the import is allowed. Otherwise, the import fails.
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