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.

TFTP load problem with DHCP setting



Hi,

I am trying to setup my DM814x EVM development environment. but I got a problem when I use DHCP for target device. the console message is like this:

TI8148_EVM#setenv bootcmd 'dhcp;tftp 81000000 uImage; bootm'
TI8148_EVM#boot
link up on port 0, speed 1000, full duplex
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
BOOTP broadcast 6
BOOTP broadcast 7
BOOTP broadcast 8
BOOTP broadcast 9
BOOTP broadcast 10

Retry count exceeded; starting again
link up on port 0, speed 1000, full duplex

Abort
link up on port 0, speed 1000, full duplex
*** ERROR: `ipaddr' not set
Wrong Image Format for bootm command
ERROR: can't get kernel image!
TI8148_EVM#

it seems target board can not get ip from network server.

here is the boot environment parameter I printed out:

TI8148_EVM#print
bootdelay=3
baudrate=115200
verify=yes
bootfile=uImage
ramdisk_file=ramdisk.gz
loadaddr=0x81000000
script_addr=0x80900000
loadbootscript=fatload mmc 0 ${script_addr} boot.scr
bootscript= echo Running bootscript from MMC/SD to set the ENV...; source ${script_addr}
stdin=serial
stdout=serial
stderr=serial
ethaddr=40:5f:c2:3f:be:27
ethact=cpsw
serverip=192.168.35.136
netmask=255.255.255.0
autoload=no
nfsserver=192.168.35.136
bootargs=console=ttyO0,115200n8 root=/dev/nfs ip=dhcp nfsroot=192.168.35.136:/home/user/targetNFS,nolock rw mem=128M
bootcmd=tftpboot 81000000 uImage; bootm

any idea what is going on?

Jeff

  • I think the DHCP broadcast is failing. Check that your DHCP server is up and that your connected to the network. Try dhcp on the command line alone to test. After a successful DHCP lease, ipaddr should be set.

  • You could also try this on a 100Mbps network to checks if it resolves the issue.

    Regards,

    Vaibhav

  • Hi

    I got fixed ipaddr from network admin. but I still can not get tftp working. here is some info from console:

    TI8148_EVM#boot
    link up on port 0, speed 1000, full duplex
    Using cpsw device
    TFTP from server 192.168.35.136; our IP address is 192.168.35.183
    Filename 'uImage'.
    Load address: 0x81000000
    Loading: T T T T T T T T T T T
    Abort
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!
    TI8148_EVM#ping 192.168.35.183
    link up on port 0, speed 1000, full duplex
    Using cpsw device
    ping failed; host 192.168.35.183 is not alive
    TI8148_EVM#

    It looks like EVM didn't get ipaddr at U-boot stage. as you can see the 'PING' command failed.

    but once I boot from sd card, I can see ipaddr with ifconfig command. so what is going on?

    Jeff

  • By definition if you boot from the SD Card, the network is not involved in the boot process. The network is brought up after the kernel is booted. U-boot does not need to use the network. For that matter, U-boot and Linux can have two different network configs.

    I think your TFTP is failing because the TFTP server is not up at 192.168.35.136. The TFTP server at that address must be running and accessible (no firewall in the way). It must also have an uImage file available.

    I have doubts that you can ping yourself with "ping 192.168.35.183". U-Boot does not really have a ping daemon. Try pinging the server, eg "ping 192.168.35.136".