- Getting Started
- Building Blocks
- Application Onboarding
- Reference Architectures
- Edge Applications
- Cloud Adapters
- Development Kits
- Release history
SPDX-License-Identifier: Apache-2.0 Copyright (c) 2019 Intel Corporation
BIOS and Firmware Configuration on the OpenNESS Platform
- Use case for edge
- Details: BIOS and firmware configuration on OpenNESS Network Edge
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.
OpenNESS 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, OpenNESS 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 OpenNESS 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 OpenNESS
Details: BIOS and firmware configuration on OpenNESS 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.
To enable BIOSFW, perform the following steps:
- The SYSCFG package must be downloaded and stored inside OpenNESS Experience Kits’
biosfw/directory as a
- Change the variable
- OpenNESS Experience Kits’ NetworkEdge deployment for both controller and nodes can be started.
NOTE: BIOSFW does not verify if the motherboard is compliant with the syscfg tool. It is assumed that syscfg verifies the motherboard and requirements.
kubectl biosfw --helpto learn about usage.
kubectl biosfw save <node_name> saved_bios.inito get BIOS setting of the
kubectl biosfw restore <node_name> bios_to_restore.inito restore BIOS settings on
<node_name>node from file
kubectl biosfw restore <node_name> bios_to_restore.ini admin_passwordto restore BIOS settings on
<node_name>node using BIOS Admin Password (last argument).
kubectl biosfw direct <node_name> /ito run
kubectl biosfw direct <node_name> /d BIOSSETTINGS "Quiet Boot"to run
syscfg /d BIOSSETTINGS "Quiet Boot"on