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.

unable to boot kernel from tftp - BeagleBone

Hi,

We get below mentioned error when we try to boot the kernel from tftp using dhcp. We are using TI's Linux SDK 6.0 on BeagleBone. Host and BB is connected in company network via hub.

uEnv.txt content:

serverip=172.16.40.116

rootpath=/home/antonythanesh/ti-sdk-am335x-evm-06.00.00.00/targetNFS
bootfile=uImage-am335x-evm.bin
ip_method=dhcp
tftp_nfs_boot=echo Booting from network...; dhcp ${loadaddr} ${bootfile}; run netargs; bootm ${loadaddr}
uenvcmd=run tftp_nfs_boot

===================================

bootup log with error:

U-Boot 2013.01.01 (Jun 25 2013 - 16:42:52)

I2C: ready
DRAM: 256 MiB
WARNING: Caches not enabled
NAND: No NAND device found!!!
0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment

musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO
Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Peripheral mode controller at 47401000 using PIO, IRQ 0
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO
Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Host mode controller at 47401800 using PIO, IRQ 0
Net: <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot: 0
mmc0 is current device
SD/MMC found on device 0
reading uEnv.txt
270 bytes read in 3 ms (87.9 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc ...
Running uenvcmd ...
Booting from network...
cpsw Waiting for PHY auto negotiation to complete. done
link up on port 0, speed 100, full duplex
BOOTP broadcast 1
DHCP client bound to address 172.16.40.117
Using cpsw device
TFTP from server 172.16.40.116; our IP address is 172.16.40.117
Filename 'uImage-am335x-evm.bin'.
Load address: 0x80200000
Loading: T T T T T T T T T T T T T T T T T T T T
Retry count exceeded; starting again
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC 00:18:31:8b:db:45
HOST MAC de:ad:be:af:00:00
RNDIS ready
musb-hdrc: peripheral reset irq lost!
high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
USB RNDIS network up!
BOOTP broadcast 1

============================

printenv detail:

U-Boot# printenv
arch=arm
baudrate=115200
board=am335x
board_name=A335BONE
board_rev=00A6
bootargs=console=ttyO0,115200n8 root=/dev/nfs nfsroot=172.16.40.116:/home/antony
thanesh/ti-sdk-am335x-evm-06.00.00.00/targetNFS,nolock rw ip=dhcp
bootargs_defaults=setenv bootargs console=${console} ${optargs}
bootcmd=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmc
dev};if run loadbootenv; then echo Loaded environment from ${bootenv};run import
bootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;if
run loaduimagefat; then run mmcboot;elif run loaduimage; then run mmcboot;else e
cho Could not find ${bootfile} ;fi;else run nandboot;fi;
bootdelay=1
bootenv=uEnv.txt
bootfile=uImage-am335x-evm.bin
console=ttyO0,115200n8
cpu=armv7
dfu_alt_info_emmc=rawemmc mmc 0 3751936
dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw mmc 100 100;u
-boot.img.raw mmc 300 3C0;u-boot.img fat 0 1;uEnv.txt fat 0 1
dfu_alt_info_nand=SPL part 0 1;SPL.backup1 part 0 2;SPL.backup2 part 0 3;SPL.bac
kup3 part 0 4;u-boot part 0 5;kernel part 0 7;rootfs part 0 8
ethact=cpsw
ethaddr=00:18:31:8b:db:45
fdt_high=0xffffffff
fdtaddr=0x80F80000
filesize=0x10e
findfdt=if test $board_name = A335BONE; then setenv fdtfile am335x-bone.dtb; fi;
if test $board_name = A33515BB; then setenv fdtfile am335x-evm.dtb; fi; if test
$board_name = A335X_SK; then setenv fdtfile am335x-evmsk.dtb; fi
importbootenv=echo Importing environment from mmc ...; env import -t $loadaddr $
filesize
ip_method=dhcp
kloadaddr=0x80007fc0
loadaddr=0x80200000
loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}
loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz
loaduimage=ext2load mmc ${mmcdev}:2 ${kloadaddr} /boot/${bootfile}
loaduimagefat=fatload mmc ${mmcdev} ${kloadaddr} ${bootfile}
mmcargs=run bootargs_defaults;setenv bootargs ${bootargs} root=${mmcroot} rootfs
type=${mmcrootfstype} ip=${ip_method}
mmcboot=echo Booting from mmc ...; run mmcargs; bootm ${kloadaddr}
mmcdev=0
mmcroot=/dev/mmcblk0p2 ro
mmcrootfstype=ext3 rootwait
mtdids=nand0=omap2-nand.0
mtdparts=mtdparts=omap2-nand.0:128k(SPL),128k(SPL.backup1),128k(SPL.backup2),128
k(SPL.backup3),1920k(u-boot),128k(u-boot-env),5m(kernel),-(rootfs)
nandargs=setenv bootargs console=${console} ${optargs} root=${nandroot} rootfsty
pe=${nandrootfstype}
nandboot=echo Booting from nand ...; run nandargs; nand read ${loadaddr} ${nands
rcaddr} ${nandimgsize}; bootm ${loadaddr}
nandimgsize=0x500000
nandroot=ubi0:rootfs rw ubi.mtd=7,2048
nandrootfstype=ubifs rootwait=1
nandsrcaddr=0x280000
netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${se
rverip}:${rootpath},${nfsopts} rw ip=dhcp
netboot=echo Booting from network ...; setenv autoload no; dhcp; tftp ${loadaddr
} ${bootfile}; run netargs; bootm ${loadaddr}
nfsopts=nolock
ramargs=setenv bootargs console=${console} ${optargs} root=${ramroot} rootfstype
=${ramrootfstype}
ramboot=echo Booting from ramdisk ...; run ramargs; bootm ${loadaddr}
ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=${rdaddr},64M
ramrootfstype=ext2
rdaddr=0x81000000
rootpath=/home/antonythanesh/ti-sdk-am335x-evm-06.00.00.00/targetNFS
serverip=172.16.40.116
soc=am33xx
spiargs=setenv bootargs console=${console} ${optargs} root=${spiroot} rootfstype
=${spirootfstype}
spiboot=echo Booting from spi ...; run spiargs; sf probe ${spibusno}:0; sf read
${loadaddr} ${spisrcaddr} ${spiimgsize}; bootm ${loadaddr}
spibusno=0
spiimgsize=0x362000
spiroot=/dev/mtdblock4 rw
spirootfstype=jffs2
spisrcaddr=0xe0000
static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
stderr=serial
stdin=serial
stdout=serial
tftp_nfs_boot=echo Booting from network...; dhcp ${loadaddr} ${bootfile}; run ne
targs; bootm ${loadaddr}
uenvcmd=run tftp_nfs_boot
usbnet_devaddr=00:18:31:8b:db:45
vendor=ti
ver=U-Boot 2013.01.01 (Jun 25 2013 - 16:42:52)

Environment size: 3978/131068 bytes
U-Boot#

Thanks in advance for the prompt response,

Antony.

  • Hi,

    Your configuration is OK. As you can see, the transfer is initiating.

    The timeout that is happening later could be a result of a network inconsistency. You will have to check this.

    Actually, have you tried it manually?

    setenv bootfile=uImage-am335x-evm.bin
    setenv serverip=172.16.40.116
    setenv autoload no
    dhcp
    tftp ${kloadaddr} ${bootfile}

    P.S. Also please try to disable your firewall if you have one.

    Best regards,
    Miroslav

  • Thank you for the suggestion, Miroslav!

    It worked... the problem is with my company/corporate Windows’ firewall. Although I'm trying to transfer files (tftp/NFS) from VMware, Windows’ corporate firewall was blocking the transfer. I turned off the Windows firewall and the tftp/nfs started to work.

    It would be great help developers like us if you include this note (‘disabling firewall - VMware & Windows’) in TI’s wiki - Linux developer’s guide.

    Thanks again.. Antony.