This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM355 kernel not booting on EVM



I'm stuck at a point now where I can't seem to get the DM355 EVM to boot a Linux image and I've recently built.  I can get it to boot other images.

Here's what I see at that uboot console:

TFTP from server 192.168.0.195; our IP address is 192.168.0.20                  
Filename 'uImage'.                                                              
Load address: 0x80008000                                                        
Loading: #################################################################      
         #################################################################      
         #################################################################      
         #################################################################      
         #################################################                      
done                                                                            
Bytes transferred = 1579060 (181834 hex)                                                                            
DM355 EVM # bootm                                                               
## Booting image at 80008000 ...                                                
   Image Name:   Linux-2.6.10_mvl401                                            
   Image Type:   ARM Linux Kernel Image (uncompressed)                          
   Data Size:    1578996 Bytes =  1.5 MB                                        
   Load Address: 80008000                                                       
   Entry Point:  80008000                                                       
   Verifying Checksum ... OK                                                    
   XIP Kernel Image ... OK                                                      
                                                                                
Starting kernel ...        

After this, all that I see is DS22 (led) blinking.  Obviously something is wrong.

I'm now back to building the clean kernel from the LSP using the following commands:

make ARCH=arm CROSS_COMPILE=arm_v5t_le- davinci_dm355_evm_defconfig
make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage

Any ideas?  I'm running a stock CentOS5 OS on VMWare.

JW

 

  • If you are booting other Linux Kernels images using CentOS5 (assuming you are using tftp), then we can rule out CentOS5 as the issue.  This means that there must be something different from the DM355 images that successfully load and those that fail.  To help narror down the problem, can you provide more specifics about your system setup; for example, are you using our DM355 EVM or custom EVM, are you using our latest DVSDK (1.30.00.41), where are you getting the kernel images that boot successfully?

    I have tries this on my DM355 EVM using 1.30.00.41 with both the pre-built kernel image found under PSP directory in DVSDK and one I built myself and they both appear to work for me.  If you are having issues with the one your build yourself, perhaps it is a tool-chain issue (what version of MV compiler are you using?)

  • One other suggestion one of my colleages had was to double check your bootarg settings; this is a very common source of booting issues.  If you would like to post your u-boot  variable setting, we can look over them to see if we spot any issues.

  • Yeah - that's what is so frustrating.  I've been using CentOS5 for some time and have built other DM355 kernels with it without any problems.

    I am using tftpboot in uboot to download the kernel.  I do sometimes see checksum errors during the download, but I think TFTP does retry the errored block to resolve these.  When I iminfo the downloaded image I do see a valid CRC check on it, so I'm assuming the data arrived and is stored intact.

    This is on the DM355 EVM.  I think I may have an early access version of the EVM, though.  I'm using the latest LSP available for the DM355 EVM.  I haven't updated the DVSDK since I've updated the LSP.  I'm still on the beta DVSDK.  However, I don't think the should have an effect on the kernel code, should it?

    I'm using the pro4.0.1 MV compiler and toolchain.

  • Here is the bootargs.  Thanks for the help!

    bootargs=console=ttyS0,115200n8 noinitrd rw ip=192.168.0.20 root=/dev/nfs nfsroot=192.168.0.195:/tftpboot/root,nolock mem=116M

  • Here is the complete list of uboot environment variables:

     

    DM355 EVM # pri                                                                
    bootdelay=3                                                                    
    baudrate=115200                                                                
    bootfile="uImage"                                                              
    bootcmd=nboot 0x80700000 0 0x400000; bootm                                     
    nfsboot=console=ttyS0,115200n8 noinitrd rw ip=$(ipaddr) root=/dev/nfs nfsroot=$(
    nfshost):$(rootpath),nolock mem=116M                                           
    nandboot=nboot 0x80700000 0 0x400000; bootm                                    
    lcd-bootargs=video=dm355fb:output=480p:format=prgb:osd0=640x480@0,0:osd1=640x480
    @0,0:vid1=640x480@0,0:vid0=640x480@0,0                                         
    loadaddr=80008000                                                              
    nand-bootargs=mem=116M console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=
    yaffs2 ip=$(ipaddr)                                                            
    rootpath=/tftpboot/root                                                        
    nfshost=192.168.0.195                                                          
    display=video=davincifb:vid0=off:vid1=off:osd0=800x480x16,1200K@0,0:osd1=off dav
    inci_enc_mngr.ch0_output=LCD davinci_enc_mngr.ch0_mode=800x480                 
    filesize=181838                                                                
    fileaddr=80008000                                                              
    ipaddr=192.168.0.20                                                            
    serverip=192.168.0.195                                                         
    bootargs=console=ttyS0,115200n8 noinitrd rw ip=192.168.0.20 root=/dev/nfs nfsroo
    t=192.168.0.195:/tftpboot/root,nolock mem=116M debug                           
    stdin=serial                                                                   
    stdout=serial                                                                  
    stderr=serial                                                                  
    videostd=ntsc

  • I'm using the following commands to boot:

    tftpboot

    bootm

  • Here is the version of GCC that I'm using:

    $ ./arm_v5t_le-gcc --version
    arm_v5t_le-gcc (GCC) 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)
    Copyright (C) 2004 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    I this is the one that is available in the MV demo packages.

     

  • our MV tool-chain appear to be the same exact version; did find anything wrong with your u-boot variables... 

    You can try re-installing just the "mvl_4_0_1_demo_lsp_setuplinux_01_20_00_014.bin" file once again and rebulding kernel. 

  • Would the load address be the problem?

    I set the loadaddr to 80008000, this gets read by the tftpboot command as the default address to load the downloaded image to.

    I have another board that I just tried.  It's load address was set to 80700000 and it actually boots the kernels I've been building.  I now have to go back and check the other board, change its load address default, and see if it boots.

  • This may indeed be the problem, kernel is normally written to 80700000