Dear all,

We are attempting to bring up a new MPC5121e board, somewhat based on the Silicon Turnkey's ADS5121 development board.  We are using a kernel and u-boot based on Freescale/STx's board support package.

We have successfully modified u-boot for the 64MB of DDR2 RAM, and we can use u-boot's (and the BDI's) memory test facility to check that the RAM is working.

Our problem is that as soon as control is passed from u-boot to Linux, the board immediately resets.  It appears that the kernel has been decompressed correctly, and the memory at 0x00000000 appears to be similar to the same memory on the ADS board at the same address.  i.e. We have some confidence that the kernel is being decompressed correctly.

With debug on, u-boot produces the following output on the console:

                                                                                                                                                                     
U-Boot 2009.01-svn27683 (May 07 2009 - 15:35:15) MPC512X                                                                                                                  
                                                                                                                                                                          
CPU:   MPC5121e rev. 2.0, Core e300c4 at 396 MHz, CSB at 198 MHz                                                                                                          
Board: ADS5121 rev. 0x0000 (CPLD rev. 0x00)                                                                                                                               
I2C:   85 kHz,                                                                                                                                                            
85 kHz,                                                                                                                                                                   
85 kHz,                                                                                                                                                                   
ready                                                                                                                                                                     
DRAM:  64 MB                                                                                                                                                              
Top of RAM usable for U-Boot at: 04000000                                                                                                                                 
Reserving 249k for U-Boot at: 03fc1000                                                                                                                                    
Reserving 520k for malloc() at: 03f3f000                                                                                                                                  
Reserving 60 Bytes for Board Info at: 03f3efc4                                                                                                                            
Reserving 64 Bytes for Global Data at: 03f3ef84                                                                                                                           
Stack Pointer at: 03f3ef68                                                                                                                                                
New Stack Pointer is: 03f3ef68                                                                                                                                            
Now running in RAM - U-Boot at: 03fc1000                                                                                                                                  
FLASH: flash detect cfi                                                                                                                                                   
fwc addr fc000000 cmd f0 f0 8bit x 8 bit                                                                                                                                  
fwc addr fc000000 cmd ff ff 8bit x 8 bit                                                                                                                                  
fwc addr fc000055 cmd 98 98 8bit x 8 bit                                                                                                                                  
is= cmd 51(Q) addr fc000010 is= 30 51                                                                                                                                     
fwc addr fc000555 cmd 98 98 8bit x 8 bit                                                                                                                                  
is= cmd 51(Q) addr fc000010 is= 0 51                                                                                                                                      
fwc addr fc000000 cmd f0 f0f0 16bit x 8 bit                                                                                                                               
fwc addr fc000000 cmd ff ffff 16bit x 8 bit                                                                                                                               
fwc addr fc0000aa cmd 98 9898 16bit x 8 bit                                                                                                                               
is= cmd 51(Q) addr fc000020 is= 2032 5151                                                                                                                                 
fwc addr fc000aaa cmd 98 9898 16bit x 8 bit                                                                                                                               
is= cmd 51(Q) addr fc000020 is= 2032 5151                                                                                                                                 
fwc addr fc000000 cmd f0 00f0 16bit x 16 bit                                                                                                                              
fwc addr fc000000 cmd ff 00ff 16bit x 16 bit                                                                                                                              
fwc addr fc0000aa cmd 98 0098 16bit x 16 bit                                                                                                                              
is= cmd 51(Q) addr fc000020 is= 2032 0051                                                                                                                                 
fwc addr fc000aaa cmd 98 0098 16bit x 16 bit                                                                                                                              
is= cmd 51(Q) addr fc000020 is= 2032 0051                                                                                                                                 
fwc addr fc000000 cmd f0 f0f0f0f0 32bit x 8 bit                                                                                                                           
fwc addr fc000000 cmd ff ffffffff 32bit x 8 bit                                                                                                                           
fwc addr fc000154 cmd 98 98989898 32bit x 8 bit                                                                                                                           
is= cmd 51(Q) addr fc000040 is= 00510051 51515151                                                                                                                         
fwc addr fc001554 cmd 98 98989898 32bit x 8 bit                                                                                                                           
is= cmd 51(Q) addr fc000040 is= 00510051 51515151                                                                                                                         
fwc addr fc000000 cmd f0 00f000f0 32bit x 16 bit                                                                                                                          
fwc addr fc000000 cmd ff 00ff00ff 32bit x 16 bit                                                                                                                          
fwc addr fc000154 cmd 98 00980098 32bit x 16 bit                                                                                                                          
is= cmd 51(Q) addr fc000040 is= 00510051 00510051                                                                                                                         
is= cmd 52(R) addr fc000044 is= 00520052 00520052                                                                                                                         
is= cmd 59(Y) addr fc000048 is= 00590059 00590059                                                                                                                         
device interface is 2                                                                                                                                                     
found port 4 chip 2 port 32 bits chip 16 bits                                                                                                                             
00 : 51 52 59 02 00 40 00 00 00 00 00 27 36 00 00 06  QRY..@.....'6...                                                                                                    
10 : 06 09 13 03 05 03 02 19 02 00 06 00 01 ff 00 00  ................                                                                                                    
20 : 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01  ................                                                                                                    
fwc addr fc000000 cmd f0 00f000f0 32bit x 16 bit                                                                                                                          
fwc addr fc001554 cmd aa 00aa00aa 32bit x 16 bit                                                                                                                          
fwc addr fc000aa8 cmd 55 00550055 32bit x 16 bit                                                                                                                          
fwc addr fc001554 cmd 90 00900090 32bit x 16 bit                                                                                                                          
fwc addr fc000000 cmd f0 00f000f0 32bit x 16 bit                                                                                                                          
fwc addr fc000154 cmd 98 00980098 32bit x 16 bit                                                                                                                          
manufacturer is 2                                                                                                                                                         
manufacturer id is 0x1                                                                                                                                                    
device id is 0x227e                                                                                                                                                       
device id2 is 0x0                                                                                                                                                         
cfi version is 0x3133                                                                                                                                                     
size_ratio 2 port 32 bits chip 16 bits                                                                                                                                    
found 1 erase regions                                                                                                                                                     
erase region 0: 0x020000ff                                                                                                                                                
erase_region_count = 256 erase_region_size = 131072                                                                                                                       
fwc addr fc000000 cmd f0 00f000f0 32bit x 16 bit                                                                                                                          
flash_protect ON: from 0xFFF00000 to 0xFFF36FFF                                                                                                                           
protect on 252                                                                                                                                                            
flash_protect ON: from 0xFFF40000 to 0xFFF7FFFF                                                                                                                           
protect on 253                                                                                                                                                            
flash_protect ON: from 0xFFF80000 to 0xFFF81FFF                                                                                                                           
protect on 254                                                                                                                                                            
64 MB                                                                                                                                                                     
In:    serial                                                                                                                                                             
Out:   serial                                                                                                                                                             
Err:   serial                                                                                                                                                             
i2c_write: failed to address chip                                                                                                                                         
i2c_read: failed to address chip                                                                                                                                          
DVI Encoder Read: 0x00                                                                                                                                                    
i2c_write: failed to address chip                                                                                                                                         
i2c_read: failed to address chip                                                                                                                                          
DVI Encoder Read: 0x00                                                                                                                                                    
U-Boot relocated to 03fc1000                                                                                                                                              
Net:   FEC ETHERNET                                                                                                                                                       
                                                                                                                                                                          
Type "run flash_nfs" to mount root filesystem over NFS                                                                                                                    
                                                                                                                                                                          
### main_loop entered: bootdelay=5                                                                                                                                        
                                                                                                                                                                          
### main_loop: bootcmd="run cramfsboot"                                                                                                                                   
Hit any key to stop autoboot:  0                                                                                                                                          
=>                                                                                                                                                                        
                                                                                                                                                                          
U-Boot 2009.01-svn27683 (May 07 2009 - 15:35:15) MPC512X                                                                                                                  
                                                                                                                                                                          
CPU:   MPC5121e rev. 2.0, Core e300c4 at 396 MHz, CSB at 198 MHz                                                                                                          
Board: ADS5121 rev. 0x0000 (CPLD rev. 0x00)                                                                                                                               
I2C:   85 kHz,                                                                                                                                                            
85 kHz,                                                                                                                                                                   
85 kHz,                                                                                                                                                                   
ready                                                                                                                                                                     
DRAM:  64 MB                                                                                                                                                              
Top of RAM usable for U-Boot at: 04000000                                                                                                                                 
Reserving 249k for U-Boot at: 03fc1000                                                                                                                                    
Reserving 520k for malloc() at: 03f3f000                                                                                                                                  
Reserving 60 Bytes for Board Info at: 03f3efc4                                                                                                                            
Reserving 64 Bytes for Global Data at: 03f3ef84                                                                                                                           
Stack Pointer at: 03f3ef68                                                                                                                                                
New Stack Pointer is: 03f3ef68                                                                                                                                            
Now running in RAM - U-Boot at: 03fc1000                                                                                                                                  
FLASH: flash detect cfi                                                                                                                                                   
fwc addr fc000000 cmd f0 f0 8bit x 8 bit                                                                                                                                  
fwc addr fc000000 cmd ff ff 8bit x 8 bit                                                                                                                                  
fwc addr fc000055 cmd 98 98 8bit x 8 bit                                                                                                                                  
is= cmd 51(Q) addr fc000010 is= 30 51                                                                                                                                     
fwc addr fc000555 cmd 98 98 8bit x 8 bit                                                                                                                                  
is= cmd 51(Q) addr fc000010 is= 0 51                                                                                                                                      
fwc addr fc000000 cmd f0 f0f0 16bit x 8 bit                                                                                                                               
fwc addr fc000000 cmd ff ffff 16bit x 8 bit                                                                                                                               
fwc addr fc0000aa cmd 98 9898 16bit x 8 bit                                                                                                                               
is= cmd 51(Q) addr fc000020 is= 2032 5151                                                                                                                                 
fwc addr fc000aaa cmd 98 9898 16bit x 8 bit                                                                                                                               
is= cmd 51(Q) addr fc000020 is= 2032 5151                                                                                                                                 
fwc addr fc000000 cmd f0 00f0 16bit x 16 bit                                                                                                                              
fwc addr fc000000 cmd ff 00ff 16bit x 16 bit                                                                                                                              
fwc addr fc0000aa cmd 98 0098 16bit x 16 bit                                                                                                                              
is= cmd 51(Q) addr fc000020 is= 2032 0051                                                                                                                                 
fwc addr fc000aaa cmd 98 0098 16bit x 16 bit                                                                                                                              
is= cmd 51(Q) addr fc000020 is= 2032 0051                                                                                                                                 
fwc addr fc000000 cmd f0 f0f0f0f0 32bit x 8 bit                                                                                                                           
fwc addr fc000000 cmd ff ffffffff 32bit x 8 bit                                                                                                                           
fwc addr fc000154 cmd 98 98989898 32bit x 8 bit                                                                                                                           
is= cmd 51(Q) addr fc000040 is= 00510051 51515151                                                                                                                         
fwc addr fc001554 cmd 98 98989898 32bit x 8 bit                                                                                                                           
is= cmd 51(Q) addr fc000040 is= 00510051 51515151                                                                                                                         
fwc addr fc000000 cmd f0 00f000f0 32bit x 16 bit                                                                                                                          
fwc addr fc000000 cmd ff 00ff00ff 32bit x 16 bit                                                                                                                          
fwc addr fc000154 cmd 98 00980098 32bit x 16 bit                                                                                                                          
is= cmd 51(Q) addr fc000040 is= 00510051 00510051                                                                                                                         
is= cmd 52(R) addr fc000044 is= 00520052 00520052                                                                                                                         
is= cmd 59(Y) addr fc000048 is= 00590059 00590059                                                                                                                         
device interface is 2                                                                                                                                                     
found port 4 chip 2 port 32 bits chip 16 bits                                                                                                                             
00 : 51 52 59 02 00 40 00 00 00 00 00 27 36 00 00 06  QRY..@.....'6...                                                                                                    
10 : 06 09 13 03 05 03 02 19 02 00 06 00 01 ff 00 00  ................                                                                                                    
20 : 02 00 00 00 00 00 00 00 00 00 00 00 00 f7 ff fd  ................                                                                                                    
fwc addr fc000000 cmd f0 00f000f0 32bit x 16 bit                                                                                                                          
fwc addr fc001554 cmd aa 00aa00aa 32bit x 16 bit                                                                                                                          
fwc addr fc000aa8 cmd 55 00550055 32bit x 16 bit                                                                                                                          
fwc addr fc001554 cmd 90 00900090 32bit x 16 bit                                                                                                                          
fwc addr fc000000 cmd f0 00f000f0 32bit x 16 bit                                                                                                                          
fwc addr fc000154 cmd 98 00980098 32bit x 16 bit                                                                                                                          
manufacturer is 2                                                                                                                                                         
manufacturer id is 0x1                                                                                                                                                    
device id is 0x227e                                                                                                                                                       
device id2 is 0x0                                                                                                                                                         
cfi version is 0x3133                                                                                                                                                     
size_ratio 2 port 32 bits chip 16 bits                                                                                                                                    
found 1 erase regions                                                                                                                                                     
erase region 0: 0x020000ff                                                                                                                                                
erase_region_count = 256 erase_region_size = 131072                                                                                                                       
fwc addr fc000000 cmd f0 00f000f0 32bit x 16 bit                                                                                                                          
flash_protect ON: from 0xFFF00000 to 0xFFF36FFF                                                                                                                           
protect on 252                                                                                                                                                            
flash_protect ON: from 0xFFF40000 to 0xFFF7FFFF                                                                                                                           
protect on 253                                                                                                                                                            
flash_protect ON: from 0xFFF80000 to 0xFFF81FFF                                                                                                                           
protect on 254                                                                                                                                                            
64 MB                                                                                                                                                                     
In:    serial                                                                                                                                                             
Out:   serial                                                                                                                                                             
Err:   serial                                                                                                                                                             
i2c_write: failed to address chip                                                                                                                                         
i2c_read: failed to address chip                                                                                                                                          
DVI Encoder Read: 0x00                                                                                                                                                    
i2c_write: failed to address chip                                                                                                                                         
i2c_read: failed to address chip                                                                                                                                          
DVI Encoder Read: 0x00                                                                                                                                                    
U-Boot relocated to 03fc1000                                                                                                                                              
Net:   FEC ETHERNET                                                                                                                                                       
                                                                                                                                                                          
Type "run flash_nfs" to mount root filesystem over NFS                                                                                                                    
                                                                                                                                                                          
### main_loop entered: bootdelay=5                                                                                                                                        
                                                                                                                                                                          
### main_loop: bootcmd="run cramfsboot"                                                                                                                                   
Hit any key to stop autoboot:  0                                                                                                                                          
=> boot                                                                                                                                                                   
## Current stack ends at 0x03f3e8f8                                                                                                                                       
*  kernel: cmdline image address = 0xffc40000                                                                                                                             
## Booting kernel from Legacy Image at ffc40000 ...                                                                                                                       
   Image Name:   Linux-2.6.24.6                                                                                                                                           
   Created:      2009-04-30   3:54:13 UTC                                                                                                                                 
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)                                                                                                             
   Data Size:    1782150 Bytes =  1.7 MB                                                                                                                                  
   Load Address: 00000000                                                                                                                                                 
   Entry Point:  00000000                                                                                                                                                 
   Verifying Checksum ... OK                                                                                                                                              
   kernel data at 0xffc40040, len = 0x001b3186 (1782150)                                                                                                                  
## Skipping init Ramdisk                                                                                                                                                  
## No init Ramdisk                                                                                                                                                        
   ramdisk start = 0x00000000, ramdisk end = 0x00000000                                                                                                                   
*  fdt: cmdline image address = 0xffec0000                                                                                                                                
## Checking for 'FDT'/'FDT Image' at ffec0000                                                                                                                             
*  fdt: raw FDT blob                                                                                                                                                      
## Flattened Device Tree blob at ffec0000                                                                                                                                 
   Booting using the fdt blob at 0xffec0000                                                                                                                               
   of_flat_tree at 0xffec0000 size 0x00000e06                                                                                                                             
   Uncompressing Kernel Image ... OK                                                                                                                                      
   kernel loaded at 0x00000000, end = 0x003ac244                                                                                                                          
## initrd_high = 0xffffffff, copy_to_ram = 1                                                                                                                              
   ramdisk load start = 0x00000000, ramdisk load end = 0x00000000                                                                                                         
## device tree at 0xFFEC0000 ... 0xFFEC0E05 (len=15878=0x3E06)                                                                                                            
   Loading Device Tree to 007fc000, end 007ffe05 ... OK                                                                                                                   
Updating property 'local-mac-address' =  00 00 00 00 00 00                                                                                                                
Updating property 'address' =  00 00 00 00 00 00                                                                                                                          
Updating property 'bus-frequency' =  03 ef 14 80                                                                                                                          
Updating property '/cpus/PowerPC,5121@0/timebase-frequency' =  02 f3 4f 60                                                                                                
Updating property '/cpus/PowerPC,5121@0/bus-frequency' =  0b cd 3d 80                                                                                                     
Updating property '/cpus/PowerPC,5121@0/clock-frequency' =  17 9a 7b 00                                                                                                   
Updating property 'bus-frequency' =  03 ef 14 80                                                                                                                          
## Transferring control to Linux (at address 00000000) ...                                                                                                                
   Booting using OF flat tree... (at address 007fc000)                                                                                                                    

At this point, the board immediately resets.  There is no hint of life from the kernel from the console, although setting a breakpoint on the BDI at 0x0000000 and tracing through appears as though some code (although we don't know what) is being executed.

Our u-boot environment is as follows:

=> printenv                                                                                                                                                               
bootdelay=5                                                                                                                                                               
baudrate=115200                                                                                                                                                           
loads_echo=1                                                                                                                                                              
preboot=echo;echo Type \"run flash_nfs\" to mount root filesystem over NFS;echo                                                                                           
rootpath=/opt/eldk/ppc_6xx                                                                                                                                                
hostname=gg200                                                                                                                                                            
bootfile=gg200/uImage                                                                                                                                                     
loadaddr=400000                                                                                                                                                           
u-boot_addr_r=200000                                                                                                                                                      
kernel_addr_r=600000                                                                                                                                                      
fdt_addr_r=880000                                                                                                                                                         
ramdisk_addr_r=900000                                                                                                                                                     
u-boot_addr=FFF00000                                                                                                                                                      
kernel_addr=FFC40000                                                                                                                                                      
fdt_addr=FFEC0000                                                                                                                                                         
ramdisk_addr=FC040000                                                                                                                                                     
ramdiskfile=ads5121/uRamdisk                                                                                                                                              
u-boot=ads5121/u-boot.bin                                                                                                                                                 
bootfile=ads5121/uImage                                                                                                                                                   
fdtfile=ads5121/ads5121.dtb                                                                                                                                               
rootpath=/opt/eldk/ppc_6xx                                                                                                                                                
netdev=eth0                                                                                                                                                               
consdev=ttyPSC0                                                                                                                                                           
nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath}                                                                                                  
ramargs=setenv bootargs root=/dev/ram rw                                                                                                                                  
addip=setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off panic=1                                                      
addtty=setenv bootargs ${bootargs} console=${consdev},${baudrate}                                                                                                         
flash_nfs=run nfsargs addip addtty;bootm ${kernel_addr} - ${fdt_addr}                                                                                                     
flash_self=run ramargs addip addtty;bootm ${kernel_addr} ${ramdisk_addr} ${fdt_addr}                                                                                      
net_nfs=tftp ${kernel_addr_r} ${bootfile};tftp ${fdt_addr_r} ${fdtfile};run nfsargs addip addtty;bootm ${kernel_addr_r} - ${fdt_addr_r}                                   
net_self=tftp ${kernel_addr_r} ${bootfile};tftp ${ramdisk_addr_r} ${ramdiskfile};tftp ${fdt_addr_r} ${fdtfile};run ramargs addip addtty;bootm ${kernel_addr_r} ${ramdisk_a}
load=tftp ${u-boot_addr_r} ${u-boot}                                                                                                                                      
update=protect off ${u-boot_addr} +${filesize};era ${u-boot_addr} +${filesize};cp.b ${u-boot_addr_r} ${u-boot_addr} ${filesize}                                           
upd=run load update                                                                                                                                                       
ethact=FEC ETHERNET                                                                                                                                                       
cramfsboot=set bootargs root=/dev/mtdblock1 mem=64M; run addtty;bootm ${kernel_addr} - ${fdt_addr}                                                                        
bootcmd=run cramfsboot                                                                                                                                                    
stdin=serial                                                                                                                                                              
stdout=serial                                                                                                                                                             
stderr=serial                                                                                                                                                             
                   
If anyone is able to provide some help as to where we should start looking for our problem (or how we can stop it from immediately rebooting, or trap the reboot on the BDI), we would be extremely grateful for the help.

Best regards
Damien.