[U-Boot-Users] [PATCHJ PPC4xx enet crossover

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
diff --git a/cpu/ppc4xx/miiphy.c b/cpu/ppc4xx/miiphy.c index 4216f0b..f48e68d 100644 --- a/cpu/ppc4xx/miiphy.c +++ b/cpu/ppc4xx/miiphy.c @@ -143,7 +143,7 @@ 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 | + adv |= (PHY_ANLPAR_ACK | PHY_ANLPAR_TXFD | PHY_ANLPAR_TX | PHY_ANLPAR_10FD | PHY_ANLPAR_10); miiphy_write (devname, addr, PHY_ANAR, adv);

In message 2C7DE72B9BD00F44BAECA5B0CBB873950729E6@hermes.terascala.com you wrote:
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
Applied, thanks.
Note: you might also try enabling the (new) CONFIG_PHY_DYNAMIC_ANEG option on your board; this works for us, too.
Best regards,
Wolfgang Denk
participants (2)
-
Mike Nuss
-
Wolfgang Denk