Subject: Sequoia EMAC only works if u-boot initializes it?

From: "Steven A. Falco" <[email-masked]>
Date: Mon, 26 Nov 2007 10:59:35 -0500

I have noticed odd behavior on a Sequoia board.  Kernel is built from 
DENX git, ARCH=powerpc, 2.6.23.1.

Sequence that works:
1) In u-boot, do "dhcp" (this initializes the PHY)
2) Boot linux from flash
3) ifconfig eth0 192.168.0.101 netmask 255.255.255.0 up
Ethernet is now functional, and I can ping the Sequoia (and it can ping 
my host)

Sequence that does not work:
1) Boot linux from flash without letting u-boot touch eth0
2) ifconfig eth0 192.168.0.101 netmask 255.255.255.0 up
Ethernet appears to come up, but it is not functional.  I.e. I get 
"eth0: link is up, 100 FDX, pause enabled" but I cannot ping the board, 
and the board cannot ping my host.

So, the kernel appears to be missing some initialization that u-boot 
provides.

However, eth1 is more strange.  U-boot can use it (via "setenv ethact 
ppc_4xx_eth1;dhcp"), however, the kernel cannot use it, whether or not 
u-boot first initializes it.

If anyone has suggestions on where to look, I'd appreciate it.  I'm 
going to look at the PHY register settings and see if there are any 
clues there...

    Steve