APPLYING ATTRIBUTES INTRODUCED IN FIRMWARE UPDATES

An information handling system includes a memory device and a firmware update module. The memory device includes a firmware component associated with an element of the information handling system. The firmware update module is configured receives a firmware update for the firmware component, determines that the firmware update includes a setting, stores the firmware update to the memory device, writes the setting to a non-volatile memory associated with the element, and reboots the information handling system.

FIELD OF THE DISCLOSURE

This disclosure generally relates to information handling systems, and more particularly relates to applying attributes introduced in firmware updates in an information handling system.

BACKGROUND

SUMMARY

An information handling system may include a memory device and a firmware update module. The memory device may include a firmware component associated with an element of the information handling system. The firmware update module may be configured to receive a firmware update for the firmware component, determine that the firmware update includes a setting, store the firmware update to the memory device, write the setting to a non-volatile memory associated with the element, and reboot the information handling system.

DETAILED DESCRIPTION OF DRAWINGS

FIG.1illustrates an information handling system100that is connected to a remote management system130. Information handling system100includes a host processing system110and a management system120. Host processing system110represents the hardware, firmware, operating systems, applications, and other elements typical of an information handling system such as information handling system300as described below. In this regard, host processing system110provides the data processing functions and features as are typically associated with a computer device, such as a laptop computer, a workstation, an element of datacenter equipment, a mobile device such as a cell phone or tablet device, or any other type of computing device, as needed or desired. Host processing system110includes hardware elements, as generally illustrated by a device112, and firmware elements, as generally illustrated by device firmware114associated with the device, a device driver116associated with the device, and a basic input/output system/universal extensible firmware interface (BIOS/UEFI)118associated generally with the host processing system.

Management system120represents a processing system instantiated on information handling system100that is separate from, and operates out-of-band from, host processing system110. Management system120includes hardware elements, as generally illustrated by a baseboard management controller (BMC)122, and firmware elements, as generally illustrated by BMC firmware124. BMC122includes a firmware/attribute update module126, and is connected to remote management system130. Management system120operates to monitor, manage, and maintain the operational state of information handling system100. In particular, management system120operates to monitor, manage, and maintain the operational state of the firmware elements of information handling system100, including device firmware114, device driver116, BIOS/UEFI118, and BMC firmware124.

Information handling system100may include additional firmware elements. In particular, host processing system110may include one or more device in addition to device112, and that any such additional devices may include associated firmware and drivers, as needed or desired. Similarly, management system120may include other elements in addition to BMC122, and any such additional elements may include associated firmware. Thus as used herein, the term “firmware elements” includes one or more of device firmware114, device driver116, BIOS/UEFI118, BMC firmware124, and any other firmware instantiated on information handling system100, as needed or desired.

In monitoring the firmware elements of information handing system100, management system120utilizes various management communication interfaces with the elements of the information handling system to track the operational state, including the settings and configurations, of the firmware elements. Examples of management communication interfaces may include various low-speed data communication interfaces, such as an Inter-Integrated Circuit (I2C) interface or Improved I2C (I3C) interface, a System Management Bus (SMBus), a Serial Presence Detect (SPD) interface, a Serial Peripheral Interface (SPI), or the like. Other examples of management communication interfaces may include various Host-to-BMC interfaces, as needed or desired. Information related to the monitoring of the firmware elements are utilized by BMC122to provide management of the firmware elements, as described further below. The monitoring information is also provided to remote management system130, as needed or desired, and the remote management system may utilize the monitoring information to implement various policies or operational states on information handling system100or on additional information handling systems, as needed or desired. The details of monitoring the operational state of the firmware elements of an information handling system by a management system are known in the art and will not be described further herein, except as may be needed to illustrate the current embodiments.

In managing the firmware elements of information handling system100, management system120communicates with the elements of the information handling system to manipulate the settings and configurations of the firmware elements. In this regard, the firmware elements include various settings that influence the operations of the associated system, and that can be set in one of a number of different states. For example, BIOS/UEFI118may include an optional user interface that permits a user of information handling system100to interact with the various setting to configure the information handling system as desired by the user. Management system120may operate alternatively to execute the user interface via, for example, a script, to manipulate the settings, or to directly manipulate the settings in a non-volatile memory device associated with the storage of the settings by BIOS/UEFI118. Management system120may manipulate the settings and configurations in order to optimize the operations of information handling system100, to secure the operations, to implement various policies related to the operations, or to otherwise change the settings, as needed or desired. The details of managing the operational state of the firmware elements of an information handling system by a management system are known in the art and will not be described further herein, except as may be needed to illustrate the current embodiments.

In maintaining the firmware elements of information handling system100, management system120communicates with the elements of the information handling system, and particularly with non-volatile memory devices associated with the firmware elements, to store, recover, update, or otherwise manipulate the underlying code of the firmware elements, as needed or desired. For example, management system120may receive a firmware updated firmware code for a particular firmware element from remote management system130, and execute update procedures on the firmware element to replace existing firmware code with the updated firmware code. In another example, a firmware code associated with a particular firmware element may have become corrupted. Management system120may recover or restore the original firmware code for the firmware element. The details of maintaining the firmware code of an information handling system by a management system are known in the art and will not be described further herein, except as may be needed to illustrate the current embodiments.

It has been understood by the inventors of the current disclosure that the management of the firmware elements of an information handling system is typically accompanied by a subsequent operation of maintaining of the firmware elements. In particular, firmware updates may typically be provided in association with new functions or features of the associated hardware or the operating system of the information handling system, with new security functions or features or newly discovered security holes, with enhanced performance capabilities of functions or features, or the like. Such new functions and features are typically enabled by new settings that enable the functions and features. Thus, the maintenance step (that is, the storing of new firmware updates) is followed by a management step (that is, the changing of the new settings). In typical practice, an update to a firmware element necessitates a reboot of the information handling system, and a change to the settings of the firmware element necessitates a second reboot of the information handling system.

Such successive reboots of the information handling system are not desirable because they require significant amounts of time to execute, particularly in an enterprise environment where large memory subsystems need to be initialized, multiple I/O interfaces need to be configured, complex network structures need to be implemented, or the like. Moreover, in the enterprise environment, such successive reboots result in significant “down-time” for the resources of the enterprise, particularly when multiple systems need to be updated at the same time. Also, in the consumer environment, a user typically remains attentive to the process through the entirety of the multiple reboots to ensure that the proper settings are enacted and that the entire process is performed successfully. Thus it remains desirable to be able to perform firmware updates and setting changes with a single reboot of the information handling system.

In a particular embodiment, a firmware configuration profile (FCP) is provided in conjunction with a firmware update. As illustrated, a firmware update140is provided to remote management system130for implementation on information handling system100by management system120. Firmware update140includes a firmware package142and a FCP file144. Firmware package142represents the firmware update code as may be typically associated with a firmware update. As such, firmware package140may represent a firmware update for any firmware element of information handling system100, including at least one of device firmware114, device driver116, BIOS/UEFI118, BMC firmware124, or another firmware element of the information handling system, as needed or desired.

FCP file144represents metadata associated with firmware package142that includes attributes that are ascribed to the firmware package, desired states for the attributes to retain upon completion of the firmware update process, and dependencies associated with the attributes and the firmware package. In a particular sense, an attribute may be understood to equate to a setting or configuration that is available in firmware package142. However more broadly, an attribute may relate to other conditions of the firmware package or the device to which firmware update140is related. For example in addition to a setting or configuration attribute, an attribute can ascribe identification information to the device, such as a Fully Qualified Device Descriptor (FQDD) or Fully Qualified Device Name (FQDN), a logical path associated with the device, a content path, or other information not directly related to operational conditions of the device itself, as needed or desired.

The attributes may be associated with one or more dependency that governs the implementation of the associated attributes. The dependencies may relate to requirements for the implementation of the associated attributes, to recommendations associated with the attributes, or the like. In particular, requirements may relate to associate attributes within firmware package142that need to be enabled together, attributes that need to be disabled in order to enable the particular attribute, devices which must or must not be present on information handling system100before enabling the particular attribute, other firmware or firmware versions which must or must not be present on the information handling system before enabling the particular attribute, or the like. An example of a dependency may include where a particular BIOS/UEFI version must be present before a device operating mode is enabled.

An example of firmware package142is shown below:

An example of FCP file144is shown below:

Firmware/attribute update module126operates to import firmware update140and to install the update to the associated firmware element. The importation of firmware update140may be in response to a push of the firmware update from remote management system130, in response to a user requested firmware update process, such as to install an new firmware version, to replace a firmware element, to recover a firmware element, or the like. When firmware update140is imported, firmware/attribute update module126operates to evaluate FCP file144to determine what, if any, dependencies are provided by the FCP file. If FCP file144exhibits any dependencies, firmware/attribute update module126operates to attempt to resolve the dependencies.

For example, if a dependency relates to the presence or absence of a particular BIOS/UEFI revision level, firmware/attribute update module126operates to verify the BIOS/UEFI revision level, and if necessary, to perform an update to BIOS/UEFI118to bring the BIOS/UEFI into conformance with the dependency before installing firmware package142. In another example, if a dependency relates to the presence or absence of a hardware device, firmware/attribute update module126operates to check for the presence of the hardware device. If the hardware device is present, then firmware/attribute update module126installs firmware package142. However if the hardware device is not present, then firmware/attribute update module126provides an indication that the particular attribute cannot be implemented due to the absence of the hardware device.

When all dependencies included in FCP file144are cleared, then firmware/attribute update module126operates to install firmware package142. The process of updating firmware elements by a firmware updater are known in the art and will not be further described herein, except as may be needed to illustrate the current embodiments. After firmware package is installed, firmware/attribute update module126forgoes the reboot of information handling system100, as may be typical of a firmware updater. Rather, firmware/attribute update module126operates to implement the attributes found in FCP file144. In particular, any settings or configurations found in the attributes of FCP file144are stored to the non-volatile memory location associated with the settings and configurations for the firmware element associated with firmware update140. Only after storing the settings and configurations defined by the attributes found in FCP file144does firmware/attribute update module126operate to reboot information handling system100. In this way, firmware/attribute update module126streamlines the firmware update process by eliminating multiple reboot cycles.

In a particular embodiment, BIOS/UEFI118includes a firmware update module that operates to implement the firmware update process, including firmware recovery, firmware replacement, and the like. In this embodiment, the firmware update module of BIOS/UEFI118includes an attribute update module similar to attribute update module126, as described above. In this way, a user of information handling system100may incorporate a firmware update similar to firmware update140out of a BIOS user interface, such as a firmware update interface, as needed or desired. The firmware update interface may include a FCP editor that permits the user to set the firmware attributes prior to the implementation of the firmware update. Then the attribute update module instantiated by BIOS/UEFI118operates to evaluate the attributes and any dependencies, to resolve the dependencies, and to perform the firmware update, as described above.

FIG.2illustrates a method200of applying attributes introduced in firmware updates for a device in an information handling system starting at block202. A user or system administrator creates a FCP file for a firmware update in block204. The firmware update including the FCP file is imported to a BMC in block206, and the BMC evaluates the FCP file in block208. A decision is made as to whether or not all dependencies associated with the identified attributes in the FCP file have been met in decision block210. If not, the “NO” branch of decision block210is taken, the unresolved dependency is resolved in block212, a next dependency is identified in block214, and the method loops back to decision block210. When all of the dependencies are resolved, the “YES: branch of decision block210is taken, and the firmware update is installed in the information handling system in block216. The settings and configurations identified by the attributes in the FCP file are stored to the non-volatile memory associated with the device in block218, the BMC reboots the information handling system in block220, and the method ends in block222.

Information handling system300can include devices or modules that embody one or more of the devices or modules described below, and operates to perform one or more of the methods described below. Information handling system300includes a processors302and304, an input/output (I/O) interface310, memories320and325, a graphics interface330, a basic input and output system/universal extensible firmware interface (BIOS/UEFI) module340, a disk controller350, a hard disk drive (HDD)354, an optical disk drive (ODD)356, a disk emulator360connected to an external solid state drive (SSD)364, an I/O bridge370, one or more add-on resources374, a trusted platform module (TPM)376, a network interface380, a management device390, and a power supply395. Processors302and304, I/O interface310, memory320, graphics interface330, BIOS/UEFI module340, disk controller350, HDD354, ODD356, disk emulator360, SSD364, I/O bridge370, add-on resources374, TPM376, and network interface380operate together to provide a host environment of information handling system300that operates to provide the data processing functionality of the information handling system. The host environment operates to execute machine-executable code, including platform BIOS/UEFI code, device firmware, operating system code, applications, programs, and the like, to perform the data processing tasks associated with information handling system300.

In the host environment, processor302is connected to I/O interface310via processor interface306, and processor304is connected to the I/O interface via processor interface308. Memory320is connected to processor302via a memory interface322. Memory325is connected to processor304via a memory interface327. Graphics interface330is connected to I/O interface310via a graphics interface332, and provides a video display output336to a video display334. In a particular embodiment, information handling system300includes separate memories that are dedicated to each of processors302and304via separate memory interfaces. An example of memories320and325include random access memory (RAM) such as static RAM (SRAM), dynamic RAM (DRAM), non-volatile RAM (NV-RAM), or the like, read only memory (ROM), another type of memory, or a combination thereof.

BIOS/UEFI module340, disk controller350, and I/O bridge370are connected to I/O interface310via an I/O channel312. An example of I/O channel312includes a Peripheral Component Interconnect (PCI) interface, a PCI-Extended (PCI-X) interface, a high-speed PCI-Express (PCIe) interface, another industry standard or proprietary communication interface, or a combination thereof. I/O interface310can also include one or more other I/O interfaces, including an Industry Standard Architecture (ISA) interface, a Small Computer Serial Interface (SCSI) interface, an Inter-Integrated Circuit (I2C) interface, a System Packet Interface (SPI), a Universal Serial Bus (USB), another interface, or a combination thereof. BIOS/UEFI module340includes BIOS/UEFI code operable to detect resources within information handling system300, to provide drivers for the resources, initialize the resources, and access the resources. BIOS/UEFI module340includes code that operates to detect resources within information handling system300, to provide drivers for the resources, to initialize the resources, and to access the resources.

Disk controller350includes a disk interface352that connects the disk controller to HDD354, to ODD356, and to disk emulator360. An example of disk interface352includes an Integrated Drive Electronics (IDE) interface, an Advanced Technology Attachment (ATA) such as a parallel ATA (PATA) interface or a serial ATA (SATA) interface, a SCSI interface, a USB interface, a proprietary interface, or a combination thereof. Disk emulator360permits SSD364to be connected to information handling system300via an external interface362. An example of external interface362includes a USB interface, an IEEE 2394 (Firewire) interface, a proprietary interface, or a combination thereof. Alternatively, solid-state drive364can be disposed within information handling system300.

I/O bridge370includes a peripheral interface372that connects the I/O bridge to add-on resource374, to TPM376, and to network interface380. Peripheral interface372can be the same type of interface as I/O channel312, or can be a different type of interface. As such, I/O bridge370extends the capacity of I/O channel312when peripheral interface372and the I/O channel are of the same type, and the I/O bridge translates information from a format suitable to the I/O channel to a format suitable to the peripheral channel372when they are of a different type. Add-on resource374can include a data storage system, an additional graphics interface, a network interface card (NIC), a sound/video processing card, another add-on resource, or a combination thereof. Add-on resource374can be on a main circuit board, on separate circuit board or add-in card disposed within information handling system300, a device that is external to the information handling system, or a combination thereof.

Network interface380represents a NIC disposed within information handling system300, on a main circuit board of the information handling system, integrated onto another component such as I/O interface310, in another suitable location, or a combination thereof. Network interface device380includes network channels382and384that provide interfaces to devices that are external to information handling system300. In a particular embodiment, network channels382and384are of a different type than peripheral channel372and network interface380translates information from a format suitable to the peripheral channel to a format suitable to external devices. An example of network channels382and384includes InfiniBand channels, Fibre Channel channels, Gigabit Ethernet channels, proprietary channel architectures, or a combination thereof. Network channels382and384can be connected to external network resources (not illustrated). The network resource can include another information handling system, a data storage system, another network, a grid management system, another suitable resource, or a combination thereof.

Management device390represents one or more processing devices, such as a dedicated baseboard management controller (BMC) System-on-a-Chip (SoC) device, one or more associated memory devices, one or more network interface devices, a complex programmable logic device (CPLD), and the like, that operate together to provide the management environment for information handling system300. In particular, management device390is connected to various components of the host environment via various internal communication interfaces, such as a Low Pin Count (LPC) interface, an Inter-Integrated-Circuit (I2C) interface, a PCIe interface, or the like, to provide an out-of-band (OOB) mechanism to retrieve information related to the operation of the host environment, to provide BIOS/UEFI or system firmware updates, to manage non-processing components of information handling system300, such as system cooling fans and power supplies. Management device390can include a network connection to an external management system, and the management device can communicate with the management system to report status information for information handling system300, to receive BIOS/UEFI or system firmware updates, or to perform other task for managing and controlling the operation of information handling system300. Management device390can operate off of a separate power plane from the components of the host environment so that the management device receives power to manage information handling system300when the information handling system is otherwise shut down. An example of management device390include a commercially available BMC product or other device that operates in accordance with an Intelligent Platform Management Initiative (IPMI) specification, a Web Services Management (WSMan) interface, a Redfish Application Programming Interface (API), another Distributed Management Task Force (DMTF), or other management standard, and can include an Integrated Dell Remote Access Controller (iDRAC), an Embedded Controller (EC), or the like. Management device390may further include associated memory devices, logic devices, security devices, or the like, as needed or desired.