NAND Flash Boot Code Segmentation for Secure System Initialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In secure system boots, the limited usable block in NAND flash memory devices poses a challenge as the boot code may exceed this area, and without processing units, software applications like Bad Block Management are unavailable, hindering the loading of security code essential for system integrity.

Innovation Solution

The boot code is segmented and stored in a NAND flash memory with only the first block guaranteed to be usable, containing information to locate and validate remaining segments stored in non-contiguous blocks, allowing the security sub-system to assemble and validate the boot code autonomously during secure system boots.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If boot code is stored in NAND flash memory blocks beyond the first guaranteed block, then storage capacity is improved, but system security and reliability deteriorate because the processing unit is unavailable during early boot stages to manage non-contiguous block access

Engineering Contradiction:
Improveboot code storage capacityVSAvoidsecure system boot
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The boot code is divided into multiple segments: critical security verification code is placed in the first guaranteed block, while additional code segments are stored in subsequent non-contiguous blocks. This segmentation allows the security subsystem to access essential code without requiring full processing unit functionality, thereby resolving the contradiction between storage capacity and boot reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first block of NAND flash memory is pre-configured to contain only the essential security verification code that can be executed without the processing unit. This preliminary arrangement ensures that secure boot can commence before the processing unit becomes available, addressing the reliability concern while enabling extended storage in later blocks.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the processing unit is restricted during early boot stages to ensure security, then system security is improved, but the ability to load and manage boot code from non-contiguous blocks deteriorates

Engineering Contradiction:
Improvesystem securityVSAvoidboot code loading
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The first block of NAND flash memory is designed to be self-sufficient, containing all necessary security verification code and metadata required to initiate the secure boot process without external assistance from the processing unit. This self-service capability allows the system to maintain security restrictions while still enabling boot code loading through autonomous security subsystem operation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Essential boot code and security verification routines are pre-positioned in the first guaranteed block before the processing unit becomes operational. This preliminary placement eliminates the need for complex block management during early boot, allowing the security subsystem to load and verify code independently despite processing unit restrictions.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If Bad Block Management software is used to manage NAND flash memory, then storage flexibility is improved, but device complexity increases and the software is unavailable during early boot stages

Engineering Contradiction:
Improvememory management flexibilityVSAvoidsoftware management requirements
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The complex Bad Block Management software is extracted from the early boot process. Instead, the first block contains simplified, hard-coded block mapping information and security verification routines that operate without software intervention. This extraction reduces device complexity during critical boot stages while maintaining storage flexibility through the structured organization of code segments in subsequent blocks.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Memory management functionality is segmented into two parts: essential block identification and security verification embedded directly in the first block, and advanced management tasks deferred to later stages when software becomes available. This segmentation enables early boot operation with minimal complexity while preserving storage flexibility for when full software management can be engaged.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8694767B2Method and system for NAND flash support in an autonomously loaded secure reprogrammable system
Publication Date: 2014.04.08 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US8694767B2 patent drawing
  • US8694767B2 patent drawing
  • US8694767B2 patent drawing

AI summary

A system and method that enables secure system boot up with a restricted central processing unit (CPU). The system includes a memory, a segmenting device, and a security sub-system. The memory is a NAND flash memory with a block structure that comprises a guaranteed block and non-guaranteed blocks. The guaranteed block is guaranteed to be useable. A boot code is segmented into boot code segments and the boot code segments are stored separately in the guaranteed and non-guaranteed blocks. The security sub-system is configured to locate the boot code segments stored in the non-guaranteed blocks and validate them independently based on data in the guaranteed block. The security sub-system is further configured to assemble the boot code segments into the boot code and execute the boot code.