SoC Flash Memory Secure Zone Architecture for Multi-Party Code Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems lack effective protection of code developed by one party from piracy when multiple parties are involved in embedded software development, as traditional security mechanisms do not prevent unauthorized access or copying of intellectual property stored in non-volatile memory.

Innovation Solution

A code security architecture that divides flash memory into multiple secure zones, allowing each party to have dedicated sectors with password-protected access, enabling secure development and execution while preventing direct reading or writing between zones, using a flash controller and code security module to manage access and enforce zone security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional security mechanisms (MMU or MPU) are used, then supervisor vs. user mode protection is provided, but code developed by one party cannot be protected from piracy when a second party is also developing code for the system

Engineering Contradiction:
Improvecode protectionVSAvoidmulti-party development support
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent divides the flash memory into multiple secure zones (e.g., Zone 0, Zone 1, Zone 2) where each zone can be independently protected with its own password. This segmentation allows different parties to have their code stored in separate zones with individual security controls, enabling multi-party development while preventing piracy of each party's intellectual property

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each secure zone is configured with specific security attributes including a unique password, read protection, and write protection. This local quality approach allows customization of security parameters for each zone, enabling fine-grained control over code protection for different parties while maintaining overall system security

Inventive Principle:
Principle #3Local quality

2Ease of operation

If flash memory is made accessible for development, then code can be written and executed, but unauthorized reading or copying of code becomes possible

Engineering Contradiction:
Improvecode development accessVSAvoidunauthorized code access
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent implements password protection and security zone configuration before code is written to flash memory. The secure zones are pre-configured with passwords and protection attributes during system initialization or manufacturing, establishing security controls in advance that prevent unauthorized reading or copying while still allowing authorized development activities

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a security module that acts as an intermediary between the processor and flash memory. This security module intercepts and controls all access requests to flash memory, verifying passwords and enforcing zone-specific protection rules, thereby mediating between development access needs and code protection requirements

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8539602B2Microcontroller with secure feature for multiple party code development
Publication Date: 2013.09.17 TEXAS INSTRUMENTS INC
  • US8539602B2 patent drawing
  • US8539602B2 patent drawing
  • US8539602B2 patent drawing

AI summary

Multiple secure environments are established within a system on a chip (SoC) by defining a first secure region within a non-volatile memory in the SoC with a first set of parameters written into a predefined parameter region of the non-volatile memory. A second secure region within the non-volatile memory may be defined at a later time by a second set of parameters written into another predefined parameter region of the non-volatile memory. A security module is initialized each time the SoC is powered on by transferring the first set of parameters and the second set of parameters from the parameter region to the security module in a manner that does not expose the first set of parameters or the second set of parameters to a program being executed by the processor. The multiple secure regions of the SoC are enforced by the security module according to the parameter data.