Grouped Firmware Swapping in Memory-Constrained Security Subsystems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face challenges in securely updating firmware due to memory constraints, where secure memory is insufficient to accommodate new features, and demand paging solutions are costly and difficult to maintain, especially in embedded systems.

Innovation Solution

A system that dynamically loads and swaps firmware groups from external flash memory into secure memory, using an image manager to ensure integrity and authenticity, allowing continuous operation with a single grouped firmware image by swapping code groups as needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If firmware is stored in non-volatile memory devices (ROM, EPROM, EEPROM, flash memory), then firmware can be permanently installed and retain basic functional control, but firmware cannot be updated without physically replacing the ROM integrated circuits or reprogramming through special procedures

Engineering Contradiction:
Improvefirmware permanenceVSAvoidfirmware update capability
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent segments the firmware into multiple code groups (first code group, second code group, third code group) that can be independently stored in non-volatile memory and selectively loaded into secure memory. This segmentation enables updating specific code groups without replacing the entire firmware or performing complex reprogramming procedures, thus maintaining reliability while improving update ease.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If secure memory size is increased to accommodate updated security firmware with new features, then new features can be supported, but memory cost and device complexity increase

Engineering Contradiction:
Improvenew feature supportVSAvoidmemory size
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a dynamic code group swapping mechanism where different code groups can be loaded into secure memory based on runtime requirements. The system can switch between a first code group and a second code group, allowing new features to be supported by loading appropriate code groups without permanently increasing secure memory size. This dynamic approach maintains adaptability while controlling device complexity and memory resource usage.

Inventive Principle:
Principle #15Dynamics

3Productivity

If demand paging solutions are implemented to load application images with separate pages on demand, then memory usage efficiency improves, but page table creation and maintenance become costly and difficult

Engineering Contradiction:
Improvememory usage efficiencyVSAvoidpage table maintenance
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the page table maintenance complexity from the system by implementing a simpler code group loading mechanism. Instead of using demand paging with page tables, the system directly loads complete code groups from non-volatile memory into secure memory based on simple group identifiers. This extraction of complexity maintains memory usage efficiency while eliminating the burden of page table creation and maintenance.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP4641412A1Grouped firmware design for memory constrained devices
Publication Date: 2025.10.29 NXP USA INC
  • EP4641412A1 patent drawingFigure 1
  • EP4641412A1 patent drawingFigure 2
  • EP4641412A1 patent drawingFigure 3

AI summary

A system, method, and apparatus are provided for securely controlling operations of a data processing system in which security subsystem is activated to provide security services. Initially, a security firmware base code group and a security firmware first code group are downloaded from a multi-group security firmware image stored on external memory for storage at a secure memory in the security subsystem. If the security firmware first code group does not support a received security service command request, a security firmware second code group is retrieved from the multi-group security firmware image a run-time swap of the security firmware second code group is performed to replace the security firmware first code group in the secure memory in the security subsystem so that the security subsystem can generate a response to the security service command request using at least the security firmware second code group.