Ethernet not working in U-boot

Praveen
I want to load Linux kernel via Ethernet from U-boot. But ethernet is not
working  in u_boot. I am able to ping to my PC from Linux. I noticed that
even the Link LED is not glowing in Ethernet interface. Can someone please
help on this? I enabled some debug in ethernet driver and made sure that it
is tying to transmit packets.
I am using mini6440.

davef
From:

free-electrons.com/doc/u-boot.pdf

*****
Files must be exchanged between the target and the 
development workstation. 

This is possible :
Through the network if the target has an Ethernet connection, and 
U­Boot contains a driver for the Ethernet chip. If so, the TFTP 
protocol can be used to exchange files
*****

I was going to say that the ethernet interface hasn't even been activated
at this stage, but it appears that u-boot could be modified.

Barebox can use TFTP to load the kernel. Maybe, some more searching might
reveal what needs to be done or why it has not been done.

davef
Just ran across this:

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=5&t=5498

Yes there is both USB and Network support in u-boot, though I've never
looked to see if the USB support was anything more than mounting image
files from a stick. TFTP support is in u-boot which would allow you to boot
without a kernel or RFS on the SD card. Setup is very simple.

It does not say how though.

Also,
http://www.denx.de/wiki/DULG/EthernetDoesNotWorkInLinux

Praveen
Hi Dave,

I was sure that Ethernet support is added to U-boot. As i said earlier i
enabled debug messages and confirmed that ethernet is trying to transmit
packets. But this is according to the debug messages. But these packets are
not reaching my PC as i checking for it with tcpdump. As you pointed out
Ethernet is enabled in U-boot only when we try to access it using
tftp/ping. USB support is there to download images, which is Friendlyarm
custom support. 

Thanks,
Praveen.

davef
Saw another thread (maybe the raspberry pi forums) about another attempt at
a work-around for what sounded like this problem:

running ifconfig as a background task until something else had taken place.

Good luck!

sean_h
You will probably be able to ping the host from the target but not vice
versa.

1) Enable tftp on host first. Watch firewall settings and do a tftp test on
a local file on the host first.

2) From the bootloader on the target: 
setenv serverip xx.xx.xx.xx  ( host ip addr )
setenv ipaddr xx.xx.xx.yy (target ip addr )
saveenv

tftp 0xzzzzzzzz uImage (where 0xzzzzzzzz is the required memory address for
your target platform)
bootm 0xzzzzzzz

Once the kernel is running you can: ifconfig eth0

Sean

Praveen
I got it working. Not sure what was the problem. I am able to ping and tftp
uImage from my PC. I think switch was causing some issue. Not sure.
Thanks for the help.

TheRegnirps
Anyone working with FriendlyARM boards and Ethernet needs to keep in mind
that they ship with a crossover cable for direct connection to a host. 

If you are using a switch, you need to use a patch cable.

Uilian Ries
I had the same problem with tftp

To solve this problem, I used two points:

First, use tftpd-hpa to server.

Second, before that you try to get the file, restart the tftp:
/etc/init.d/tftpd-hpa restart

After this sequence I never more have problems with the ethernet.

Akka
I am getting Ethernet error in U-boot-1.3.2 "DM9000 not found at 0x20000000
id 0x2b2a2928".
I think Ethernet card/chip is not detected.

Can any body help me how to solve this.

davef
Which dev board are you using?

There was a recent thread, in the last few days, with a number of commands
, other than lsusb, to see what network devices are attached.

Akka
I am using ARM9 s3c2410 smdk2410,32MBx2 SDRAM,NAND 64MB,with Davicom DM9000
Ethernet chip.

I don't have schematic of this board. I want to know the Base address of
DM9000 chip connected to S3c2410 address space.

Can I get help on how to find the Base address of DM9000 without schematic.

Akka
U mean the command 
> cat /proc/iomem

karan arora
for mini2440
firstly install the following packages
$ sudo apt-get install tftp tftpd tftp-hpa tftpd-hpa xinetd
after that 
$ sudo apt-get update

make the following directory
$ sudo mkdir /var/lib/tftpboot
place the uImage from arch/arm boot to /var/lib/tftpboot

after that on mini2440 termininal do the following
mini2440# setenv serverip 192.168.1.10 (PC ip)
mini2440# setenv ipaddr 192.168.1.11    (Board ip)
mini2440# saveenv
mini2440# tftpboot 0x33000000 uImage
mini2440# bootm

now your kernel image will load
mini2440 login: root
#cd /
#ls
it will show all all the root directories

enjoy.
regards : Er. Karan Arora

ANSHUL JAIN
Hi,
   I am working with odroid-pc board. when i am trying to boot uboot
through tftp it is showing "NO ethernet found". can anyone help?

Er. Karan Arora
Dear Anshul,
Install the following command on the terminal
$ sudo apt-get update
$ sudo apt-get install tftp tftpd-hpa xinetd
$ sudo ifconfig eth0 192.168.1.12
After that edit your eth0 ethernet port
Address - 192.168.1.12
Subnet  - 255.255.255.0
Gateway - 192.168.1.1
DNS Server - 192.168.1.1
$ sudo ifconfig eth0 192.168.1.12
You have to set the ip on both terminal as well as graphically

192.168.1.12 is your system ip
192.168.1.13 - you can choose this ip for your target board.

Thanks and Regards :
Er. Karan Arora
http://www.itronixsolution.com