Runtime Firmware Filter for Multi-OS Adaptability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing firmware systems lack adaptability to sporadic release schedules and do not effectively filter or patch firmware changes specific to one operating system without affecting others on a multi-OS system, leading to complexity and potential issues during OS installation and boot processes.

Innovation Solution

Implementing program instructions that execute within the extended firmware interface (EFI) to modify and filter firmware data tables and runtime services, allowing for dynamic changes to firmware behavior without altering the firmware image, by inserting, patching, or filtering entries and pointers, thereby providing tailored firmware implementations for specific OS situations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single firmware image is used for multiple operating systems, then hardware resource sharing is improved, but OS-specific firmware behavior customization becomes difficult

Engineering Contradiction:
Improvefirmware compatibility across multiple OSsVSAvoidfirmware behavior customization complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

A firmware filter driver is introduced as an intermediary component between the firmware image and the operating system. This driver intercepts and processes firmware calls, allowing different OSs to access a single shared firmware image while receiving OS-specific behavior customization through the filter driver's intervention layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The firmware interface is segmented into a universal firmware image layer and an OS-specific filter driver layer. The filter driver acts as a separate customizable layer that can be tailored for each operating system, while the core firmware image remains shared and unchanged across multiple OSs.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If firmware is modified for specific OS situations, then OS-specific functionality is improved, but firmware image alteration is required

Engineering Contradiction:
ImproveOS-specific firmware behaviorVSAvoidfirmware image modification
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The firmware filter driver serves as a mediator that enables OS-specific functionality without modifying the firmware image. The filter driver intercepts firmware calls and provides OS-specific responses or behaviors, allowing customization without touching the firmware image itself.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Instead of modifying the original firmware image, a copy or derivative of the firmware interface is created through the filter driver. This derivative layer implements OS-specific behaviors while the original firmware image remains intact and unchanged.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If per-OS firmware structures are implemented, then OS-specific functionality is improved, but system complexity increases

Engineering Contradiction:
ImproveOS-specific firmware supportVSAvoidsystem structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The firmware filter driver is designed as a universal interface that can support multiple operating systems through a single unified structure. Rather than implementing separate per-OS firmware structures, the filter driver provides a common framework that adapts to different OS requirements, reducing overall system complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The filter driver acts as a universal intermediary layer between the firmware image and various operating systems. This single mediator handles OS-specific functionality for different OSs without requiring separate firmware structures for each OS, thereby reducing system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If firmware changes are made for one OS, then that OS's performance is improved, but other OSs on the system are affected

Engineering Contradiction:
ImproveOS-specific firmware reliabilityVSAvoidfirmware sharing across OSs
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The firmware filter driver is configured to be OS-specific, allowing firmware changes and optimizations to be applied only to the active operating system at runtime. The filter driver intercepts and processes firmware calls specifically for the current OS, ensuring that modifications do not affect other OSs that share the same firmware image.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The filter driver enables dynamic firmware behavior customization based on the currently active operating system. The system can adapt firmware responses in real-time according to the running OS, allowing optimized behavior for each OS without permanent modifications to the shared firmware image or affecting other OSs.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8930684B2Adding a runtime service for firmware-based images for a device not known to an operating system
Publication Date: 2015.01.06 HEWLETT PACKARD ENTERPRISE DEV LP
  • US8930684B2 patent drawing
  • US8930684B2 patent drawing
  • US8930684B2 patent drawing

AI summary

Systems, devices, and methods, including program instructions, are provided for firmware filters and patches. One method embodiment includes executing extended firmware interface (EFI) program instructions during runtime to modify a firmware implementation underlying an interface and invoking the modified firmware implementation, while the original firmware code in non-volatile memory remains unmodified. A further embodiment includes adding a runtime service in an system abstraction layer (SAL) interface and adding a subordinate runtime service that describes a device not known to a firmware image on a system but useable by a particular operating system (OS).