ROM Firmware Patch Infrastructure via Indirection Table

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Firmware stored in read-only memory (ROM) cannot be modified after hardware design and commercialization, limiting the ability to fix bugs or add configurability, and current solutions like programmable ROM (PROM) are cumbersome and increase manufacturing overhead.

Innovation Solution

Implementing a patch infrastructure that allows firmware updates by generating a patchable firmware source code image with an indirection table, enabling calls to patchable objects in ROM to redirect execution to either original or patched code in ROM or random access memory, facilitating over-the-air updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If firmware is stored in ROM, then cost is reduced and security is improved, but firmware cannot be modified after deployment

Engineering Contradiction:
Improvefirmware immutabilityVSAvoidfirmware updatability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The firmware is segmented into multiple sections: read-only sections stored in ROM and patchable sections that can be updated. The indirection table divides the firmware namespace into original firmware entries and patch firmware entries, allowing selective updating of specific firmware components while preserving the immutable ROM portion.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An indirection table is introduced as an intermediary layer between the ROM firmware and the execution environment. This table contains entries that map firmware symbols to their actual locations, enabling dynamic redirection of patchable objects to updated code in RAM or other writable memory without modifying the ROM contents.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If PROM is used to enable firmware patching, then firmware updatability is improved, but manufacturing overhead increases

Engineering Contradiction:
Improvefirmware patchabilityVSAvoidmanufacturing overhead
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

Instead of using expensive PROM hardware, the invention creates software-based copies of firmware sections in writable memory (RAM). The patch firmware is copied to RAM and executed from there, while the original ROM firmware remains unchanged. This software-based approach eliminates the need for costly PROM manufacturing processes.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system changes the state parameter of firmware from permanently fixed (ROM) to dynamically changeable (RAM). By loading firmware sections into volatile memory and using the indirection table to redirect execution, the system transitions from a static firmware model to a dynamic one without requiring programmable ROM hardware.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If firmware is made patchable, then post-deployment flexibility is improved, but system complexity increases

Engineering Contradiction:
Improvepost-deployment flexibilityVSAvoidpatch infrastructure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The complexity of firmware patching is extracted and isolated into a dedicated indirection table data structure and associated resolution logic. This separates the patching mechanism from the core firmware execution path, allowing the majority of firmware to execute normally while only patchable objects go through the indirection table lookup process.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The indirection table serves multiple functions: it acts as a symbol resolution table, a patch redirection mechanism, and an initialization coordinator. By consolidating these functions into a single data structure, the system reduces overall complexity compared to having separate mechanisms for each function.

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

Data Source

PatentUS10346157B2Patch infrastructure for ROM firmware
Publication Date: 2019.07.09 QUALCOMM INC
  • US10346157B2 patent drawing
  • US10346157B2 patent drawing
  • US10346157B2 patent drawing

AI summary

Various aspects include methods for implementing a firmware patch infrastructure. Various aspects may include identifying a patchable object from a firmware source code image based on a symbol in the patchable object's name, generating a patchable firmware source code file by injecting a first call to the patchable object configured to call to an indirection table and a second call to the patchable object configure to execute the patchable object, building a patchable firmware source code image from a plurality of patchable firmware source code files including the patchable firmware source code file having the first call to the patchable object and the second call to the patchable object, and creating the indirection table including an entry for the first call from the patchable firmware source code image having an indication to implement the second call in the patchable firmware source code image.