Hi Andrew, I've had another play around with the DTS and appear to have solved the problem. I've changed the ethernet defintions from:
compatible = "cdns,at32ap7000-macb", "cdns,macb"; to compatible = "cdns,at91sam9260-macb"; and everything seems to work fine now - I can finally send pings. The reason I never suspected the dts is because the dts file comes from the manufacturer provided software package, and in their package the ethernet works fine, so I never suspected it. Anyway, thanks for all your help, I appreciate it. On 25 May 2016 at 14:20, Amr Bekhit <amrbek...@gmail.com> wrote: > Hi Andrew, > > I've uploaded the device tree to http://pastebin.com/tNp2PnW4. > > On 25 May 2016 at 13:39, Andrew Lunn <and...@lunn.ch> wrote: >> On Wed, May 25, 2016 at 11:28:37AM +0100, Amr Bekhit wrote: >>> Hi Andrew, >>> >>> I added the following line to genphy_read_status to print out the value of >>> BMCR: >>> >>> phydev->lp_advertising = 0; >>> >>> +printk(KERN_DEBUG "MII_BMCR: 0x%04X\n", phy_read(phydev, MII_BMCR)); >>> >>> if (AUTONEG_ENABLE == phydev->autoneg) { >>> >>> After booting up the kernel and running ifconfig eth0 up, I get the >>> following in kernel log: >>> >>> [ 83.890625] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready >>> [ 85.328125] MII_BMCR: 0x1000 >>> [ 86.328125] MII_BMCR: 0x1000 >>> [ 87.328125] MII_BMCR: 0x3100 >>> [ 87.328125] macb f802c000.ethernet eth0: link up (100/Full) >>> [ 87.328125] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready >>> [ 88.328125] MII_BMCR: 0x3100 >>> [ 89.328125] MII_BMCR: 0x3100 >>> [ 90.328125] MII_BMCR: 0x3100 >>> >>> So it appears that after bringing the interface up, the PHY is >>> configured for 100Mbps, autoneg enabled and duplex mode. The PHY is >>> not isolated or powered down. >> >> So this all looks good. So it suggests your problem is between the MAC >> and the PHY, since the PHY is able to talk to the PHY on the other end >> of the cable. >> >> What do you have in device tree? >> >> Andrew