Boot ROM Code Adaptability for NAND Flash Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The challenge lies in booting a computing device from NAND flash memory without prior knowledge of its parametric information, as existing methods require a NAND flash identification table stored in ROM, which cannot be updated, limiting the use of new NAND flash memory types and leading to compatibility issues due to the faster product cycle of NAND flash memory compared to ROM.
Innovation Solution
The solution involves configuring a computing device to boot using a least common denominator format, allowing it to read a first bootstrapping code image without knowing the NAND flash memory's parametric information, and then determining and using the specific parametric information to configure subsequent read routines, enabling the use of various NAND flash memory types without the need for a NAND flash identification table or separate updatable storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a NAND flash identification table is stored in ROM to enable booting from NAND flash memory, then the computing device can determine parametric information of the NAND flash memory, but the system cannot support new NAND flash memory types that are developed after the ROM is programmed
Solution Approach 1:
The patent makes the boot ROM code itself updatable, allowing it to serve dual functions: maintaining backward compatibility with existing NAND flash memory types while simultaneously supporting new NAND flash memory types that emerge in the future. This is achieved by providing a mechanism to update the ROM code with new parametric information tables, eliminating the need for separate updatable storage components.
Solution Approach 2:
The patent transforms the static, read-only boot ROM code into a dynamic, updatable component. By enabling the ROM code to be programmed with new parametric information tables after initial manufacturing, the system adapts to changing NAND flash memory technologies without requiring additional hardware components or separate storage mechanisms.
2Reliability
If the ROM is programmed with the NAND flash parametric table before a NAND device is selected, then the ROM is fixed and cannot be updated, but this limits the use of newer NAND flash memory types with faster product cycles
Solution Approach 1:
The patent prepares the boot ROM code with an initial parametric information table for known NAND flash memory types, ensuring reliable booting from the start. However, it also establishes a preliminary update mechanism that allows the ROM code to be programmed with new parametric information tables later, enabling the system to adapt to newer NAND flash memory types while maintaining initial boot reliability.
Solution Approach 2:
The patent enables changes to the parametric information table stored in the boot ROM code by providing an update mechanism. This allows the system to modify the parametric information parameters (such as page size, block size, error correction codes) to match newer NAND flash memory types while preserving the core boot functionality, thus balancing reliability with adaptability.
3Extent of automation
If a standard hard disk interrogation method is used to automatically determine NAND flash parametric information, then the process would be automated, but additional hardware or software must be employed in the computing device
Solution Approach 1:
The patent enables the boot ROM code to automatically determine NAND flash parametric information by incorporating an identification mechanism directly within the ROM code itself. The computing device uses the boot ROM code to read identification information from the NAND flash memory and automatically retrieve the corresponding parametric information table from within the same ROM code, eliminating the need for additional external hardware or software components.
Data Source
AI summary
Techniques for booting a computing device with a flash memory without knowledge of parametric information of the flash memory are described herein. In one embodiment of the invention, the computing device receives input requesting the computing device to begin operation and executes a set of one or more instructions stored in a non-volatile memory. The execution of the set of instructions configures a first read routine for accessing the flash memory based on a common denominator format of candidate flash memories, and the first read routine is not configured based on information located in a flash memory identification table. The computing device reads a bootstrapping code image based on the first read routine into a volatile memory and executes that first bootstrapping code image. Other methods and apparatuses are also described.


