61 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
-----------------------------
 | 
						|
NAND boot on PPC440 platforms
 | 
						|
-----------------------------
 | 
						|
 | 
						|
This document describes the U-Boot NAND boot feature as it
 | 
						|
is implemented for the AMCC Sequoia (PPC440EPx) board.
 | 
						|
 | 
						|
The PPC440EP(x)/GR(x) cpu's can boot directly from NAND FLASH,
 | 
						|
completely without NOR FLASH. This can be done by using the NAND
 | 
						|
boot feature of the 440 NAND flash controller (NDFC).
 | 
						|
 | 
						|
Here a short description of the different boot stages:
 | 
						|
 | 
						|
a) IPL (Initial Program Loader, integrated inside CPU)
 | 
						|
------------------------------------------------------
 | 
						|
Will load first 4k from NAND (SPL) into cache and execute it from there.
 | 
						|
 | 
						|
b) SPL (Secondary Program Loader)
 | 
						|
---------------------------------
 | 
						|
Will load special U-Boot version (NUB) from NAND and execute it. This SPL
 | 
						|
has to fit into 4kByte. It sets up the CPU and configures the SDRAM
 | 
						|
controller and the NAND controller so that the special U-Boot image can be
 | 
						|
loaded from NAND to SDRAM.
 | 
						|
This special image is build in the directory "nand_spl".
 | 
						|
 | 
						|
c) NUB (NAND U-Boot)
 | 
						|
--------------------
 | 
						|
This NAND U-Boot (NUB) is a special U-Boot version which can be started
 | 
						|
from RAM. Therefore it mustn't (re-)configure the SDRAM controller.
 | 
						|
 | 
						|
On 440EPx the SPL is copied to internal SRAM before the NAND controller
 | 
						|
is set up. While still running from cache, I experienced problems accessing
 | 
						|
the NAND controller.
 | 
						|
 | 
						|
 | 
						|
Example: Build and install NAND boot image for Sequoia (440EPx):
 | 
						|
 | 
						|
a) Configure for sequoia with NAND boot support:
 | 
						|
# make sequoia_nand_config
 | 
						|
 | 
						|
b) Build image(s)
 | 
						|
# make
 | 
						|
 | 
						|
This will generate the SPL image in the "nand_spl" directory:
 | 
						|
nand_spl/u-boot-spl.bin
 | 
						|
Also another image is created spanning a whole NAND block (16kBytes):
 | 
						|
nand_spl/u-boot-spl-16k.bin
 | 
						|
The main NAND U-Boot image is generated in the toplevel directory:
 | 
						|
u-boot.bin
 | 
						|
A combined image of u-boot-spl-16k.bin and u-boot.bin is also created:
 | 
						|
u-boot-nand.bin
 | 
						|
 | 
						|
This image should be programmed at offset 0 in the NAND flash:
 | 
						|
 | 
						|
# tftp 100000 /tftpboot/sequoia/u-boot-nand.bin
 | 
						|
# nand erase 0 60000
 | 
						|
# nand write 100000 0 60000
 | 
						|
 | 
						|
 | 
						|
September 07 2006, Stefan Roese <sr@denx.de>
 |