OMAPL-138 experimenter kit
I have followed the directions in the GSG (http://processors.wiki.ti.com/index.php/GSG:_Setting_up_OMAP-L1/AM1x_Target_File_System#Writing_a_Simple_Program_and_Running_it_on_the_EVM) and am having some trouble doing an NFS boot. It seems that it has something to do with setting / not setting the 'ipaddr' variable in U-boot. I am eventually able to get the board to do the NFS boot by playing with the 'ipaddr' setting, but this is not mentioned anywhere in the GSG. Can anyone see anything I am doing wrong here? This is my first go-round with U-boot so I may just be making some simple mistake.
(IP address of my board is 192.168.1.116; IP of the Linux host is 192.168.1.104; IP of my router is 192.168.1.254)
U-Boot > setenv nfshost 192.168.1.104
U-Boot > setenv rootpath /home/usr/smh/workdir/filesys
U-Boot > setenv serverip 192.168.1.104
U-Boot > setenv bootfile uImage
U-Boot > setenv bootcmd 'dhcp;tftp;bootm'
U-Boot > setenv bootargs console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=${nfshost}:${rootpath},nolock mem=32M
U-Boot > printenv
bootdelay=3
baudrate=115200
stdin=serial
stdout=serial
stderr=serial
ethaddr=00:08:ee:04:40:46
ethact=
ver=U-Boot 2009.01 (Sep 17 2009 - 17:41:56)
nfshost=192.168.1.104
rootpath=/home/usr/smh/workdir/filesys
serverip=192.168.1.104
bootfile=uImage
bootcmd=dhcp;tftp;bootm
bootargs=console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=192.168.1.104:/home/usr/smh/workdir/filesys,nolock mem=32M
Environment size: 404/65532 bytes
U-Boot > boot
BOOTP broadcast 1
DHCP client bound to address 192.168.1.116
Using device
TFTP from server 192.168.1.254; our IP address is 192.168.1.116
Filename 'uImage'.
Load address: 0xc0700000
Loading: T T T
.......I hit ^c here to abort since I know this always fails........
Abort
*** ERROR: 'ipaddr' not set
Wrong Image Format for bootm command
ERROR: can't get kernel image!
- Notice that the TFTP server address above is WRONG. It should end in 104. The 254 is the address of my router. ????
- U-boot complains that 'Ipaddr' is not set. Should I have set this? Doing another printenv still displays as shown above.
So I set ipaddr to address of the Linux host and attempt another boot...
U-Boot > setenv ipaddr 192.168.1.104
U-Boot > boot
BOOTP broadcast 1
DHCP client bound to address 192.168.1.116
Using device
TFTP from server 192.168.1.254; our IP address is 192.168.1.116
Filename 'uImage'.
Load address: 0xc0700000
Loading: T
... I hit ^C here to abort, but notice the TFTP address is still wrong...
Abort
... U-boot automatically attempts again...
Using device
TFTP from server 192.168.1.104; our IP address is 192.168.1.104
Filename 'uImage'.
Load address: 0xc0700000
Loading: T
... I hit ^c here to abort. Notice that the TFTP address is now correct but the board address is now wrong...
Abort
Wrong Image Format for bootm command
ERROR: can't get kernel image!
U-Boot >
Notice that the TFTP and "our" address keep changing. This will happen each time I enter the "boot" cmd. If I play with setting ipaddr i.e. setenv ipaddr <addr> to either the IP of my board (192.168.1.116) or to the IP of the TFTP server (192.168.1.104) I am eventually able to get the kernel to load and boot successfully.
Help. I am confused as to what is going on here.
Regards,
Scott