PPC4xx (Sequoia): Fix Ethernet "remote fault" problems
authorMike Nuss <mike@terascala.com>
Mon, 3 Mar 2008 20:27:05 +0000 (15:27 -0500)
committerWolfgang Denk <wd@denx.de>
Tue, 4 Mar 2008 07:55:27 +0000 (08:55 +0100)
Every now and then a Sequoia board (or equivalent hardware) had
problems connecting to a Gigabit capable network interface.

There were differences in the PHY setup between Linux and U-Boot.

This patch fixes the problem. Apparently "remote fault" is being set,
which signals to some devices (on the other end of the cable) that a
fault has occurred, while other devices ignore it. I believe the RF bit
was causing the issue, but I removed T4 also, to match up with Linux.

Signed-off-by: Mike Nuss <mike@terascala.com>
cpu/ppc4xx/miiphy.c

index 4216f0bd41be79d2a564a5338890a3422e962492..3978773f9fae060f3c8b8ca51370891a10e9b021 100644 (file)
@@ -143,9 +143,8 @@ int phy_setup_aneg (char *devname, unsigned char addr)
        u16 adv;
 
        miiphy_read (devname, addr, PHY_ANAR, &adv);
-       adv |= (PHY_ANLPAR_ACK | PHY_ANLPAR_RF | PHY_ANLPAR_T4 |
-               PHY_ANLPAR_TXFD | PHY_ANLPAR_TX | PHY_ANLPAR_10FD |
-               PHY_ANLPAR_10);
+       adv |= (PHY_ANLPAR_ACK  | PHY_ANLPAR_TXFD | PHY_ANLPAR_TX |
+               PHY_ANLPAR_10FD | PHY_ANLPAR_10);
        miiphy_write (devname, addr, PHY_ANAR, adv);
 
        miiphy_read (devname, addr, PHY_1000BTCR, &adv);