ROM Boot Code Patching via Interrupt Manager

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for patching boot code in read-only memory (ROM) require re-fabrication of ROM hardware, which is time-consuming, costly, and resource-intensive, as the boot code is hard-coded and cannot be modified once manufactured.

Innovation Solution

The method involves executing first boot code from ROM and interrupting it to execute additional or alternate boot code from one-time-programmable (OTP) memory, allowing for patching without altering the ROM, and using a System-on-Chip (SoC) with an interrupt manager to manage the execution between ROM and OTP memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If boot code is hard-coded into ROM to prevent unauthorized modification, then security and authenticity are improved, but the ability to correct errors is lost and re-fabrication is required

Engineering Contradiction:
Improveauthenticity of boot codeVSAvoidability to correct boot code errors
Core Design Contradiction:
ReliabilityVSEase of repair

Solution Approach 1:

The boot code is segmented into two parts: immutable boot code stored in ROM and patchable boot code stored in OTP memory. This segmentation allows the immutable portion to maintain security while the patchable portion can be corrected without re-fabrication.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An interrupt manager acts as an intermediary between the ROM and OTP memory, managing the execution flow. It interrupts execution of ROM boot code and redirects to OTP boot code when needed, enabling error correction while maintaining the original secure boot code in ROM.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If boot code is hard-coded into ROM, then modification is prevented, but time and resources are consumed for re-fabrication when corrections are needed

Engineering Contradiction:
Improveimmutability of boot codeVSAvoidtime for re-fabrication
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

The OTP memory is prepared in advance during manufacturing to store corrected or alternate boot code. This preliminary preparation allows immediate patching without re-fabrication, saving time and resources while maintaining the immutability of the original ROM.

Inventive Principle:
Principle #10Preliminary action

3Ease of repair

If interrupt mechanism is added to enable patching, then ease of repair is improved, but device complexity increases

Engineering Contradiction:
Improveboot code patching capabilityVSAvoidhardware structure
Core Design Contradiction:
Ease of repairVSDevice complexity

Solution Approach 1:

The interrupt manager is designed with multi-functionality, handling both normal boot code execution from ROM and patched execution from OTP memory. This universal component manages multiple boot scenarios without requiring separate dedicated hardware for each function.

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

Data Source

PatentUS9880856B2Patching boot code of read-only memory
Publication Date: 2018.01.30 MARVELL ASIA PTE LTD
  • US9880856B2 patent drawing
  • US9880856B2 patent drawing
  • US9880856B2 patent drawing

AI summary

The present disclosure describes apparatuses and techniques for patching boot code of read-only memory (ROM). In some aspects, execution of boot code from a ROM is initiated to start a boot process of a device. Execution of the boot code from the ROM is then interrupted to enable execution of other boot code, such as corrected boot code or additional boot code, from another memory. Once the other boot code is executed, execution of the boot code from the ROM is resumed to continue booting the computing device. By so doing, the corrected boot code or additional boot code can be executed during the boot process effective to patch the boot code stored in the ROM.