
OneNAND256
FLASH MEMORY
67
One of the best features OneNAND has is that it can be a booting device itself since it contains an internally built-in boot loader 
despite the fact that its core architecture is based on NAND Flash. Thus, OneNAND does not make any additional booting device 
necessary for a system, which imposes extra cost or area overhead on the overall system. 
As the system power is turned on, the boot code originally stored in NAND Flash Arrary is moved to BootRAM automatically and then 
fetched by CPU through the same interface as SRAM’s or NOR Flash’s if the size of the boot code is less than 1KB. If its size is larger 
than 1KB and less than or equal to 2KB, only 1KB of it can be moved to BootRAM automatically and fetched by CPU, and the rest of 
it can be loaded into one of the DataRAMs whose size is 1KB by Load Command and CPU can take it from the DataRAM after finish-
ing the code-fetching job for BootRAM. If its size is larger than 2KB, the 1KB portion of it can be moved to BootRAM automatically 
and fetched by CPU, and its remaining part can be moved to DRAM through two DataRAMs using dual buffering and taken by CPU 
to reduce CPU fetch time.
A typical boot scheme usually used to boot the system with OneNAND is explained at Figure 26 and Figure 27. In this boot scheme, 
boot code is comprised of BL1, where BL stands for Boot Loader, BL2, and BL3. Moreover, the size of the boot code is larger than 
2KB (the 3rd case above). BL1 is called primary boot loader in other words. Here is the table of detailed explanations about the func-
tion of each boot loader in this specific boot scheme.
Boot Loaders in OneNAND
NAND Flash Array of OneNAND is divided into the partitions as described at Figure 26 to show where each component of code is 
located and how much portion of the overall NAND Flash Array each one occupies. In addition, the boot sequence is listed below and 
depicted at Figure 27.
Boot Sequence : 
             1.   Power is on
                   BL1 is loaded into BootRAM
            2.   BL1 is executed in BootRAM
                  BL2 is loaded into DRAM through two DataRams using dual buffering by BL1
            3.   BL2 is executed in DRAM
                  OS image is loaded into DRAM through two DataRams using dual buffering by BL2
            4.   OS is running
Boot Loader
Description
BL1
Moves BL2 from NAND Flash Array to DRAM through two DataRAMs using dual buffering
BL2
Moves OS image (or BL3 optionally) from NAND Flash Array to DRAM through two DataRams using dual buffering
BL3 (Optional)
Moves or writes the image through USB interface
Technical Notes 
(Continued)
Boot Sequence