UEFI Driver C Library Integration via Wrapper

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The Unified Extensible Firmware Interface (UEFI) environment lacks robust software infrastructure and flexibility for developing applications and drivers, particularly due to limitations in using standard C libraries and storage constraints, which restrict the deployment of dynamically linked libraries.

Innovation Solution

A method is introduced where existing standard C libraries are ported and deployed as UEFI drivers, utilizing a wrapper driver and worker application architecture to expose C library functions through UEFI protocol interfaces, allowing for static linking and efficient memory usage, enabling the reuse of existing C-based applications and libraries in the UEFI environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If standard C libraries are deployed as dynamically linked libraries in UEFI environment, then software infrastructure robustness is improved, but storage space is exceeded due to deployment constraints

Engineering Contradiction:
Improvesoftware infrastructure robustnessVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges the C library implementation directly into the UEFI driver binary image, eliminating the need for separate dynamically linked library files. This consolidation allows the entire C library functionality to be deployed within the existing driver storage allocation, resolving the contradiction between improving software infrastructure robustness and exceeding storage space constraints.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The UEFI driver is designed to serve multiple functions: it acts as both the driver itself and the container for the C library implementation. This multi-functionality allows the driver to provide both hardware interfacing capabilities and standard C library services without requiring additional storage space for separate library files.

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

2Quantity of substance

If C libraries are ported and deployed as UEFI drivers with static linking, then storage constraints are overcome, but development complexity increases due to infrastructure limitations

Engineering Contradiction:
Improvestorage spaceVSAvoiddevelopment complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the development process into distinct phases: the C library is ported and implemented separately as a worker application, then integrated into the UEFI driver through a well-defined protocol interface. This segmentation allows developers to work on the C library porting independently using standard tools, reducing the overall development complexity despite the static linking requirement.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a protocol interface as an intermediary layer between the UEFI driver and the C library worker application. This intermediary simplifies the integration process by providing standardized communication mechanisms, reducing the complexity of porting C libraries to the UEFI environment with static linking.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If wrapper driver and worker application architecture is used to expose C library functions, then software infrastructure flexibility is improved, but device complexity increases

Engineering Contradiction:
Improvesoftware infrastructure flexibilityVSAvoiddevice complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The wrapper driver is designed as a universal component that can interface with multiple different C library implementations through a standardized protocol. This multi-functionality provides software infrastructure flexibility while managing device complexity through reuse of the same wrapper architecture across different library ports.

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

Solution Approach 2:

The architecture segments the system into a wrapper driver layer and a worker application layer, allowing independent development and testing of each component. This segmentation improves flexibility by enabling different C library implementations to be swapped without modifying the wrapper driver, while managing complexity through clear separation of concerns.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9678767B2Unified extensible firmware interface (UEFI) driver and protocol
Publication Date: 2017.06.13 HEWLETT PACKARD DEVELOPMENT COMPANY LP
  • US9678767B2 patent drawing
  • US9678767B2 patent drawing
  • US9678767B2 patent drawing

AI summary

An example apparatus may comprise a processor and a memory device including computer program code. The memory device and the computer program code, with the processor, may cause the apparatus to execute a client application, the client application to consume a first protocol, the protocol having been produced by a Unified Extensible Firmware Interface (UEFI) wrapper driver; invoke, with the client application, the UEFI wrapper driver to perform at least one operation of the protocol; load a binary image of a worker application with the wrapper driver to invoke the at least one operation. The worker application calls at least one function of a software library to perform the at least one operation.