SoC Firmware Initialization via Shared Block Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

System on a chip circuits face challenges in efficiently initializing and sharing firmware images between embedded controllers and security controllers, as they typically require separate memory devices and lack effective methods for block media partition sharing during the boot process.

Innovation Solution

The implementation of a security controller that detects requests for embedded controller firmware via an enhanced serial peripheral interface (eSPI) transmission link, retrieves the firmware from block storage, and transmits it back to the embedded controller, enabling master attached flash sharing and utilizing drivers for data retrieval in a runtime environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate memory devices are used for each embedded controller, then firmware storage is reliable, but device complexity increases

Engineering Contradiction:
Improvefirmware storage reliabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges separate memory devices into a shared block storage system accessible by multiple embedded controllers through a common interface. The block storage contains partitioned firmware images that can be accessed by different controllers, eliminating the need for separate memory devices while maintaining reliable firmware storage through structured partitioning and access protocols.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The block storage device serves multiple functions: storing firmware for multiple embedded controllers, providing a common access interface, and supporting both initialization and runtime firmware retrieval. This universal storage solution replaces multiple dedicated memory devices, reducing overall system complexity while maintaining reliability through its multi-functional design.

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

2Reliability

If firmware is retrieved during initialization, then embedded controllers start up correctly, but initialization time increases

Engineering Contradiction:
Improveboot process reliabilityVSAvoidinitialization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-partitioning the block storage into dedicated firmware partitions before system initialization. Each embedded controller's firmware is pre-located in specific partitions, allowing the initialization process to directly access known locations without time-consuming searches or dynamic allocation, thus reducing initialization time while ensuring reliable firmware retrieval.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If block storage is shared between controllers, then memory utilization improves, but access control complexity increases

Engineering Contradiction:
Improvememory utilization efficiencyVSAvoidaccess control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the shared block storage into distinct partitions, each dedicated to specific embedded controllers or firmware types. This segmentation allows efficient memory utilization through shared access while simplifying access control, as each controller is assigned specific partitions it can access without interfering with others, eliminating the need for complex dynamic access control mechanisms.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10223094B2Initializing a system on a chip
Publication Date: 2019.03.05 INTEL CORP
  • US10223094B2 patent drawing
  • US10223094B2 patent drawing
  • US10223094B2 patent drawing

AI summary

In one example, a system on a chip can include an embedded controller and a security controller that can detect, during an initialization process, a request for embedded controller firmware stored in block storage from the embedded controller via a transmission link. The security controller can also retrieve the embedded controller firmware stored in the block storage and transmit the embedded controller firmware to the embedded controller via the transmission link.