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.

DM6446 EVM - boot issue



Hello,

I am facing a problem in getting the EVM boot properly. The board is connected to RHELv3 workstation (fresh install, no updates).

u-boot messages observed in minicom are:

U-Boot 1.2.0 (Apr 17 2009 - 18:48:51)                                                                                                                                        
I2C:   ready
DRAM:  256 MB
MY AMD Flash: 16 MB
In:    serial
Out:   serial
Err:   serial
ARM Clock :- 324MHz
DDR Clock :- 175MHz
MSP430 Firmware does not support AM/PM Feature
Hit any key to stop autoboot:  0
BOOTP broadcast 1
DHCP client bound to address 172.23.112.229
TFTP from server 172.23.112.5; our IP address is 172.23.112.229
Filename 'linux-install/pxelinux.0'.
Load address: 0x80700000
Loading: ###
done
Bytes transferred = 11304 (2c28 hex)
## Booting image at 80700000 ...
Bad Magic Number
DaVinci EVM #

It is clear that the boot image is corrupted or it is not present at the expected address.

printenv output is as follows:

DaVinci EVM # printenv
bootdelay=3
baudrate=115200
hostname=DaVinci-EVM
nfshost=172.23.112.88
rootpath=/users/iso/workdir/filesys
setboot=setenv bootargs $(bootargs) video=dm6446fb:output=$(videostd)
bootargs=video=davincifb:vid0=720x576x16,2500k:vid1=720x576x16,2500k:osd0=720x576x16,2025k davinci_enc_mngr.ccbootcmd=dhcp;bootm
stdin=serial
stdout=serial
stderr=serial
ethaddr=00:0e:99:02:51:16
videostd=ntsc
bootfile=linux-install/pxelinux.0
filesize=2c28
fileaddr=80700000
gatewayip=172.23.112.250
netmask=255.255.255.0
ipaddr=172.23.112.229
serverip=172.23.112.5
dnsip=157.95.25.1
                                                                                                             
Environment size: 761/131068 bytes
DaVinci EVM #

The switch S3 configuration is [1:10] = 1010111110 and J4 is set to Flash; for booting from flash S3[1,2] = 01 is the correct configuration right? I have no success with this option as well.

I installed all the tools as per GSG and exported NFS shared file system, now I am trying to test this as per GSG and facing this issue.

The firewall is stopped and when I pinged the host from u-boot prompt, the host is alive, also nfs service is running. No HDD is connected to the board.

How do I boot the board from flash using NFS?

How can I update the flash with the clean uImage? Please advise

Please let me know if you need any other details.

--

Best Regards

S Arun

  • The bootfile defined above looks odd to me (bootfile=linux-install/pxelinux.0), are you sure this file exists?

    I just gave some guidelines in a previous post which apply here as well; see http://e2e.ti.com/forums/p/6218/23625.aspx#23625

  • Hello Juan,

    Thanks for your reply.

    No, I am not sure whether the file (linux-install/prelinux.o) exists or not.
    with reference to your previous posts,
    1. Yes, I pinged the host from U-boot prompt, the host is alive
    2. I am not sure about the tftp-server, will check this. firewall is off. The specified location for uImage file is /tftpboot right?
    3. nfs mount directory in bootargs is matching with that of /etc/exports file.

    My intention is to boot via TFTP using NFS; I have some basic questions to be answered/clarified regarding this as I am new to this development enviroment.
    1. If we boot via TFTP using nfs, the target tries to get the linux image from /tftpboot folder right but In my system I couldn't find this folder in the host root directory.
    In bootargs, we give root=/dev/nfs; is it target's root or host pc root? there is no 'nfs' directory in /dev in host.

    Are we supposed to create these folders or usually they will be created by the system?

    2. I followed the procedure explained in A4.4 Booting via TFTP using NFS file system of GSG.pdf I entered a different bootfile ('uImage') name, but even after saveenv, I still see the old boot file.

    what should be S3 configuration in this case, is it 1011111110?

    printenv output is as follows:
                                                                                                                 
    U-Boot 1.2.0 (Apr 17 2009 - 18:48:51)
                                                                                                                 
    I2C:   ready
    DRAM:  256 MB
    MY AMD Flash: 16 MB
    In:    serial
    Out:   serial
    Err:   serial
    ARM Clock :- 324MHz
    DDR Clock :- 175MHz
    MSP430 Firmware does not support AM/PM Feature
    Hit any key to stop autoboot:  0
    BOOTP broadcast 1
    DHCP client bound to address 172.23.112.229
    TFTP from server 172.23.112.5; our IP address is 172.23.112.229
    Filename 'linux-install/pxelinux.0'.
    Load address: 0x80700000
    Loading: ###
    done
    Bytes transferred = 11304 (2c28 hex)
    ## Booting image at 80700000 ...
    Bad Magic Number
    DaVinci EVM # printenv
    bootdelay=3
    baudrate=115200
    hostname=DaVinci-EVM
    nfshost=172.23.112.88
    rootpath=/users/iso/workdir/filesys
    setboot=setenv bootargs $(bootargs) video=dm6446fb:output=$(videostd)
    bootcmd=dhcp;bootm
    bootargs=video=davincifb:vid0=720x576x16,2500k:vid1=720x576x16,2500k:osd0=720x576x16,2025k davinci_enc_mngr.cMstdin=serial
    stdout=serial
    stderr=serial
    ethaddr=00:0e:99:02:51:16
    videostd=ntsc
    bootfile=linux-install/pxelinux.0
    filesize=2c28
    fileaddr=80700000
    gatewayip=172.23.112.250
    netmask=255.255.255.0
    ipaddr=172.23.112.229
    serverip=172.23.112.5
    dnsip=157.95.25.1
                                                                                                                 
    Environment size: 734/131068 bytes
    DaVinci EVM #

    3. I haven't yet built setup the build/debugging environment and obviously not built a new kernel so far as per GSG, does it anyway related to this issue?
    4. What are the uImage files present in '..../workdir/filesys/boot/' directory?

    Please advise on how do I get the board boot via TFTP using NFS.

    --

    Best Regards

    S Arun

     

  • S Arun said:


    2. I am not sure about the tftp-server, will check this. firewall is off. The specified location for uImage file is /tftpboot right?


    My intention is to boot via TFTP using NFS; I have some basic questions to be answered/clarified regarding this as I am new to this development enviroment.
    1. If we boot via TFTP using nfs, the target tries to get the linux image from /tftpboot folder right but In my system I couldn't find this folder in the host root directory.
    In bootargs, we give root=/dev/nfs; is it target's root or host pc root? there is no 'nfs' directory in /dev in host.

    Are we supposed to create these folders or usually they will be created by the system?

    2. I followed the procedure explained in A4.4 Booting via TFTP using NFS file system of GSG.pdf I entered a different bootfile ('uImage') name, but even after saveenv, I still see the old boot file.

    what should be S3 configuration in this case, is it 1011111110?

    printenv output is as follows:
                                                                                                                 
    U-Boot 1.2.0 (Apr 17 2009 - 18:48:51)
                                                                                                                 
    I2C:   ready
    DRAM:  256 MB
    MY AMD Flash: 16 MB
    In:    serial
    Out:   serial
    Err:   serial
    ARM Clock :- 324MHz
    DDR Clock :- 175MHz
    MSP430 Firmware does not support AM/PM Feature
    Hit any key to stop autoboot:  0
    BOOTP broadcast 1
    DHCP client bound to address 172.23.112.229
    TFTP from server 172.23.112.5; our IP address is 172.23.112.229
    Filename 'linux-install/pxelinux.0'.
    Load address: 0x80700000
    Loading: ###
    done
    Bytes transferred = 11304 (2c28 hex)
    ## Booting image at 80700000 ...
    Bad Magic Number
    DaVinci EVM # printenv
    bootdelay=3
    baudrate=115200
    hostname=DaVinci-EVM
    nfshost=172.23.112.88
    rootpath=/users/iso/workdir/filesys
    setboot=setenv bootargs $(bootargs) video=dm6446fb:output=$(videostd)
    bootcmd=dhcp;bootm
    bootargs=video=davincifb:vid0=720x576x16,2500k:vid1=720x576x16,2500k:osd0=720x576x16,2025k davinci_enc_mngr.cMstdin=serial
    stdout=serial
    stderr=serial
    ethaddr=00:0e:99:02:51:16
    videostd=ntsc
    bootfile=linux-install/pxelinux.0
    filesize=2c28
    fileaddr=80700000
    gatewayip=172.23.112.250
    netmask=255.255.255.0
    ipaddr=172.23.112.229
    serverip=172.23.112.5
    dnsip=157.95.25.1
                                                                                                                 
    Environment size: 734/131068 bytes
    DaVinci EVM #

    3. I haven't yet built setup the build/debugging environment and obviously not built a new kernel so far as per GSG, does it anyway related to this issue?
    4. What are the uImage files present in '..../workdir/filesys/boot/' directory?

    Please advise on how do I get the board boot via TFTP using NFS. 

    First, allow me to clarify some of the terminology.  Typically, a Linux system consists of a bootloader (u-boot), a Linux kernel (uImage) and a filesystem.  On our Dm6446 EVM, u-boot normally resides in either NAND or NOR Flash, but uImage and the file system have a few more options where they can reside.  For example, uImage can reside in NAND and NOR flash as well or it can be loaded over ethernet using TFTP protocol; similarly, filesystem can reside in FLASH (if it is small enough), in hard-drive (default in DM6446 EVM), is SD Card, USB stick, or loaded over ethernet using NFS protocol.  The main point here is that TFTP applies to kernel and NFS applies to file system; hence rather than saying TFTP over NFS, it is TFTP over ethernet and NFS over ethernet.  Just a minor clarification that will hopefully help others reading this post in the future.

    That said, lets jump into your question above

    1) When loading uImage over TFTP, the specified location is normally (does not have to be) /tftpboot directory on your host.  If this directory does not exists, try creating it (it has worked for me in the past).  Also, if you could list what Linux distribution you are running on your host, that would be great.

    2) the 'root=/dev/nfs' statement in your bootargs refers to the target and is basically specifying the location of the file system (loaded via NFS protocol).  No need to create any folders for this step

    3) if your u-boot bootfile variable is not being set correctly no matter what name you give it, it may be a problem with u-boot.  You can try reflashing u-boot to see if that fixes this issue.

    4) S3 settings look good; the settings you posted are the default when booting from NOR flash.

    5) u-boot environment variables look fine except for the bootfile; I wonder if this is the result of not finding a /tftpboot directory on host.  Its a long shot, but try creating /tftpboot directory on host, although I doubt this should affect saving a simple u-boot variable.

    6) No need to build kernel, pre-built binaries (which I would recommend at this point) are normally included under PSP_x_xx_xx_xxx/bin directory under DVSDK.

    7) I have not really noticed if I have a .../workdir/filesys/boot/ directory... but I have not referred to this directory for anything; therefore, I would just ignore it for now.

     

     

     

     

     

  • Hello Juan,

    Thank you for the detailed clarifications on terminology.

    I have created /tftpboot directory and copied the file 'uImage-dm6446' present in dvsdk_1_30_01_41/PSP_01_20_00_014/bin/dm6446 directory. Then I modified the 'bootfile' variable to 'uImage-dm6446'.

    After setenv when I issued 'printenv' command, I could see that the bootfile is modified to 'uImage-dm6446', but with 'boot' cmd the system reverted to previous 'bootfile'.

    DaVinci EVM # boot
    BOOTP broadcast 1
    DHCP client bound to address 172.23.112.229
    TFTP from server 172.23.112.5; our IP address is 172.23.112.229
    Filename 'linux-install/pxelinux.0'.
    Load address: 0x80700000
    Loading: ###
    done
    Bytes transferred = 11304 (2c28 hex)
    ## Booting image at 80700000 ...
    Bad Magic Number

    I tried deleting the 'fileaddr' variable and modifying the 'bootfile' variable to 'uImage-dm6446', but everytime i give 'boot' it takes the old values and stops at 'Bad Magic Number' (though the setenv is successful)

    DaVinci EVM # setenv bootfile 'uImage-dm6446'
    DaVinci EVM # setenv fileaddr
    DaVinci EVM # saveenv
    Saving Environment to Flash...
    Un-Protected 2 sectors
    Erasing Flash...
    Erasing sector  2 ... done.
    Erasing sector  3 ... done.
     Erase Operation Completed.
    Erased 2 sectors
    Writing to Flash...\done
    Protected 2 sectors
    DaVinci EVM #

    The S3 settings are left untouched.

    Is reflashing U-boot the only option or I am missing something here? Please advise.

    RHELv3 is running on the host. It is a fresh install with no updates.

    I really appreciate your help in this regard.

     

    regards

    Arun

  • try the following for booting Linux Kernel via TFTP and Root Mounting File System from NFS

    a) Configure ethaddr: (Use Ethernet MAC as printed on target)

    EVM # setenv ethaddr 00:0E:99:02:51:F4

    b) Configure serverip: (Use IP address of host)

    EVM # setenv serverip 156.117.95.33

    c) Configure ipaddr:

    EVM # setenv ipaddr dhcp

    d) Configure bootfile:

    EVM # setenv bootfile uImage

    e) Configure bootcmd:

    EVM # setenv bootcmd ‘dhcp;bootm’

    Note: The above command is booting the Linux kernel via TFTP.

    f) Configure bootargs:

    EVM # setenv bootargs ‘console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=156.117.95.33:/home/user/workdir/filesys,nolock mem=120M’

    Note: Above nfsroot option uses host workstation IP address.  This is for root mounting the host NFS.  Above command should be entered as a single line.

    g) OPTIONAL: Print uBoot Parameters for Verification

    EVM # printenv

    h) Save uBoot Parameters

    EVM # saveenv

    This is an oversimplified version fo bootargs, but at this point we are just trying to boot; we will worry about the video options after we achieve this.  Also, I would earse any other u-boot variable not defined above (done via setenv command)

  • Hello Juan,

    i tried the steps (a) to (h) as suggested, but when I gave 'boot' command it was still booting from old image.
    Environment size: 545/131068 bytes
    DaVinci EVM #
    DaVinci EVM # boot
    BOOTP broadcast 1
    DHCP client bound to address 172.23.112.229
    TFTP from server 172.23.112.5; our IP address is 172.23.112.229
    Filename 'linux-install/pxelinux.0'.
    Load address: 0x80700000
    Loading: ###
    done
    Bytes transferred = 11304 (2c28 hex)
    ## Booting image at 80700000 ...
    Bad Magic Number
    DaVinci EVM #

    u-boot is not using the modified arguments instead it continues to use previous arguments.

    Next I modified the 'bootcmd' as follows:
    DaVinci EVM # setenv bootcmd 'setenv setboot bootargs \$(bootargs);run setboot;tftpboot 0x80700000 uImage-dm6446;bootm'
    Then I gave same ip address to tftpserver and nfshost, turned off the ip in boot args (ip=off)
    After saveenv, the command 'tftp 80700000 uImage-dm6446' transferred the image to the target.
    Now 'boot' command started booting the kernel, but still I didn't get the linux prompt as it stops during NFS mount section.

    The complete boot messages are given below:

    U-Boot 1.2.0 (Apr 17 2009 - 18:48:51)
                                                                                                                                                         
    I2C:   ready
    DRAM:  256 MB
    MY AMD Flash: 16 MB
    In:    serial
    Out:   serial
    Err:   serial
    ARM Clock :- 324MHz
    DDR Clock :- 175MHz
    MSP430 Firmware does not support AM/PM Feature
    Hit any key to stop autoboot:  0
    DaVinci EVM # setenv serverip 172.23.112.88
    DaVinci EVM # setenv bootfile 'uImage-dm6446'
    DaVinci EVM # setenv rootpath /users/iso/workdir/filesys
    DaVinci EVM # setenv nfshost 172.23.112.88
    DaVinci EVM # setenv bootargs 'console=ttyS0,115200n8, noinitrd rw ip=off root=/dev/nfs nfsroot=$(nfshost):$(rootpath),nolock mem=120M'
    DaVinci EVM # setenv bootcmd 'setenv setboot bootargs \$(bootargs);run setboot;tftpboot 0x80700000 uImage-dm6446;bootm'
    DaVinci EVM # echo $(ipaddr)
    dhcp
    DaVinci EVM # setenv ipaddr 172.23.112.229
    DaVinci EVM # saveenv
    Saving Environment to Flash...
    Un-Protected 2 sectors
    Erasing Flash...
    Erasing sector  2 ... done.
    Erasing sector  3 ... done.
     Erase Operation Completed.
    Erased 2 sectors
    Writing to Flash...\done
    Protected 2 sectors
    DaVinci EVM # tftp 0x80700000 uImage-dm6446
    TFTP from server 172.23.112.88; our IP address is 172.23.112.229
    Filename 'uImage-dm6446'.
    Load address: 0x80700000
    Loading: #################################################################
             #################################################################
             #################################################################
             #################################################################
             #########################################
    done
    Bytes transferred = 1538556 (1779fc hex)
    DaVinci EVM # boot
    Unknown command 'bootargs' - try 'help'
    TFTP from server 172.23.112.88; our IP address is 172.23.112.229
    Filename 'uImage-dm6446'.
    Load address: 0x80700000
    Loading: #################################################################
             #################################################################
             #################################################################
             #################################################################
             #########################################
    done
    Bytes transferred = 1538556 (1779fc hex)
    ## Booting image at 80700000 ...
       Image Name:   Linux-2.6.10_mvl401
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    1538492 Bytes =  1.5 MB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
    OK
                                                                                                                                                         
    Starting kernel ...
                                                                                                                                                         
    Uncompressing Linu...................................................................................................... done, booting th Linux version 2.6.10_mvl401 (a0868396@gtcmbuild3.gt.design.ti.com) (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #1 Sun Feb 3 00:05:39 EST 2008CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
    Machine: DaVinci EVM
    Memory policy: ECC disabled, Data cache writeback
    DM6443
    Built 1 zonelists
    Kernel command line: console=ttyS0,115200n8, noinitrd rw ip=off root=/dev/nfs nfsroot=$(nfshost):$(rootpath),nolock mem=120M
    PID hash table entries: 512 (order: 9, 8192 bytes)
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    Memory: 120MB = 120MB total
    Memory: 118272KB available (2656K code, 529K data, 180K init)
    Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
    CPU: Testing write buffer coherency: ok
    spawn_desched_task(00000000)
    desched cpu_callback 3/00000000
    ksoftirqd started up.
    desched cpu_callback 2/00000000
    desched thread 0 started up.
    NET: Registered protocol family 16
    DaVinci: 71 gpio irqs
    Registering platform device 'serial8250.0'. Parent at platform
    Registering platform device 'musb_hdrc'. Parent at platform
    Registering platform device 'mmc.0'. Parent at platform
    DaVinci I2C DEBUG: 00:03:32 Feb  3 2008
    Registering platform device 'i2c'. Parent at platform
    ch0 default output "COMPOSITE", mode "NTSC"
    MUX: initialized LOEEN
    MUX: initialized LFLDEN
    VPBE Encoder Initialized
    LogicPD encoder initialized
    SCSI subsystem initialized
    usbcore: registered new driver usbfs
    usbcore: registered new driver hub
    musb_hdrc: version 2.2a/db-0.4.8 [cppi-dma] [host] [debug=0]
    musb_hdrc: ConfigData=0x06 (UTMI-8, dyn FIFOs, SoftConn)
    musb_hdrc: MHDRC RTL version 1.300
    musb_hdrc: USB Host mode controller at c8002000 using DMA, IRQ 12
    musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    MUX: initialized MCBSP0
    JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
    yaffs Feb  3 2008 00:03:07 Installing.
    Registering platform device 'davincifb.0'. Parent at platform
    davincifb davincifb.0: dm_osd0_fb: 720x480x16@0,0 with framebuffer size 675KB
    davincifb davincifb.0: dm_vid0_fb: 0x0x16@0,0 with framebuffer size 1020KB
    davincifb davincifb.0: dm_osd1_fb: 720x480x4@0,0 with framebuffer size 675KB
    davincifb davincifb.0: dm_vid1_fb: 0x0x16@0,0 with framebuffer size 1020KB
    watchdog: TI DaVinci Watchdog Timer: timer margin 64 sec
    Registering platform device 'davinci_resizer.2'. Parent at platform
    Registering platform device 'davinci_previewer.2'. Parent at platform
    Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
    Registering platform device 'serial8250'. Parent at platform
    ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
    io scheduler noop registered
    io scheduler anticipatory registered
    RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
    loop: loaded (max 8 devices)
    Registering platform device 'ti_davinci_emac'. Parent at platform
    TI DaVinci EMAC: MAC address is 00:0e:99:02:51:16
    TI DaVinci EMAC Linux version updated 5.0
    TI DaVinci EMAC: Installed 1 instances.
    netconsole: not configured, aborting
    i2c /dev entries driver
    Linux video capture interface: v1.00
    Registering platform device 'vpfe.1'. Parent at platform
    DaVinci I2C WARNING: i2c: NACK detected
    DaVinci I2C WARNING: i2c: NACK detected
    DaVinci I2C WARNING: i2c: NACK detected
    DaVinci I2C WARNING: i2c: NACK detected
    DaVinci I2C WARNING: i2c: NACK detected
    vpfe vpfe.1: DaVinci v4l2 capture driver V1.0 loaded
    Registering platform device 'DavinciDisplay.1'. Parent at platform
    Trying to register davinci display video device.
    layer=c71c0c00,layer->video_dev=c71c0d64
    Trying to register davinci display video device.
    layer=c71c0a00,layer->video_dev=c71c0b64
    davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
                                                                                                                                                         
     Davici AEW Driver cannot be loaded
     VIDEO PORT is not enabledData Flow path from CCDC is disabled
                                                                                                                                                         
     Davinci AF driver cannot be loaded
     VIDEO PORT is not enabled
     CCDC needs to be configured<6>Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
    ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
    MUX: initialized HDIREN
    MUX: initialized ATAEN
    Palm Chip BK3710 IDE Register Fail
    elevator: using anticipatory as default io scheduler
    Initializing USB Mass Storage driver...
    usbcore: registered new driver usb-storage
    USB Mass Storage support registered.
    usbcore: registered new driver usbhid
    drivers/usb/input/hid-core.c: v2.0:USB HID core driver
    mice: PS/2 mouse device common for all mice
    mmc mmc.0: Supporting 4-bit mode
    mmc mmc.0: Using DMA mode
    Registering platform device 'davinci-audio.0'. Parent at platform
    NET: Registered protocol family 2
    IP: routing cache hash table of 512 buckets, 4Kbytes
    TCP: Hash tables configured (established 8192 bind 16384)
    NET: Registered protocol family 1
    NET: Registered protocol family 10
    IPv6 over IPv4 tunneling driver
    NET: Registered protocol family 17
    Root-NFS: No NFS server available, giving up.
    VFS: Unable to mount root fs via NFS, trying floppy.
    VFS: Cannot open root device "nfs" or unknown-block(2,0)
    Please append a correct "root=" boot option
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

    ------------------------------------------------------------------

    As per GSG, I ensured that nfsd is running, directory is exported properly.

    Questions:

    1. is it issue because of nfs not getting mount properly? Please advise

     

    --

    Best Regards

    S Arun

  • I am glad you made some progress, although I am still puzzled as to why your bootfile varaible kept getting overwritten.  The fact that it works with 'tftpboot' command but not with 'dhcp' tells me that it is seeing the tftp directory on the host ok, but there may be a problem with dhcp server (on router)...you do not have dhcp server enabled on your host by any chance do you?

    Ok, so now to your nfs mount issue.  By inspecting your latest log, it appears that bootargs could not resolve all the intermediate variables that were used to define it

       Kernel command line: console=ttyS0,115200n8, noinitrd rw ip=off root=/dev/nfs nfsroot=$(nfshost):$(rootpath),nolock mem=120M

    Did you erase the definitions of 'nfshost' and 'rootpath' u-boot variable bootargs depends on by any chance?  When I used to type the bootargs myself, I seldom used intermediate variables and simply types the entire bootargs definition myself (copied and pasted as much as I could); now I actually do everything via a teraterm script (keeps me from making typing mistakes).  FYI, if you are interested, the following wiki has some teraterm scripts that have been posted by some of our developers. 

    http://tiexpressdsp.com/index.php?title=Teraterm_Scripts

     

  • Have you made sure that you did a setenv bootfile uImage and then a saveenv?

    Also in your bootargs, why is the ip=off? Can you use ip=dhcp or ip=(any static IP address based on your network).

    Also as Juan suggested, i also give the complete bootargs most of the times.

    Thanks,

    Prathap.

  • Prathap Srinivas said:

    Also in your bootargs, why is the ip=off? Can you use ip=dhcp or ip=(any static IP address based on your network).

    Prathap, I completely overlooked the ip=off; this is another reason that would prevent NFS mounting from working correctly.  Great job!

  • Hello Prathap/Juan,

    I tried with ip=dhcp, still the same result.

    ...

    Sending DHCP requests ., OK
    IP-Config: Got DHCP answer from 172.23.112.5, my address is 172.23.112.229
    IP-Config: Complete:
          device=eth0, addr=172.23.112.229, mask=255.255.255.0, gw=172.23.112.250,
         host=172.23.112.229, domain=india.cypress.com, nis-domain=india,
         bootserver=172.23.112.5, rootserver=172.23.112.88, rootpath=
    Looking up port of RPC 100003/2 on 172.23.112.88
    Looking up port of RPC 100005/1 on 172.23.112.88
    Root-NFS: Server returned error -13 while mounting /users/iso/workdir/filesys
    VFS: Unable to mount root fs via NFS, trying floppy.
    VFS: Cannot open root device "nfs" or unknown-block(2,0)
    Please append a correct "root=" boot option
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
     <7>eth0: no IPv6 routers present


    also with ip=172.23.112.88 (host pc ip), again it stops at mounting NFS.

    but when i give 'dhcp' command at u-boot, i get the following result (please note that the uImage filename shown here is different), i think this also suggest that there is some problem with dhcp as I expect to see the image what I have configured (uImage-dm6446):

    DaVinci EVM # dhcp
    BOOTP broadcast 1
    DHCP client bound to address 172.23.112.229
    TFTP from server 172.23.112.5; our IP address is 172.23.112.229
    Filename 'linux-install/pxelinux.0'.
    Load address: 0x80700000
    Loading: ###
    done
    Bytes transferred = 11304 (2c28 hex)
    DaVinci EVM #

    I found that the dhcp server is not running (dhcp.conf file is missing in /etc), perhaps the problem may get solved after installing/configuring the dhcp server.

    Any other options you guys think will help solving the problem, please let me know.

    --

    Best Regards

    S Arun

  • Arun,

    The commands that play a big role in u-boot (not that others are not important) are bootcmd and bootargs.  One thing to try would be to keep using tftpboot (as opposed to dhcp) duing bootcmd since this appears to be working for you; however, use ip=dhcp in bootargs (as opposed to ip=off), by the time bootargs gets processed, the kernel has already transferred via tftpboot and ip=dhcp will ensure network is properly enabled for NFS...

    Also, I would be curious if your boot log still shows that certain portions of bootargs have not been resolved ($ variables still present)

             Kernel command line: console=ttyS0,115200n8, noinitrd rw ip=off root=/dev/nfs nfsroot=$(nfshost):$(rootpath),nolock mem=120M

    If so, this would be another area to look at.

  • Hello Juan,

    I was occupied with some other task and so couldn't check this issue.

    There were some restrictions in installing the dhcp server and so I decided to use static ip.

    I followed the instructions given in the appnote Static IP between Linux host and EVM  "spraaq0.pdf" and could boot the kernel image successfully.

    Finally I got the linux prompt on the board, I could login as 'root' with no paswd.

     

    Thank you  for your help in resolving this issue

    --

    Best Regards

    S Arun

  • Arun,

    Thank you for the update.  FYI, I was hesitant to point you to the static IP app note since I noticed boot was a bit slower using this method; but id does help resolve issues with dhcp servers, therefore by all means if this approach works for you, it is a great solution.  I use it myself.

  • Hi Juan,

    I have recently  installed dvsdk 2 / MV5 for DM6446 EVM. The reason being, I would like to use the IUNIVERSAL as well as move to DM6467 soon. I  have rebult almost everything without any problems. But I am now having  problem booting the evm.

    I  have tried to upgrade u-boot on DM6446 DVEVM NOR Flash. I invoked these commands as directed form http://wiki.davincidsp.com/index.php/DVEVM_and_DVSDK_frequently_asked_questions#How_do_I_upgrade_u-boot_on_DM6446_DVEVM_NOR_Flash_if_I_already_have_u-boot_installed.3F

    tftp 0x80800000 u-boot.bin

    erase 0x02000000 +<size-in-hex> followed by

    cp.b 0x80800000 0x2000000 <size-in-hex>

    I tried to boot the evm after that nothing is happening at all. Everything went wrong so I decided to flash u boot as recommended in above doc via CCS using  flashwriter_nor.out and u-boot-567-nor.bin.

    CCS return the following message:

    Enter the File Name
    u-boot-567-nor.bin
    Burn Offset
    1
    Do a global Erase
    n
    FlashWriter Version 1.9
    Starting Download to NOR Flash
    Image is 131072 bytes long
    Reading Image from: 81000000
    Writing Image to:  02000001
    No Flash devices have been found
    NOR Flash Verify Failed @ 0x0 

     Please help I 've run out of  options.

    Jonners

  • Which version of the DVSDK are you using (dvsdk_2_00_00_22 is the latest)?  Where you you getting your new u-boot binary from?  The command outlined in the wiki should have worked, so I am curious as to the version and origin of the software you are using so perhaps I may try it our when I get the chance.

    If your u-boot write process somehow failed and your NOR flash u-boot image is now corrupt, the EVM is likely unsucessfully attempting to boot from NOR flash and defaulting to UART boot mode after failing to do so (do your see BOOTME messaged on uart serial terminal? 

    The CCS case seems more interesting, that fact that it could not find NOR flash device tells me that either your NOR Flash went bad or you have not initialized properly (normally done via GEL file when connecting via CCS); what GEL file are you using along with CCS, if any?

    FYI, the method I have been using to flash u-boot lately is described in http://tiexpressdsp.com/index.php/Serial_Boot_and_Flash_Loading_Utility, although the two methods you described above should also work.

  •  

    Hi Juan,

    Thanks for your reply. I am using the latest

    dvsdk_2_00_00_22/MV5. I firstly, removed everything that came with the DM6446 - DVSDK 1.1/ MV4, then successfully installed the new version and the relevant compatible software found on this site

     http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/S1SDKLNX/DVSDK_2_00/index_FDS.html   

    After rebuilding everything including cmem.dsplink and linux kernel, I exported the shared file system (../workdir/filesys/opt/dvsdk/dm6446) for target access and copied my new uImage to /tftpboot directory. Then I tried to boot the kernel. Previously I used to boot from flash. So I needed to burn my new image to flash. This is where the problem started.

    Answering your question, I have downloaded the new u-boot.bin from this site http://c6000.spectrumdigital.com/davincievm/revf/ as well as the flashing instructions and the ARM GEL file. I have repeated the flashing process on CCS by loading the gel from this site I still get the same message i.e ...NOR flash verify failed. But I see a BOOTME messaged on uart serial terminal (This is on  minicom). The BOOTME just hang there. How do I solve this?

    Jonners

     

     

     

     

     

  • Hi S Arun
     We have made our own custom board DM6446 was using the kernel and u-boot code from the git. I am able to run the u-boot and kernel fine and get kernel panic msgs .I have established the nfs server but got error as shown in my log can you plz tell me how i can resolve this issue.


    Starting kernel ...

     

    Uncompressing Linux.............................................................

    ................................... done, booting the kernel.

    Linux version 2.6.31-rc5-davinci1 (root@localhost.localdomain) (gcc version 4.2.

    2) #1 PREEMPT Wed Aug 26 13:41:53 PKT 2009

    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177

    CPU: VIVT data cache, VIVT instruction cache

    Machine: DaVinci DM644x EVM

    Memory policy: ECC disabled, Data cache writeback

    DaVinci dm6446a variant 0x1

    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024

    Kernel command line: console=ttyS0,115200n8 noinitrd rw root=/dev/nfs nfsroot=19

    2.16.1.102:/home/admin,nolock

    PID hash table entries: 1024 (order: 10, 4096 bytes)

    Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)

    Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)

    Memory: 256MB = 256MB total

    Memory: 256540KB available (2708K code, 295K data, 124K init, 0K highmem)

    SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

    NR_IRQS:229

    Console: colour dummy device 80x30

    Calibrating delay loop... 147.86 BogoMIPS (lpj=739328)

    Mount-cache hash table entries: 512

    CPU: Testing write buffer coherency: ok

    DaVinci: 71 gpio irqs

    NET: Registered protocol family 16

    WARNING: both IDE and Flash are enabled, but they share AEMIF pins.

            Disable IDE for NAND/NOR support.

    MUX: Setting register HPIEN_DISABLE

               PINMUX0 (0x00000000) = 0x80000c1f -> 0x80000c1f

    MUX: initialized ATAEN

    MUX: Setting register ATAEN

               PINMUX0 (0x00000000) = 0x80000c1f -> 0x80020c1f

    MUX: initialized HDIREN

    MUX: Setting register HDIREN

               PINMUX0 (0x00000000) = 0x80020c1f -> 0x80030c1f

    MUX: initialized MCBSP

    MUX: Setting register MCBSP

               PINMUX1 (0x00000004) = 0x00000081 -> 0x00000481

    bio: create slab <bio-0> at 0

    pcf857x: probe of 1-0038 failed with error -121

    pcf857x: probe of 1-0039 failed with error -121

    pcf857x: probe of 1-003a failed with error -121

    NET: Registered protocol family 2

    IP route cache hash table entries: 2048 (order: 1, 8192 bytes)

    TCP established hash table entries: 8192 (order: 4, 65536 bytes)

    TCP bind hash table entries: 8192 (order: 3, 32768 bytes)

    TCP: Hash tables configured (established 8192 bind 8192)

    TCP reno registered

    NET: Registered protocol family 1

    msgmni has been set to 501

    io scheduler noop registered

    io scheduler anticipatory registered (default)

    Setting Up Clocks for DM420 OSD

    Console: switching to colour frame buffer device 90x30

    fb0: dm_osd0_fb frame buffer device

    fb1: dm_vid0_fb frame buffer device

    fb2: dm_osd1_fb frame buffer device

    fb3: dm_vid1_fb frame buffer device

    Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled

    Platform driver 'serial8250' needs updating - please use dev_pm_ops

    serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A

    console [ttyS0] enabled

    serial8250 serial8250.0: unable to register port at index 1 (IO0 MEM1c20400 IRQ4

    1): -22

    serial8250 serial8250.0: unable to register port at index 2 (IO0 MEM1c20800 IRQ4

    2): -22

    brd: module loaded

    at24 1-0050: 32768 byte 24c256 EEPROM (writable)

    davinci_emac_probe: using random MAC addr: b6:cc:f4:0e:8b:40

    emac-mii: probed

    dm9000 Ethernet Driver, V1.31

    Platform driver 'dm9000' needs updating - please use dev_pm_ops

    console [netcon0] enabled

    netconsole: network logging started

    i2c /dev entries driver

    TCP cubic registered

    NET: Registered protocol family 17

    RPC: Registered udp transport module.

    RPC: Registered tcp transport module.

    Clocks: disable unused uart1

    Clocks: disable unused uart2

    Clocks: disable unused ide

    Clocks: disable unused asp0

    Clocks: disable unused mmcsd

    Clocks: disable unused spi

    Clocks: disable unused usb

    Clocks: disable unused vlynq

    Clocks: disable unused pwm0

    Clocks: disable unused pwm1

    Clocks: disable unused pwm2

    Clocks: disable unused timer1

    Looking up port of RPC 100003/2 on 192.16.1.102

    rpcbind: server 192.16.1.102 not responding, timed out

    Root-NFS: Unable to get nfsd port number from server, using default

    Looking up port of RPC 100005/1 on 192.16.1.102

    rpcbind: server 192.16.1.102 not responding, timed out

    Root-NFS: Unable to get mountd port number from server, using default

    Root-NFS: Server returned error -5 while mounting /home/admin

    VFS: Unable to mount root fs via NFS, trying floppy.

    VFS: Cannot open root device "nfs" or unknown-block(2,0)

    Please append a correct "root=" boot option; here are the available partitions:

    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

    Backtrace:

    [<c002b6a0>] (dump_backtrace+0x0/0x110) from [<c002b7e4>] (dump_stack+0x18/0x1c)

     

     r6:c0021850 r5:c02ebd24 r4:cf823f58

    [<c002b7cc>] (dump_stack+0x0/0x1c) from [<c003c438>] (panic+0x54/0x134)

    [<c003c3e4>] (panic+0x0/0x134) from [<c000916c>] (mount_block_root+0x1d4/0x21c)

     r3:00000001 r2:cf822000 r1:cf823f58 r0:c0291d74

    [<c0008f98>] (mount_block_root+0x0/0x21c) from [<c0009278>] (mount_root+0xc4/0xf

    c)

    [<c00091b4>] (mount_root+0x0/0xfc) from [<c000941c>] (prepare_namespace+0x16c/0x

    1d0)

     r5:c0021808 r4:c02eb804

    [<c00092b0>] (prepare_namespace+0x0/0x1d0) from [<c0008958>] (kernel_init+0xd8/0

    x10c)

     r5:c00204a4 r4:c02eb7f8

    [<c0008880>] (kernel_init+0x0/0x10c) from [<c003f4d0>] (do_exit+0x0/0x62c)

     r5:00000000 r4:00000000

    <it halts here i have selected the MTD utility using the make menuconfig.Can you plz help me i will be thank ful to you>

    I am reading DVSDK getting started guide.

    I am new to linux and all dis

    with regard's

    Rohan Tabish

     

  • Hello Rohan,

    It seems there is a problem with your NFS setup. Are you sure that the nfs service is up and running in the host and is properly configured? I suggest you to please go through the 'getting started guide.pdf' document for dm6446. This procedure is clearly explained in this document.

    Also for the time being please don't provide any video related arguments in your 'bootargs'. Try loading NFS using static ip as it is very simple to configure (once everything is up you can think of  dhcp option, you need to configure dhcp server in your host for dhcp to work). static ip method is explained in an application note available at the link 'http://www.ti.com/litv/pdf/spraaq0'.

    provide bootargs as mentioned in the application note, it should work.

    I followed the steps mentioned in getting started guide and chose static ip option and able to boot properly, ofcourse i used the kernel that came with dvsdk.

    In my case the bootloader for some reason used to neglect the bootargs so i used the following bootcmd to solve that

    setenv bootcmd 'setenv setboot setenv bootargs \$(bootargs);run setboot;tftpboot 0x80700000 uImage;bootm'

    tftp is to transfer the compiled image to the target.

    hope this helps.

    --

    Best Regards

    Arun

  • Jonners said:

    I am using the latest dvsdk_2_00_00_22/MV5.

    Answering your question, I have downloaded the new u-boot.bin from this site http://c6000.spectrumdigital.com/davincievm/revf/ as well as the flashing instructions and the ARM GEL file.

    DVSDK releases contain all the software you need, including u-boot and CCS flashing utilities compatible with that particular DVSDK (look unde PSP_x_xx_xx_xxx directory).  The u-boot found in the Spectrum Digital link you sent is dated 2006 (really old) and likely incompatible with MV Pro 5.