
Dear Wolfgang,
Am Dienstag, 1. Juni 2010 12:46:03 schrieben Sie:
The problem was a defined CONFIG_RESET_PHY_R. Inside reset_phy
eth_init(gd->bd);
is called which actually starts the hardwre resulting in timeouts as described. According to the comment above this line (seems to be copied to every at91 board implementation) this is only needed if linux has a NFS root which needs a preinitialized ethernet device.
I don't know this driver, but I smell that the comment might actually be wrong or at least misleading - most likely no PHY reset is needed here but a MAC address needs to be programmed into the controller - which brings us back to the start of this discussion. [And note that you still might need this when you want to use the ethernet interface in Linux].
The PHY is explicitly reset in most *_macb_hw_init() on AT91 baords to (re)set the PHY address by straping pins. I think it is debatable if this is really necessary.
The MAC is actually written into hardware in macb_init and afterwards the PHY is initialized in macb_phy_init. So a eth_init seem to be a must from board setup.
The not set MAC is currently (accidently) bypassed in our rootfs as we call
/sbin/ifconfig eth0 hw ether ${MACADDR}
where ${MACADDR} is set by 'fw_printenv ethaddr'
Best regards Alexander