Pre-OS Image Rewriting for Cross-Architecture Firmware Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The Unified Extensible Firmware Interface (UEFI) specification lacks true cross-platform binding for various operating system environments, leading to limitations in firmware loading and updating across different architectures, particularly with size issues in EFI Byte Code interpreters and limited support for platforms like ARM and IA-32, which increases system failure risks and reduces flexibility in firmware updates.

Innovation Solution

A binary translator and integrity cache system that rewrites pre-OS images to provide cross-architecture support, security introspection, and performance optimization by mapping alternate CPU binaries into native binaries, using persistent memory for secure storage, and applying CPU-specific optimizations and Inline Reference Monitors to ensure platform security and efficiency during firmware updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If UEFI binary platform binding is used for firmware loading, then firmware can be loaded on supported platforms, but it lacks flexibility and cross-architecture support

Engineering Contradiction:
Improvecross-architecture supportVSAvoidfirmware loading complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a binary translator as an intermediary component that converts firmware binaries from one architecture to another. The translator includes instruction set architecture (ISA) translators that convert instructions between different CPU architectures (x86, ARM, RISC-V), enabling firmware written for one architecture to execute on another without requiring separate firmware versions for each platform.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The firmware system is designed to be universal by implementing multi-architecture support through the binary translator. A single firmware binary can be translated to run on multiple different CPU architectures, eliminating the need for architecture-specific firmware versions and enabling one firmware image to serve multiple platform types.

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

2Adaptability or versatility

If EFI Byte Code interpreter is used for cross-platform support, then firmware can run on multiple platforms, but size issues arise

Engineering Contradiction:
Improveplatform compatibilityVSAvoidfirmware size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent extracts the translation functionality from a monolithic EFI Byte Code interpreter and implements it as separate, modular ISA translator components. Each translator handles a specific architecture conversion (e.g., x86 to ARM, RISC-V to x86), allowing the system to include only the translators needed for target platforms rather than a complete universal interpreter, thereby reducing overall firmware size.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The binary translator is segmented into multiple independent instruction set architecture translators, each responsible for a specific architecture pair. This segmentation allows the firmware to include only the necessary translator modules for the platforms being supported, rather than requiring a complete universal interpreter, thus reducing firmware size while maintaining cross-platform capability.

Inventive Principle:
Principle #1Segmentation

3Productivity

If firmware updates are performed without pre-OS image rewriting, then update process is simple, but system failure risk increases

Engineering Contradiction:
Improvefirmware update efficiencyVSAvoidsystem failure risk
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a pre-OS image rewriting step that occurs before the firmware is executed. During this preliminary phase, the binary translator rewrites the firmware binary into the native architecture format, and integrity verification is performed on the translated binary. This preliminary validation ensures that the firmware is correct for the target architecture before execution, preventing system failures while maintaining efficient updates.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback through integrity verification mechanisms that check the translated firmware binary before execution. The verification process provides feedback on whether the translation was successful and whether the resulting binary is valid, allowing the system to detect and correct issues before they cause system failure, thus improving reliability without significantly impacting update efficiency.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9495177B2Techniques for pre-OS image rewriting to provide cross-architecture support, security introspection, and performance optimization
Publication Date: 2016.11.15 INTEL CORP
  • US9495177B2 patent drawing
  • US9495177B2 patent drawing
  • US9495177B2 patent drawing

AI summary

Methods and apparatus relating to pre-OS (pre Operating System) image rewriting to provide cross-architecture support, security introspection, and/or performance optimization are described. In an embodiment, logic rewrites a non-native firmware interface driver into a native firmware interface driver in response to a determination that sufficient space is available in an integrity cache storage device to store the native firmware interface driver. The logic rewrites the non-native firmware interface driver into the native firmware interface driver by performing one or more of its operations during operating system runtime. Other embodiments are also claimed and described.