Boot Code Copying via Microcontroller for External Media

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Embedded systems face challenges in booting from external devices due to the lack of in-place execution capability with serial peripheral interfaces, which increases real estate requirements and complicates the mapping of the system processor's reset vector to external device memory.

Innovation Solution

A system comprising a microcontroller and on-chip memory that identifies and copies boot code from external devices, maps the system processor's reset vector to the boot code in on-chip memory, enabling in-place execution of the boot code, supporting various external media like SPI NOR, USB, and PCIe devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a parallel bus interface is used to connect memory to the system processor for in-place execution, then in-place execution capability is achieved, but the amount of space dedicated to wiring increases

Engineering Contradiction:
Improvein-place execution capabilityVSAvoidwiring space
Core Design Contradiction:
Ease of operationVSArea of stationary object

Solution Approach 1:

The patent introduces a serial peripheral interface (SPI) as an intermediary communication channel between the external device and the system processor. This SPI interface enables data transfer without requiring a parallel bus connection, thus achieving in-place execution capability while minimizing wiring space requirements. The SPI interface acts as a mediator that translates external device communications into a format suitable for the processor's execution environment.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Area of stationary object

If serial interface devices are used for external connections, then real estate requirements are reduced, but in-place execution capability is lost

Engineering Contradiction:
Improvewiring spaceVSAvoidin-place execution capability
Core Design Contradiction:
Area of stationary objectVSEase of operation

Solution Approach 1:

The patent implements a boot code copying mechanism where the initial boot code is copied from the external serial device into the system's internal memory through the SPI interface. Once copied, the boot code can be executed in-place by the system processor. This copying approach allows the system to leverage the space-efficient serial interface while still achieving in-place execution capability by temporarily storing the boot code in internal memory.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If the system processor directly boots from external serial devices, then device versatility is improved, but the mapping of reset vector to external device memory becomes complex

Engineering Contradiction:
Improveboot from external devicesVSAvoidreset vector mapping
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent uses the SPI interface and internal memory as intermediaries to simplify the reset vector mapping process. Instead of directly mapping the reset vector to external serial device memory (which would be complex), the system copies the boot code through the SPI interface into internal memory, where the reset vector can be cleanly mapped to the copied code's location. This intermediary approach decouples the external device connection from the processor's memory mapping requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9558012B2System boot with external media
Publication Date: 2017.01.31 MACOM CONNECTIVITY SOLUTIONS LLC
  • US9558012B2 patent drawing
  • US9558012B2 patent drawing
  • US9558012B2 patent drawing

AI summary

Various aspects of the present disclosure provide for a system that is able to boot from a variety of media that can be connected to the system, including SPI NOR and SPI NAND memory, universal serial bus (“USB”) devices, and devices attached via PCIe and Ethernet interfaces. When the system is powered on, the system processor is held in a reset mode, while a microcontroller in the system identifies an external device to be booted, and then copies a portion of boot code from the external device to an on-chip memory. The microcontroller can then direct the reset vector to the boot code in the on-chip memory and brings the system processor out of reset. The system processor can execute the boot code in-place on the on-chip memory, which initiates the system memory and the second stage boot loader.