Microcontroller Bootloader Updating via Dual Second-Stage Regions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing microcontroller bootloader update processes are inflexible and slow, requiring simultaneous updates of the firmware and application modules, which can lead to downtime and security risks due to the lack of separate regions for updating the second-stage bootloader.

Innovation Solution

A microcontroller architecture with a first-stage bootloader and two second-stage bootloader regions allows for flexible and secure updating of the second-stage bootloader without affecting the application module, using a processor to transfer execution between these regions and write replacement bootloaders, enabling independent updates and maintaining a chain of trust.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the bootloader is updated using a single-region architecture, then the update process is simple, but the system requires simultaneous updates of firmware and application modules resulting in extended downtime and reduced flexibility

Engineering Contradiction:
Improveupdate flexibilityVSAvoiddowntime
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The bootloader is segmented into two distinct stages stored in separate memory regions: a first-stage bootloader in a first memory region and a second-stage bootloader in a second memory region. This segmentation allows independent updating of the second-stage bootloader without requiring simultaneous updates of the application module, thereby reducing downtime and increasing update flexibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first-stage bootloader is pre-configured with instructions to transfer execution to the second-stage bootloader. This preliminary setup enables the second-stage bootloader to be updated independently and activated on the next system reset, without requiring coordinated updates of other software components, thus reducing overall update downtime.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the bootloader region is write-restricted to prevent malicious modification, then security is improved, but the bootloader cannot be updated without complex multi-region architecture

Engineering Contradiction:
ImprovesecurityVSAvoidupdate capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The memory is segmented into multiple regions with different access permissions: the first-stage bootloader region has write-restrictions for security, while the second-stage bootloader region allows updates. This segmentation maintains security for critical boot code while enabling flexible updates of the second-stage bootloader.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first-stage bootloader acts as an intermediary between the secure first memory region and the updatable second memory region. It verifies the integrity of the second-stage bootloader and transfers execution only after validation, thereby maintaining the chain of trust while enabling secure updates.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If the bootloader verification process is comprehensive to maintain chain of trust, then security is enhanced, but the boot process time increases

Engineering Contradiction:
Improvechain of trustVSAvoidboot speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The first-stage bootloader performs verification of the second-stage bootloader in advance during the boot process. By preparing and validating the second-stage bootloader upfront, the system ensures the chain of trust is maintained while minimizing delays during actual execution, as the verification is completed before the second-stage bootloader takes over.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12014165B2Bootloader updating
Publication Date: 2024.06.18 NORDIC SEMICONDUCTOR
  • US12014165B2 patent drawing
  • US12014165B2 patent drawing
  • US12014165B2 patent drawing

AI summary

A microcontroller comprises a processor and a memory. The memory comprises a first-stage bootloader, a first second-stage bootloader, a second second-stage bootloader region, and an application region for storing an application. The processor is configured to execute instructions from the first-stage bootloader when the microcontroller is reset. The first-stage bootloader comprises instructions for transferring execution from the first-stage bootloader to the active second-stage bootloader, which comprises instructions for transferring execution to an address in the application region, and for causing the processor to write a replacement second-stage bootloader to whichever of the first and second second-stage bootloader regions is not the active region. The first-stage bootloader comprises instructions for detecting the replacement second-stage bootloader in whichever of the first and second second-stage bootloader regions is not the active region and for transferring execution to the replacement second-stage bootloader when the microcontroller is next reset.