Firmware Function Invocation via Runtime Services

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The use of software System Management Interrupts (SMIs) to invoke firmware services can lead to security issues due to context switching and may be unavailable in certain systems, limiting the functionality of operating systems and applications.

Innovation Solution

A method is provided to invoke firmware functions without requiring software SMIs, using runtime services that allow applications to access and define custom firmware functions mapped to variable names, enabling the execution of various firmware functions through Get and Set services.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software SMI is used to invoke firmware services, then firmware functions can be accessed, but security issues arise due to context switching and memory access

Engineering Contradiction:
Improvefirmware function accessibilityVSAvoidsecurity issues
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent extracts the firmware function invocation mechanism from the software SMI context switching environment and relocates it to a runtime service execution model. This allows firmware functions to be accessed directly through standardized runtime service calls (such as EFI Runtime Services) without invoking the full SMM context switch, thereby eliminating the security vulnerabilities associated with SMRAM access while preserving firmware functionality.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary layer in the form of runtime services that act as a mediator between the operating system and firmware functions. Instead of directly switching to SMM environment, the runtime service interface provides a controlled pathway for OS applications to invoke firmware services, maintaining security boundaries while enabling necessary firmware access.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If software SMI is used to invoke firmware services, then firmware functions can be accessed, but O/S kernel drivers are required which may contain programming errors

Engineering Contradiction:
Improvefirmware service invocationVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent extracts the firmware service invocation from the kernel driver dependency chain by implementing a runtime service interface that can be called from user-mode applications. This eliminates the requirement for O/S kernel drivers to access firmware services, removing the source of potential programming errors and fatal system errors while maintaining reliable firmware functionality.

Inventive Principle:
Principle #2Taking out (Extraction)

3Device complexity

If hardware implementation does not include software SMI support, then system simplicity is maintained, but firmware function accessibility is limited

Engineering Contradiction:
Improvehardware implementation complexityVSAvoidfirmware function accessibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal runtime service interface that provides firmware function accessibility across diverse hardware platforms. The runtime services layer is designed to be hardware-agnostic, allowing the same interface to work whether or not the underlying hardware supports software SMI. This multi-functional approach ensures firmware accessibility is maintained through alternative execution paths on platforms with simplified hardware implementations.

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

Data Source

PatentUS9727390B1Invoking a firmware function
Publication Date: 2017.08.08 AMERICAN MEGATRENDS
  • US9727390B1 patent drawing
  • US9727390B1 patent drawing
  • US9727390B1 patent drawing

AI summary

A computer system firmware is provided that includes functionality for allowing a calling application to invoke firmware functions through the use of firmware services for getting and setting firmware variables. Firmware functions may be defined and mapped to firmware variable names. When a request is received by the firmware to get or set a value for a particular firmware variable, the firmware determines whether a custom firmware function has been defined that corresponds to the requested firmware variable. If a custom function has been defined that corresponds to the requested firmware variable, then the corresponding custom function is executed rather than the requested get or set operation. A firmware setup application might utilize this mechanism to obtain information from a firmware for use in modifying the configuration of a computer system that would not otherwise be available to the setup application.