SPDX-License-Identifier: Apache-2.0
Copyright (c) 2019 Intel Corporation
BIOS and Firmware Configuration on the Smart Edge Open Platform
- Overview
- Use case for edge
- Details: BIOS and firmware configuration on Smart Edge Open Network Edge
- Reference
Overview
BIOS and firmware are the fundamental platform configurations of a typical commercial, off-the-shelf platform. BIOS and firmware configurations are low-level configurations that can determine the environment available for network functions or applications. A typical BIOS configuration relevant for a network function or application may include several configurations (CPU, cache and memory, PCIe, power and performance, etc.). Some network functions and applications need certain BIOS and firmware settings to be configured in a specific way for optimal functionality and behavior.
Use case for edge
Example: an AI Inference application that uses an accelerator such as an FPGA. To get optimal performance, when this application is deployed by the Resource Orchestrator, it is recommended to place the application on the same node and CPU Socket to which the accelerator is attached. To ensure this, NUMA, PCIe memory-mapped IO, and cache configurations need to be optimally configured. Similarly, for a network function like a base station or core network instruction set, cache and hyperthreading play an important role in the performance and density.
Smart Edge Open provides a reference implementation demonstrating how to configure low-level platform settings such as BIOS and firmware, and it provides the capability to check if they are configured as per a required profile. To implement this feature, Smart Edge Open uses the Intel® System Configuration Utility. The Intel® System Configuration Utility (Syscfg) is a command-line utility that can be used to save and restore BIOS and firmware settings to a file or to set and display individual settings.
NOTE: The Intel® System Configuration Utility is only supported on certain server platforms from Intel. Refer to the Intel® System Configuration Utility user guide for the supported server products.
NOTE: The Intel® System Configuration Utility is not intended for and should not be used on any non-Intel server products.
The Smart Edge Open Network Edge implementation goes a step further and provides an automated process using Kubernetes* to save and restore BIOS and firmware settings. To do this, the Intel® System Configuration Utility is packaged as a pod and deployed as a Kubernetes job that uses ConfigMap. This ConfigMap provides a mount point that has the BIOS and firmware profile that needs to be used for the node. A platform reboot is required for the BIOS and firmware configuration to be applied. To enable this, the BIOS and firmware job is deployed as a privileged pod.
Figure - BIOS and Firmware configuration on Smart Edge Open
Details: BIOS and firmware configuration on Smart Edge Open Network Edge
BIOS and firmware configuration features are wrapped in a kubectl plugin. Knowledge of Intel SYSCFG utility is required for usage. Intel SYSCFG must be manually downloaded by the user after accepting the license. Download the utility here.
Setup
To enable BIOSFW, perform the following steps:
- The SYSCFG package must be downloaded and stored inside Converged Edge Experience Kits’
biosfw/
directory as asyscfg_package.zip
:ido-converged-edge-experience-kits/ceek/biosfw/syscfg_package.zip
- Change the variable
ne_biosfw_enable
ininventory/default/group_vars/all/10-open.yml
to “true”:ne_biosfw_enable: true
- Converged Edge Experience Kits’ NetworkEdge deployment for both controller and nodes can be started.
Usage
NOTE: BIOSFW does not verify if the motherboard is compliant with the syscfg tool. It is assumed that syscfg verifies the motherboard and requirements.
- Use
kubectl biosfw --help
to learn about usage. - Use
kubectl biosfw save <node_name> saved_bios.ini
to get BIOS setting of the<node_name>
node tosaved_bios.ini
. - Use
kubectl biosfw restore <node_name> bios_to_restore.ini
to restore BIOS settings on<node_name>
node from filebios_to_restore.ini
. - Use
kubectl biosfw restore <node_name> bios_to_restore.ini admin_password
to restore BIOS settings on<node_name>
node using BIOS Admin Password (last argument). - Use
kubectl biosfw direct <node_name> /i
to runsyscfg /i
on<node_name>
node. - Use
kubectl biosfw direct <node_name> /d BIOSSETTINGS "Quiet Boot"
to runsyscfg /d BIOSSETTINGS "Quiet Boot"
on<node_name>
node.