WO2022050938A1 - Firmware event recovery - Google Patents

Firmware event recovery Download PDF

Info

Publication number
WO2022050938A1
WO2022050938A1 PCT/US2020/049027 US2020049027W WO2022050938A1 WO 2022050938 A1 WO2022050938 A1 WO 2022050938A1 US 2020049027 W US2020049027 W US 2020049027W WO 2022050938 A1 WO2022050938 A1 WO 2022050938A1
Authority
WO
WIPO (PCT)
Prior art keywords
firmware
computing device
event
component
resource
Prior art date
Application number
PCT/US2020/049027
Other languages
French (fr)
Inventor
Kang-Ning Feng
Ming Chang HUNG
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2020/049027 priority Critical patent/WO2022050938A1/en
Publication of WO2022050938A1 publication Critical patent/WO2022050938A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Definitions

  • Firmware can provide low-level control for some or all of a computing device’s hardware.
  • Computing devices can include firmware components (e.g., controllers, processors, sensors, camera, and others) that utilize the firmware.
  • Firmware components can be corrupted during firmware updates, power surges, blackouts, improper voltage from a computing device’s power supply unit, and/or other electrical events.
  • Fig. 1 illustrates an example of a computing device for firmware event recovery.
  • Fig. 2 illustrates an example of a memory resource storing instructions for firmware event recovery.
  • FIG. 3 illustrates an example of a computing device for firmware event recovery.
  • a computing device can utilize firmware instructions to perform particular functions such as performing a boot operation.
  • a computing device can utilize a basic input-output system (BIOS) or unified extensible firmware interface (UEFI) to perform certain actions.
  • BIOS refers to a non-volatile firmware component to perform hardware initialization during a startup sequence of the computing device and to provide runtime services for operating systems (OSes) and/or other programs. For example, as a computing device is started (i.e., booted), the BIOS can initialize hardware of the computing device.
  • a mobile device refers to a mechanical or electrical device that transmits or modifies energy to perform or assist in the performance of tasks.
  • Example computing devices include a laptop computer, a notebook computer, a desktop computer, an all-in-one (AIO) computer, and/or a mobile device, among other types of computing devices.
  • a mobile device can include computing devices that are (or can be) carried and/or worn by a user.
  • a mobile device can be a phone (e.g., a smart phone), a tablet, a personal digital assistant (PDA), smart glasses, and/or a wrist-worn device (e.g., a smart watch), among other types of mobile devices.
  • the term “operating system” (OS) refers to instructions or software that supports a computing device’s basic functions, such as scheduling tasks, executing applications, and/or controlling peripheral devices.
  • firmware refers to instructions or software that provides control of particular hardware of a computing device.
  • firmware component refers to a device containing the firmware and/or utilizing (e.g., being controlled by) the firmware.
  • a power delivery controller, a thunderbolt controller, a camera, a card reader, a fingerprint reader, etc. can each include its own firmware.
  • the firmware of the firmware components can be updated.
  • a firmware and a firmware component associated with the firmware can experience an event such as, but not limited to firmware corruption while being updated.
  • firmware corruption or “corrupted firmware,” refers to a failure of transmission and/or processing which can introduce unintended changes to the original data and can cause the computing device to crash and or be damaged permanently. Such an event or corruption can cause permanent damage to the firmware component and result in expensive replacement.
  • a firmware corruption can cause the computing device to function slowly and/or may cause the computing device to not respond.
  • the corrupted firmware components can be detected using an OS and/or customer service may detect and recover corrupted firmware components of a computing device.
  • a firmware corruption of a firmware component may be detected and recovered manually. For example, a user may receive an error notification from an event-log and/or a Windows Device Manager (WDM). Based on the notification, the user may ask for help from a helpdesk and/or self-diagnose that a firmware is corrupted and download a firmware update package to recover the firmware component.
  • WDM Windows Device Manager
  • Such approaches can be time consuming and/or involve expensive recovery engineers to detect and repair the corruption. Additionally, such approaches can cause additional corruption to firmware components.
  • a user may manually use an OS level Firmware Update & Recovery (FUR) application, to update, download, and/or recover firmware of a firmware component.
  • FUR Firmware Update & Recovery
  • the FUR application can back-up the BIOS and firmware images of the firmware component into the storage device of the computing device.
  • the BIOS detects a firmware component image during a power-on self-test (POST) sequence of the computing device, then the BIOS can read out the back-up version of the firmware component image to recover that firmware component.
  • POST sequence refers to a process performed by firmware and/or software routines after a computing device is powered on to determine whether hardware of the computing device is working correctly. If the BIOS does not detect a firmware component image during the POST sequence, the OS of the computing device is rebooted. However, in such a recovery system, a back-up image in the storage device cannot be used to recover the firmware of the firmware component.
  • a firmware image of a redundant firmware component may be integrated in the BIOS image area and saved in a read only memory (ROM) (e.g., Flash ROM, etc.) when the BIOS is updated.
  • ROM read only memory
  • the BIOS can use the integrated redundant firmware image to recover firmware component.
  • such a recovery system can be costly as it can include the use of a larger Flash ROM.
  • Firmware event recovery can include a computing device to generate a virtual component of a physical component associated with the computing device.
  • the computing device can utilize a BIOS to generate the virtual component of the physical component.
  • the computing device can utilize the BIOS to identify an event (e.g., corruption, firmware corruption, etc.) associated with firmware of the virtual component based on a firmware test, in some examples, the computing device can utilize the BIOS to publish the event in a table (e.g., advanced configuration and power interface (ACPI) table, table outside a Flash ROM, etc.).
  • the computing device can utilize an operating system or firmware recovery agent to perform a firmware recovery for the physical component based on the event published in the table.
  • ACPI advanced configuration and power interface
  • the recovery agent can determine a location of the back-up image of the firmware component, determine a recovery sequence based on the location of the back-up image, and recover the firmware component.
  • the term “back-up image” refers to a computer file that can create a duplicate of a firmware of a firmware component.
  • a unified and automated corruption detection and recovery process can be cost effective with limited user intervention.
  • publishing the event or firmware corruption of the physical component outside of a Flash ROM can allow a Windows Platform Binary Table (WPBT) to be utilized by other components. In this way, the Flash ROM can also be utilized to store other data or be relatively smaller compared to previous examples that utilize the Flash ROM to store firmware images.
  • the recovery agent can be a third party recovery agent that can be installed or deployed on a plurality of different operating systems to provide cross operating system support.
  • Fig. 1 illustrates an example of a computing device 100 for firmware event recovery.
  • the computing device 100 can include a processor resource 102 communicatively coupled to a memory resource 104.
  • the memory resource 104 can include instructions 106, 108, 110, 112 that can be executed by the processor resource 102 to perform particular functions.
  • the processor resource 102 may be a central processing unit (CPU), a semiconductor-based microprocessor, and/or other hardware devices suitable for retrieval and execution of non-transitory machine- readable instructions.
  • the computing device 100 can be associated with a plurality of components.
  • the computing device 100 can be utilized to display images on a display, utilize a biometric scanner for authentication, utilize a computing mouse to make selections on a user interface, and/or be communicatively coupled to a plurality of peripheral devices.
  • the computing device 100 can be iocal or remote to the plurality of components.
  • the computing device 100 can include instructions 106, 108, 110, 112 stored on a machine-readable medium (e.g., memory resource 104, non-transitory computer-readable medium, etc.) and executable by a processor resource 102.
  • a machine-readable medium e.g., memory resource 104, non-transitory computer-readable medium, etc.
  • the computing device 100 can utilize a non- transitory computer-readable medium storing instructions 106, 108, 110, 112 that, when executed, cause the processor resource 102 to perform corresponding functions.
  • the computing device 100 can include instructions 106 that can be executed by a processor resource 102 to generate a virtual component of a physical component associated with the computing device 100.
  • the computing device 100 can be communicatively coupled to a plurality of components.
  • the plurality of components can be physical components that can include firmware instructions to allow the component to communicate and/or interact with the computing device 100.
  • the virtual component can be an emulation of the physical component.
  • the virtual component can be a virtual representation of the physical component that can execute the same or duplicate firmware of the physical component. In this way, the virtual component can be utilized to test a performance of the physical component without having the physical component be activated.
  • the firmware of the physical component can be tested utilizing the virtual component of the corresponding physical component.
  • the computing device 100 can include instructions 108 that can be executed by a processor resource 102 to identify an event associated with firmware of the virtual component based on a firmware test.
  • an event associated with firmware can include an issue that affects a performance of the firmware.
  • the event can be a corruption of the firmware.
  • the event can include an issue with the firmware that does not allow the virtual component to interact with the computing device 100.
  • the firmware test of the firmware of the physical component can be performed on the virtual component of the physical component.
  • the firmware test can be performed by the BIOS and/or UEFI during a boot mode of the computing device 100. In this way, the firmware test can determine events associated with firmware of components associated with the computing device 100 prior to an operating system of the computing device 100 being executed. In this way, the computing device 100 may not experience a malfunction associated with the firmware of the physical component during run time, which can be a negative experience for a user of the computing device 100.
  • the computing device 100 can include instructions 110 that can be executed by a processor resource 102 to publish the event in a table.
  • the processor resource 102 can publish the event in a customized ACPI table.
  • the customized ACPI table can be a table that is stored outside the ROM memory associated with the firmware of the computing device 100.
  • the customized ACPI table can be stored in a memory resource associated with an operating system of the computing device 100. In this way, additional ROM memory may not be utilized to store firmware images and/or tables associated with components that have corrupted firmware, which can allow the ROM memory to be utilized for other resources.
  • the published event can include the physical component and firmware component of the physical component.
  • the published event can include information related to what is causing the event with a particular physical component and/or firmware of the particular physical component.
  • the published event can include a name associated with the physical component, firmware associated with the physical component, firmware image associated with the physical component, and/or other information related to the event or recovery process.
  • a firmware recovery process can be performed when an operating system is booted by utilizing the information published event data in the customized ACPI table.
  • a firmware recovery agent can be executed by the computing device 100.
  • the firmware recovery agent can utilize the ACPI table to restore, update, or fix the firmware of the physical component.
  • the computing device 100 can include instructions 112 that can be executed by a processor resource 102 to perform a firmware recovery for the physical component based on the event published in the table. As described herein, performing a firmware recovery can include responding to the event associated with the firmware of the physical component.
  • the processor resource 102 can execute instructions to install a firmware recovery agent once a boot mode of the computing device 100 is complete. For example, a firmware recovery agent can be installed when an event is published in the customized ACPI table. In this example, the installed firmware recovery agent can be executed by an operating system of the computing device 100. In this example, the firmware recovery agent can utilize the event data published in the customized ACPI table to repair or update the firmware of the physical component.
  • Fig. 2 illustrates an example of a memory resource 204 storing instructions for firmware event recovery.
  • the memory resource 204 can be a part of a computing device or controller that can be communicatively coupled to a computing system that includes plurality of components.
  • the memory resource 204 can be part of a computing device (e.g. , computing device 100 as referenced in Fig. 1, etc.).
  • the memory resource 204 can be communicatively coupled to a processor resource 202 that can execute instructions 222, 224, 226, 228, 230 stored on the memory resource 204.
  • the memory resource 204 can be communicatively coupled to the processor resource 202 through a communication path 232.
  • a communication path 232 can include a wired or wireless connection that can allow communication between devices.
  • the memory resource 204 may be electronic, magnetic, optical, or other physical storage device that stores executable instructions.
  • non- transitory machine readable medium e.g., a memory resource 204
  • non-transitory MRM comprising Random-Access Memory (RAM), an Electrically-Erasable Programmable ROM (EEPROM), a storage drive, an optical disc, and the like.
  • the non-transitory machine readable medium e.g., a memory resource 204 may be disposed within a controller and/or computing device.
  • the executable instructions 222, 224, 226, 228, 230 can be “installed” on the device.
  • the non-transitory machine readable medium (e.g., a memory resource) can be a portable, external or remote storage medium, for example, that allows a computing system to download the instructions 222, 224, 226, 228, 230 from the portable/external/remote storage medium.
  • the executable instructions may be part of an “installation package”.
  • the non-transitory machine readable medium (e.g., a memory resource 204) can be encoded with executable instructions for firmware event recovery.
  • the instructions 222 when executed by a processor resource such as the processor resource 202, can include instructions to initiate a boot mode for a computing device utilizing firmware instructions of the computing device.
  • the firmware instructions of the computing device can include a BIOS and/or UEFI of the computing device.
  • the boot mode for the computing device can include a starting process of a computing device to initiate hardware and/or software of the computing device.
  • the boot mode can include, but is not limited to firmware instructions taking control of the computing device, executing a pre-EFI initialization (PEI) phase, executing a driver execution environment (DXE) phase, and/or creating virtual components of the physical components of the computing device or computing system.
  • PEI pre-EFI initialization
  • DXE driver execution environment
  • the instructions 224 when executed by a processor resource such as the processor resource 202, can include instructions to create, during the boot mode, a virtual device of a component associated with the computing device.
  • the virtual device of the component can include an emulation of the physical component, such that the virtual device can interact with the computing device in the same or similar way as the physical component.
  • the virtual device can be created in a main ACPI table of the computing device. In this way, the virtual component can be accessed through the operating system and/or the firmware of the computing device. Thus, the virtual device can be utilized to determine if an event has occurred associated with the physical component.
  • the virtual device can be executed by the BIOS or UEFI to determine if the firmware of the virtual component is functioning.
  • the firmware of the computing device can determine when the firmware is corrupted or malfunctioning.
  • a firmware test can be executed by the firmware of the computing device to determine compatibility between the physical component and the computing device through a firmware test utilizing the virtual device associated with the physical component.
  • the firmware test can include a plurality of tests to determine if the firmware of the physical component is corrupted or functioning.
  • the boot mode can include a state of the computing device prior to initiating an operating system of the computing device.
  • the firmware of the computing device e.g., BIOS, UEFI, etc.
  • the firmware of the computing device can determine whether an event occurred when testing the firmware of virtual devices associated with corresponding physical components.
  • the firmware of the computing device can publish the event in the table.
  • the table can be a customized ACPI table that is stored outside the ROM utilized to store the firmware of the computing device.
  • the customized ACPI table can be accessed during an operating system mode of the computing device.
  • the operating system mode can include a mode of the computing device when the operating system is booted or activated.
  • the published event in the table can include information related to the event or corruption of the firmware of the physical component.
  • the information published in the table can be event data that can be utilized by a firmware recovery agent to repair the firmware associated with the physical component.
  • the instructions 230 when executed by a processor resource such as the processor resource 202, can include instructions to perform, during an operation mode, a firmware recovery for the physical component based on the event published in the table.
  • the firmware recovery of the physical component can include utilizing a firmware image for the physical component.
  • the firmware image can be utilized to replace firmware instructions of the physical component. In this way, the firmware of the physical component can be updated or fixed by replacing a current firmware instructions that are corrupted with a firmware image that is functioning correctly.
  • the operation mode is executed when an operating system of the computing device is booted.
  • the operating system of the computing device can be booted by the boot mode of the computing device.
  • the operating system of the computing device can be utilized to execute instructions to perform particular functions associated with the computing device.
  • the processor resource 202 can execute instructions to determine if a firmware recovery agent is installed on the computing device to perform the firmware recovery for the physical component.
  • the firmware recovery agent can be instructions or software that can be utilized to repair or update firmware of the physical components.
  • the firmware recovery agent can be a third party set of instructions or software that can be provided or manufactured by a separate entity than a manufacturer of the computing device.
  • the firmware recovery agent can be installed on a plurality of different computing platforms that utilize different hardware, software, and/or operating systems.
  • the processor resource 202 can execute instructions to install a firmware recovery agent when it is determined that a firmware recovery agent is not installed on the computing device.
  • the processor resource 202 can utilize a network connection to obtain instructions to install the firmware recovery agent. In this way, the processor resource 202 can execute instructions to install the firmware recovery agent on the computing device.
  • the firmware recovery agent can be executed to identify event data within the customized table and utilize the event data to update or fix the firmware of the physical components identified within the customized table.
  • Fig. 3 illustrates an example of a computing device 300 for firmware event recovery.
  • the computing device 300 can include the same or similar components as computing device 100 as referenced in Fig. 1.
  • the computing device 300 can include instructions 332, 334, 336, 338, 340, 342 stored on a machine-readable medium (e.g., memory resource 304, non- transitory computer-readable medium, etc.) and executable by a processor resource 302.
  • the computing device 300 can utilize a non-transitory computer-readable medium storing instructions 332, 334, 336, 338, 340, 342 that, when executed, cause the processor resource 302 to perform corresponding functions.
  • the computing device 300 can include instructions 332 that can be executed by a processor resource 302 to initiate, by a basic input/output system (BIOS), a boot mode for a computing device 300.
  • the boot mode for the computing device 300 can include a mode of the computing device 300 that is utilizing firmware, such as the BIOS or UEFI to initiate functions of the computing device 300.
  • the boot mode can be utilized to initiate firmware and/or an operating system of the computing device 300.
  • the computing device 300 can include instructions 334 that can be executed by a processor resource 302 to create, by the BIOS, a virtual device of a component associated with the computing device 300 in a main ACPI table.
  • the virtual device of the component can be a software-defined virtual device in the main ACPI table the computing device 300.
  • the virtual device of the component can include an emulation of the component that can be utilized to test a functionality of the physical component.
  • the virtual device can include instructions that can be executed to perform functions of the physical device. In this way, the virtual device can be utilized to test a functionality of the physical component without utilizing the physical component.
  • the computing device 300 can include instructions 336 that can be executed by a processor resource 302 to identify, by the BIOS, a corruption event associated with firmware of the component utilizing a firmware test on the virtual device of the component.
  • the corruption event can include an event that creates a malfunction or is to be updated to a new version of the firmware.
  • the BIOS can be utilized to identify when the firmware of the component is corrupted, malfunctioning, and/or needs to be updated.
  • the BIOS can utilize the virtual device to perform the firmware test to determine the corruption event associated with the firmware of the physical component.
  • the computing device 300 can include instructions 338 that can be executed by a processor resource 302 to publish, by the BIOS, the event in the ACPI table stored outside a firmware read only memory (ROM) resource of the computing device 300.
  • the ACPI table can include a list of physical components that have corrupted firmware.
  • the ACPI table can be stored outside the ROM resource of the computing device 300 to allow the ROM resource to be utilized for other functions, which can lower the cost of the computing device 300.
  • the ACPI table can include event data that describes the physical components and corresponding corruption event affecting the physical components.
  • the computing device 300 can include instructions 340 that can be executed by a processor resource 302 to install, during an operation mode, a firmware recovery agent.
  • the operation mode of the computing device 300 can include a mode when the computing device is executing the operating system.
  • the operating system can be utilized to install the firmware recovery agent.
  • the operating system can be utilized to identify that an event is stored in the ACPI table.
  • the operating system can determine if instructions for installing the firmware recovery agent are stored on the computing device 300.
  • the operating system can install the firmware recovery agent when the instructions for installing the firmware recovery agent is stored on the computing device 300.
  • the operating system can obtain the instructions to install the firmware recovery agent when the instructions for installing the firmware recovery agent are not stored on the computing device.
  • the operating system can utilize a network connection to obtain the instructions for installing the firmware recovery agent.
  • the processor resource 302 can execute instructions to search, by the firmware recovery agent, for a firmware image associated with the component in local storage of the computing device 300.
  • the firmware recovery agent can be utilized to determine if a firmware image associated with the event data is stored in local storage of the computing device 300.
  • the firmware recovery agent can utilize the firmware image to fix or update the firmware of the physical component.
  • the firmware recovery agent can utilize a network to discovery and/or obtain the firmware image to fix or update the firmware of the physical component.
  • the computing device 300 can include instructions 342 that can be executed by a processor resource 302 to perform, by the firmware recovery agent during an operation mode, a firmware recovery for the physical component based on the corruption event published in the table.
  • the firmware recovery can include updating or altering the firmware of the physical component.
  • the firmware recovery can include replacing firmware instructions with a firmware image that corresponds to the physical component. In this way, the firmware image can be stored on the computing device in local storage or at a remote device.
  • the firmware recovery agent can utilize a network to obtain the firmware image of the physical component based on the event data within the table, in this way, the firmware recovery agent can be instructions or software provided by a third party and be utilized across a plurality of different computing device platforms.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

In some examples, a computing device for firmware event recovery can include a processor resource and a non-transitory memory resource storing machine-readable instructions stored thereon that, when executed, cause the processor resource to: generate a virtual component of a physical component associated with the computing device, identify an event associated with firmware of the virtual component based on a firmware test, publish the event in a table, and perform a firmware recovery for the physical component based on the event published in the table.

Description

FIRMWARE EVENT RECOVERY
Background
[0001] Firmware can provide low-level control for some or all of a computing device’s hardware. Computing devices can include firmware components (e.g., controllers, processors, sensors, camera, and others) that utilize the firmware. Firmware components can be corrupted during firmware updates, power surges, blackouts, improper voltage from a computing device’s power supply unit, and/or other electrical events.
Brief Description of the Drawings
[0002] Fig. 1 illustrates an example of a computing device for firmware event recovery.
[0003] Fig. 2 illustrates an example of a memory resource storing instructions for firmware event recovery.
[0004] Fig. 3 illustrates an example of a computing device for firmware event recovery.
Detailed Description
[0005] In some examples, a computing device can utilize firmware instructions to perform particular functions such as performing a boot operation. For example, a computing device can utilize a basic input-output system (BIOS) or unified extensible firmware interface (UEFI) to perform certain actions. As used herein, the term “BIOS” refers to a non-volatile firmware component to perform hardware initialization during a startup sequence of the computing device and to provide runtime services for operating systems (OSes) and/or other programs. For example, as a computing device is started (i.e., booted), the BIOS can initialize hardware of the computing device. [0006] As used herein, the term “computing device” refers to a mechanical or electrical device that transmits or modifies energy to perform or assist in the performance of tasks. Example computing devices include a laptop computer, a notebook computer, a desktop computer, an all-in-one (AIO) computer, and/or a mobile device, among other types of computing devices. As used herein, a mobile device can include computing devices that are (or can be) carried and/or worn by a user. For example, a mobile device can be a phone (e.g., a smart phone), a tablet, a personal digital assistant (PDA), smart glasses, and/or a wrist-worn device (e.g., a smart watch), among other types of mobile devices. As used herein, the term “operating system” (OS) refers to instructions or software that supports a computing device’s basic functions, such as scheduling tasks, executing applications, and/or controlling peripheral devices.
[0007] As used herein, the term “firmware” refers to instructions or software that provides control of particular hardware of a computing device. As used herein, the term “firmware component” refers to a device containing the firmware and/or utilizing (e.g., being controlled by) the firmware. For example, a power delivery controller, a thunderbolt controller, a camera, a card reader, a fingerprint reader, etc., can each include its own firmware. The firmware of the firmware components can be updated.
[0008] In some examples, a firmware and a firmware component associated with the firmware can experience an event such as, but not limited to firmware corruption while being updated. As used herein, the term “firmware corruption,” or “corrupted firmware,” refers to a failure of transmission and/or processing which can introduce unintended changes to the original data and can cause the computing device to crash and or be damaged permanently. Such an event or corruption can cause permanent damage to the firmware component and result in expensive replacement. In some examples, a firmware corruption can cause the computing device to function slowly and/or may cause the computing device to not respond. The corrupted firmware components can be detected using an OS and/or customer service may detect and recover corrupted firmware components of a computing device. For instance, in some approaches, end users identify the firmware corruption and get recovery engineers involved to recover the corrupted firmware. Such processes can be time consuming and expensive. [0009] In other approaches, a firmware corruption of a firmware component may be detected and recovered manually. For example, a user may receive an error notification from an event-log and/or a Windows Device Manager (WDM). Based on the notification, the user may ask for help from a helpdesk and/or self-diagnose that a firmware is corrupted and download a firmware update package to recover the firmware component. However, such approaches can be time consuming and/or involve expensive recovery engineers to detect and repair the corruption. Additionally, such approaches can cause additional corruption to firmware components.
[0010] In some previous approaches, a user may manually use an OS level Firmware Update & Recovery (FUR) application, to update, download, and/or recover firmware of a firmware component. Prior to updating, the FUR application can back-up the BIOS and firmware images of the firmware component into the storage device of the computing device. If the BIOS detects a firmware component image during a power-on self-test (POST) sequence of the computing device, then the BIOS can read out the back-up version of the firmware component image to recover that firmware component. As used herein, the term “POST sequence” refers to a process performed by firmware and/or software routines after a computing device is powered on to determine whether hardware of the computing device is working correctly. If the BIOS does not detect a firmware component image during the POST sequence, the OS of the computing device is rebooted. However, in such a recovery system, a back-up image in the storage device cannot be used to recover the firmware of the firmware component.
[0011] In some other approaches, a firmware image of a redundant firmware component may be integrated in the BIOS image area and saved in a read only memory (ROM) (e.g., Flash ROM, etc.) when the BIOS is updated. In an instance when a firmware component is corrupted, the BIOS can use the integrated redundant firmware image to recover firmware component. However, such a recovery system can be costly as it can include the use of a larger Flash ROM.
[0012] Firmware event recovery, according to the disclosure, can include a computing device to generate a virtual component of a physical component associated with the computing device. In some examples, the computing device can utilize a BIOS to generate the virtual component of the physical component. In addition, the computing device can utilize the BIOS to identify an event (e.g., corruption, firmware corruption, etc.) associated with firmware of the virtual component based on a firmware test, in some examples, the computing device can utilize the BIOS to publish the event in a table (e.g., advanced configuration and power interface (ACPI) table, table outside a Flash ROM, etc.). In addition, the computing device can utilize an operating system or firmware recovery agent to perform a firmware recovery for the physical component based on the event published in the table.
[0013] The recovery agent can determine a location of the back-up image of the firmware component, determine a recovery sequence based on the location of the back-up image, and recover the firmware component. As used herein, the term “back-up image” refers to a computer file that can create a duplicate of a firmware of a firmware component. A unified and automated corruption detection and recovery process can be cost effective with limited user intervention. In addition, publishing the event or firmware corruption of the physical component outside of a Flash ROM can allow a Windows Platform Binary Table (WPBT) to be utilized by other components. In this way, the Flash ROM can also be utilized to store other data or be relatively smaller compared to previous examples that utilize the Flash ROM to store firmware images. Furthermore, the recovery agent can be a third party recovery agent that can be installed or deployed on a plurality of different operating systems to provide cross operating system support.
[0014] Fig. 1 illustrates an example of a computing device 100 for firmware event recovery. In some examples, the computing device 100 can include a processor resource 102 communicatively coupled to a memory resource 104. As described further herein, the memory resource 104 can include instructions 106, 108, 110, 112 that can be executed by the processor resource 102 to perform particular functions. In some examples, the processor resource 102 may be a central processing unit (CPU), a semiconductor-based microprocessor, and/or other hardware devices suitable for retrieval and execution of non-transitory machine- readable instructions. In some examples, the computing device 100 can be associated with a plurality of components. For example, the computing device 100 can be utilized to display images on a display, utilize a biometric scanner for authentication, utilize a computing mouse to make selections on a user interface, and/or be communicatively coupled to a plurality of peripheral devices. In some examples, the computing device 100 can be iocal or remote to the plurality of components.
[0015] In some examples, the computing device 100 can include instructions 106, 108, 110, 112 stored on a machine-readable medium (e.g., memory resource 104, non-transitory computer-readable medium, etc.) and executable by a processor resource 102. In a specific example, the computing device 100 can utilize a non- transitory computer-readable medium storing instructions 106, 108, 110, 112 that, when executed, cause the processor resource 102 to perform corresponding functions.
[0016] In some examples, the computing device 100 can include instructions 106 that can be executed by a processor resource 102 to generate a virtual component of a physical component associated with the computing device 100. As described herein, the computing device 100 can be communicatively coupled to a plurality of components. The plurality of components can be physical components that can include firmware instructions to allow the component to communicate and/or interact with the computing device 100. In some examples, the virtual component can be an emulation of the physical component. For example, the virtual component can be a virtual representation of the physical component that can execute the same or duplicate firmware of the physical component. In this way, the virtual component can be utilized to test a performance of the physical component without having the physical component be activated. Thus, the firmware of the physical component can be tested utilizing the virtual component of the corresponding physical component. [0017] In some examples, the computing device 100 can include instructions 108 that can be executed by a processor resource 102 to identify an event associated with firmware of the virtual component based on a firmware test. As used herein, an event associated with firmware can include an issue that affects a performance of the firmware. For example, the event can be a corruption of the firmware. In other examples, the event can include an issue with the firmware that does not allow the virtual component to interact with the computing device 100.
[0018] In some examples, the firmware test of the firmware of the physical component can be performed on the virtual component of the physical component. In these examples, the firmware test can be performed by the BIOS and/or UEFI during a boot mode of the computing device 100. In this way, the firmware test can determine events associated with firmware of components associated with the computing device 100 prior to an operating system of the computing device 100 being executed. In this way, the computing device 100 may not experience a malfunction associated with the firmware of the physical component during run time, which can be a negative experience for a user of the computing device 100.
[0019] In some examples, the computing device 100 can include instructions 110 that can be executed by a processor resource 102 to publish the event in a table. In some examples, the processor resource 102 can publish the event in a customized ACPI table. In some examples, the customized ACPI table can be a table that is stored outside the ROM memory associated with the firmware of the computing device 100. For example, the customized ACPI table can be stored in a memory resource associated with an operating system of the computing device 100. In this way, additional ROM memory may not be utilized to store firmware images and/or tables associated with components that have corrupted firmware, which can allow the ROM memory to be utilized for other resources.
[0020] In some examples, the published event can include the physical component and firmware component of the physical component. In some examples, the published event can include information related to what is causing the event with a particular physical component and/or firmware of the particular physical component. For example, the published event can include a name associated with the physical component, firmware associated with the physical component, firmware image associated with the physical component, and/or other information related to the event or recovery process. In this way, a firmware recovery process can be performed when an operating system is booted by utilizing the information published event data in the customized ACPI table. For example, a firmware recovery agent can be executed by the computing device 100. In this example, the firmware recovery agent can utilize the ACPI table to restore, update, or fix the firmware of the physical component.
[0021] In some examples, the computing device 100 can include instructions 112 that can be executed by a processor resource 102 to perform a firmware recovery for the physical component based on the event published in the table. As described herein, performing a firmware recovery can include responding to the event associated with the firmware of the physical component. In some examples, the processor resource 102 can execute instructions to install a firmware recovery agent once a boot mode of the computing device 100 is complete. For example, a firmware recovery agent can be installed when an event is published in the customized ACPI table. In this example, the installed firmware recovery agent can be executed by an operating system of the computing device 100. In this example, the firmware recovery agent can utilize the event data published in the customized ACPI table to repair or update the firmware of the physical component. That is, the processor resource 102 can execute instructions to execute the firmware recovery agent to perform the firmware recovery based on the event published in the table. [0022] Fig. 2 illustrates an example of a memory resource 204 storing instructions for firmware event recovery. In some examples, the memory resource 204 can be a part of a computing device or controller that can be communicatively coupled to a computing system that includes plurality of components. For example, the memory resource 204 can be part of a computing device (e.g. , computing device 100 as referenced in Fig. 1, etc.). In some examples, the memory resource 204 can be communicatively coupled to a processor resource 202 that can execute instructions 222, 224, 226, 228, 230 stored on the memory resource 204. For example, the memory resource 204 can be communicatively coupled to the processor resource 202 through a communication path 232. In some examples, a communication path 232 can include a wired or wireless connection that can allow communication between devices.
[0023] The memory resource 204 may be electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, non- transitory machine readable medium (e.g., a memory resource 204) may be, for example, a non-transitory MRM comprising Random-Access Memory (RAM), an Electrically-Erasable Programmable ROM (EEPROM), a storage drive, an optical disc, and the like. The non-transitory machine readable medium (e.g., a memory resource 204) may be disposed within a controller and/or computing device. In this example, the executable instructions 222, 224, 226, 228, 230 can be “installed” on the device. Additionally, and/or alternatively, the non-transitory machine readable medium (e.g., a memory resource) can be a portable, external or remote storage medium, for example, that allows a computing system to download the instructions 222, 224, 226, 228, 230 from the portable/external/remote storage medium. In this situation, the executable instructions may be part of an “installation package”. As described herein, the non-transitory machine readable medium (e.g., a memory resource 204) can be encoded with executable instructions for firmware event recovery.
[0024] The instructions 222, when executed by a processor resource such as the processor resource 202, can include instructions to initiate a boot mode for a computing device utilizing firmware instructions of the computing device. As described herein, the firmware instructions of the computing device can include a BIOS and/or UEFI of the computing device. As used herein, the boot mode for the computing device can include a starting process of a computing device to initiate hardware and/or software of the computing device. For example, the boot mode can include, but is not limited to firmware instructions taking control of the computing device, executing a pre-EFI initialization (PEI) phase, executing a driver execution environment (DXE) phase, and/or creating virtual components of the physical components of the computing device or computing system.
[0025] The instructions 224, when executed by a processor resource such as the processor resource 202, can include instructions to create, during the boot mode, a virtual device of a component associated with the computing device. As described herein, the virtual device of the component can include an emulation of the physical component, such that the virtual device can interact with the computing device in the same or similar way as the physical component. In some examples, the virtual device can be created in a main ACPI table of the computing device. In this way, the virtual component can be accessed through the operating system and/or the firmware of the computing device. Thus, the virtual device can be utilized to determine if an event has occurred associated with the physical component.
[0026] The instructions 226, when executed by a processor resource such as the processor resource 202, can include instructions to identify, during the boot mode, an event associated with firmware of the component utilizing a firmware test on the virtual device of the component. For example, the virtual device can be executed by the BIOS or UEFI to determine if the firmware of the virtual component is functioning. In this example, the firmware of the computing device can determine when the firmware is corrupted or malfunctioning. In some examples, a firmware test can be executed by the firmware of the computing device to determine compatibility between the physical component and the computing device through a firmware test utilizing the virtual device associated with the physical component. In some examples, the firmware test can include a plurality of tests to determine if the firmware of the physical component is corrupted or functioning.
[0027] The instructions 228, when executed by a processor resource such as the processor resource 202, can include instructions to publish, during the boot mode, the event in a table stored outside a firmware read only memory (ROM) resource of the computing device. As described herein, the boot mode can include a state of the computing device prior to initiating an operating system of the computing device. In these examples, the firmware of the computing device (e.g., BIOS, UEFI, etc.) can determine whether an event occurred when testing the firmware of virtual devices associated with corresponding physical components. When the firmware of the computing device determines that firmware of a virtual device is corrupted or malfunctioning, the firmware of the computing device can publish the event in the table.
[0028] As described herein, the table can be a customized ACPI table that is stored outside the ROM utilized to store the firmware of the computing device. In some examples, the customized ACPI table can be accessed during an operating system mode of the computing device. As used herein, the operating system mode can include a mode of the computing device when the operating system is booted or activated. As described herein, the published event in the table can include information related to the event or corruption of the firmware of the physical component. In some examples, the information published in the table can be event data that can be utilized by a firmware recovery agent to repair the firmware associated with the physical component.
[0029] The instructions 230, when executed by a processor resource such as the processor resource 202, can include instructions to perform, during an operation mode, a firmware recovery for the physical component based on the event published in the table. As described herein, the firmware recovery of the physical component can include utilizing a firmware image for the physical component. In some examples, the firmware image can be utilized to replace firmware instructions of the physical component. In this way, the firmware of the physical component can be updated or fixed by replacing a current firmware instructions that are corrupted with a firmware image that is functioning correctly.
[0030] In some examples, the operation mode is executed when an operating system of the computing device is booted. As described herein, the operating system of the computing device can be booted by the boot mode of the computing device. The operating system of the computing device can be utilized to execute instructions to perform particular functions associated with the computing device.
[0031] In some examples, the processor resource 202 can execute instructions to determine if a firmware recovery agent is installed on the computing device to perform the firmware recovery for the physical component. As described herein, the firmware recovery agent can be instructions or software that can be utilized to repair or update firmware of the physical components. In some examples, the firmware recovery agent can be a third party set of instructions or software that can be provided or manufactured by a separate entity than a manufacturer of the computing device. In some examples, the firmware recovery agent can be installed on a plurality of different computing platforms that utilize different hardware, software, and/or operating systems.
[0032] in some examples, the processor resource 202 can execute instructions to install a firmware recovery agent when it is determined that a firmware recovery agent is not installed on the computing device. In some examples, the processor resource 202 can utilize a network connection to obtain instructions to install the firmware recovery agent. In this way, the processor resource 202 can execute instructions to install the firmware recovery agent on the computing device. In these examples, the firmware recovery agent can be executed to identify event data within the customized table and utilize the event data to update or fix the firmware of the physical components identified within the customized table.
[0033] Fig. 3 illustrates an example of a computing device 300 for firmware event recovery. In some examples, the computing device 300 can include the same or similar components as computing device 100 as referenced in Fig. 1. In some examples, the computing device 300 can include instructions 332, 334, 336, 338, 340, 342 stored on a machine-readable medium (e.g., memory resource 304, non- transitory computer-readable medium, etc.) and executable by a processor resource 302. In a specific example, the computing device 300 can utilize a non-transitory computer-readable medium storing instructions 332, 334, 336, 338, 340, 342 that, when executed, cause the processor resource 302 to perform corresponding functions.
[0034] In some examples, the computing device 300 can include instructions 332 that can be executed by a processor resource 302 to initiate, by a basic input/output system (BIOS), a boot mode for a computing device 300. As described herein, the boot mode for the computing device 300 can include a mode of the computing device 300 that is utilizing firmware, such as the BIOS or UEFI to initiate functions of the computing device 300. In some examples, the boot mode can be utilized to initiate firmware and/or an operating system of the computing device 300. [0035] In some examples, the computing device 300 can include instructions 334 that can be executed by a processor resource 302 to create, by the BIOS, a virtual device of a component associated with the computing device 300 in a main ACPI table. In some examples, the virtual device of the component can be a software-defined virtual device in the main ACPI table the computing device 300. As described herein, the virtual device of the component can include an emulation of the component that can be utilized to test a functionality of the physical component. For example, the virtual device can include instructions that can be executed to perform functions of the physical device. In this way, the virtual device can be utilized to test a functionality of the physical component without utilizing the physical component. [0036] In some examples, the computing device 300 can include instructions 336 that can be executed by a processor resource 302 to identify, by the BIOS, a corruption event associated with firmware of the component utilizing a firmware test on the virtual device of the component. As described herein, the corruption event can include an event that creates a malfunction or is to be updated to a new version of the firmware. Thus, the BIOS can be utilized to identify when the firmware of the component is corrupted, malfunctioning, and/or needs to be updated. In some examples, the BIOS can utilize the virtual device to perform the firmware test to determine the corruption event associated with the firmware of the physical component.
[0037] In some examples, the computing device 300 can include instructions 338 that can be executed by a processor resource 302 to publish, by the BIOS, the event in the ACPI table stored outside a firmware read only memory (ROM) resource of the computing device 300. In some examples, the ACPI table can include a list of physical components that have corrupted firmware. As described herein, the ACPI table can be stored outside the ROM resource of the computing device 300 to allow the ROM resource to be utilized for other functions, which can lower the cost of the computing device 300. In some examples, the ACPI table can include event data that describes the physical components and corresponding corruption event affecting the physical components.
[0038] In some examples, the computing device 300 can include instructions 340 that can be executed by a processor resource 302 to install, during an operation mode, a firmware recovery agent. As described herein, the operation mode of the computing device 300 can include a mode when the computing device is executing the operating system. In some examples, the operating system can be utilized to install the firmware recovery agent. For example, the operating system can be utilized to identify that an event is stored in the ACPI table. In this example, the operating system can determine if instructions for installing the firmware recovery agent are stored on the computing device 300. The operating system can install the firmware recovery agent when the instructions for installing the firmware recovery agent is stored on the computing device 300. The operating system can obtain the instructions to install the firmware recovery agent when the instructions for installing the firmware recovery agent are not stored on the computing device. As described herein, the operating system can utilize a network connection to obtain the instructions for installing the firmware recovery agent.
[0039] In some examples, the processor resource 302 can execute instructions to search, by the firmware recovery agent, for a firmware image associated with the component in local storage of the computing device 300. In some examples, the firmware recovery agent can be utilized to determine if a firmware image associated with the event data is stored in local storage of the computing device 300. In some examples, the firmware recovery agent can utilize the firmware image to fix or update the firmware of the physical component. In other examples, the firmware recovery agent can utilize a network to discovery and/or obtain the firmware image to fix or update the firmware of the physical component. [0040] In some examples, the computing device 300 can include instructions 342 that can be executed by a processor resource 302 to perform, by the firmware recovery agent during an operation mode, a firmware recovery for the physical component based on the corruption event published in the table. As used herein, the firmware recovery can include updating or altering the firmware of the physical component. For example, the firmware recovery can include replacing firmware instructions with a firmware image that corresponds to the physical component. In this way, the firmware image can be stored on the computing device in local storage or at a remote device. For exampie, the firmware recovery agent can utilize a network to obtain the firmware image of the physical component based on the event data within the table, in this way, the firmware recovery agent can be instructions or software provided by a third party and be utilized across a plurality of different computing device platforms.
[0041] In the foregoing detailed description of the disclosure, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration how examples of the disclosure may be practiced. These examples are described in sufficient detail to enable those of ordinary skill in the art to practice the examples of this disclosure, and it is to be understood that other examples may be utilized and that process, electrical, and/or structural changes may be made without departing from the scope of the disclosure. Further, as used herein, “a” refers to one such thing or more than one such thing.
[0042] The figures herein follow a numbering convention in which the first digit corresponds to the drawing figure number and the remaining digits identify an element or component in the drawing. For example, reference numeral 102 may refer to element 102 in Fig. 1 and an analogous element may be identified by reference numeral 302 in Fig. 3. Elements shown in the various figures herein can be added, exchanged, and/or eliminated to provide additional examples of the disclosure. In addition, the proportion and the relative scale of the elements provided in the figures are intended to illustrate the examples of the disclosure, and should not be taken in a limiting sense.
[0043] It can be understood that when an element is referred to as being "on," "connected to", “coupled to”, or "coupled with" another element, it can be directly on, connected, or coupled with the other element or intervening elements may be present. In contrast, when an object is “directly coupled to” or “directly coupled with” another element it is understood that are no intervening elements (adhesives, screws, other elements) etc.
[0044] The above specification, examples, and data provide a description of the system and method of the disclosure. Since many examples can be made without departing from the spirit and scope of the system and method of the disclosure, this specification merely sets forth some of the many possible example configurations and implementations.

Claims

What is claimed is:
1. A computing device, comprising: a processor resource; and a non-transitory memory resource storing machine-readable instructions stored thereon that, when executed, cause the processor resource to: generate a virtual component of a physical component associated with the computing device; identify an event associated with firmware of the virtual component based on a firmware test; publish the event in a table; and perform a firmware recovery for the physical component based on the event published in the table.
2. The computing device of claim 1, wherein the processor resource is to publish the event in a customized advanced configuration and power interface (ACPI) table, wherein the published event includes the physical component and firmware component of the physical component.
3. The computing device of claim 1 , wherein the instructions to identify the event and publish the event are performed by firmware of the computing device.
4. The computing device of claim 3, wherein the instructions to identify the event and publish the event are performed in a boot mode of the computing device.
5. The computing device of claim 1 , wherein the table is stored outside a firmware read only memory (ROM) resource of the computing device.
6. The computing device of claim 1 , wherein the processor resource is to install a firmware recovery agent once a boot mode of the computing device is complete.
7. The computing device of claim 6, wherein the processor resource is to execute the firmware recovery agent to perform the firmware recovery based on the event published in the table.
8. A non-transitory memory resource storing machine-readable instructions stored thereon that, when executed, cause the processor resource to: initiate a boot mode for a computing device utilizing firmware instructions of the computing device; create, during the boot mode, a virtual device of a component associated with the computing device; identify, during the boot mode, an event associated with firmware of the component utilizing a firmware test on the virtual device of the component; publish, during the boot mode, the event in a table stored outside a firmware read only memory (ROM) resource of the computing device; and perform, during an operation mode, a firmware recovery for the physical component based on the event published in the table.
9. The memory resource of claim 8, wherein the operation mode is executed when an operating system of the computing device is booted.
10. The memory resource of claim 8, wherein the processor resource is to determine if a firmware recovery agent is installed on the computing device to perform the firmware recovery for the physical component.
11. The memory resource of claim 8, wherein the virtual device is created in a main advanced configuration and power interface (ACPI) table of the computing device.
12. A computing device, comprising: a processor resource; and a non-transitory memory resource storing machine-readable instructions stored thereon that, when executed, cause the processor resource to: initiate, by a basic input/output system (BIOS), a boot mode for a computing device; create, by the BIOS, a virtual device of a component associated with the computing device in a main advanced configuration and power interface (ACPI) table; 16 identify, by the BiOS, a corruption event associated with firmware of the component utilizing a firmware test on the virtual device of the component; publish, by the BIOS, the event in the ACPI table stored outside a firmware read only memory (ROM) resource of the computing device; install, during an operation mode, a firmware recovery agent; and perform, by the firmware recovery agent during an operation mode, a firmware recovery for the physical component based on the corruption event published in the table.
13. The computing device of claim 12, wherein the processor resource is to search, by the firmware recovery agent, for a firmware image associated with the component in local storage of the computing device.
14. The computing device of claim 12, wherein the ACPI table includes a list of physical components that have corrupted firmware.
15. The computing device of claim 12, wherein the virtual device of the component is a software-defined virtual device in the main ACPI table of the computing device.
PCT/US2020/049027 2020-09-02 2020-09-02 Firmware event recovery WO2022050938A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2020/049027 WO2022050938A1 (en) 2020-09-02 2020-09-02 Firmware event recovery

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/049027 WO2022050938A1 (en) 2020-09-02 2020-09-02 Firmware event recovery

Publications (1)

Publication Number Publication Date
WO2022050938A1 true WO2022050938A1 (en) 2022-03-10

Family

ID=80492055

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2020/049027 WO2022050938A1 (en) 2020-09-02 2020-09-02 Firmware event recovery

Country Status (1)

Country Link
WO (1) WO2022050938A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230267045A1 (en) * 2022-02-22 2023-08-24 Dell Products L.P. System on a chip-agnostic dynamic firmware volumes for basic input/output extension

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140007073A1 (en) * 2012-06-27 2014-01-02 James G. Cavalaris Firmware Update Discovery and Distribution
US20190339958A1 (en) * 2018-05-03 2019-11-07 Dell Products L. P. Secure firmware updates using virtual machines to validate firmware packages
US20190391799A1 (en) * 2018-06-21 2019-12-26 Dell Products, Lp Apparatus and Method to Execute Prerequisite Code Before Delivering UEFI Firmware Capsule

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140007073A1 (en) * 2012-06-27 2014-01-02 James G. Cavalaris Firmware Update Discovery and Distribution
US20190339958A1 (en) * 2018-05-03 2019-11-07 Dell Products L. P. Secure firmware updates using virtual machines to validate firmware packages
US20190391799A1 (en) * 2018-06-21 2019-12-26 Dell Products, Lp Apparatus and Method to Execute Prerequisite Code Before Delivering UEFI Firmware Capsule

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230267045A1 (en) * 2022-02-22 2023-08-24 Dell Products L.P. System on a chip-agnostic dynamic firmware volumes for basic input/output extension

Similar Documents

Publication Publication Date Title
US10353779B2 (en) Systems and methods for detection of firmware image corruption and initiation of recovery
EP2831722B1 (en) Method and system for verifying proper operation of a computing device after a system change
US9507604B2 (en) Boot method and boot system
US8423991B2 (en) Embedded network device and firmware upgrading method
US20090094450A1 (en) Firmware image update and management
US11030047B2 (en) Information handling system and method to restore system firmware to a selected restore point
US11704198B2 (en) Method and apparatus for providing recovery from a computing device boot up error
CN110119623A (en) A kind of credible main board implementation method for realizing that firmware is actively measured using TPCM
TWI764454B (en) Firmware corruption recovery
CN110007935B (en) Processing method, device and equipment for program upgrading
WO2022050938A1 (en) Firmware event recovery
CN110119625A (en) A kind of trusted computing method
US11354109B1 (en) Firmware updates using updated firmware files in a dedicated firmware volume
CN112667444A (en) System upgrading method, storage medium and terminal equipment
US20200252280A1 (en) Systems and methods for validated configuration compliance assurance
CN110119624A (en) A kind of security measure method
US10691444B1 (en) Launching updated firmware files stored in a dedicated firmware volume
US11068276B2 (en) Controlled customization of silicon initialization
US20230009689A1 (en) Boot method for embedded system
US20230079463A1 (en) Persistence of learned profiles
CN115686643A (en) Starting method of embedded system
CN113867753A (en) Firmware updating method and system for server
KR20200058150A (en) Automatic Restoring Method of User File System in Communication Terminal
CN110119638A (en) A kind of credible measure

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20952637

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20952637

Country of ref document: EP

Kind code of ref document: A1