Tool/software: Linux
Usually I'll get following four lines from dmesg listing during boot:
[ 1.061945] cpsw 4a100000.ethernet: Detected MACID = 50:72:24:bf:89:f0
[ 1.068955] cpsw 4a100000.ethernet: cpts: overflow check period 850
[ 19.916763] net eth0: initializing cpsw version 1.12 (0)
[ 19.931858] net eth0: initialized cpsw ale version 1.4
[ 19.953312] net eth0: ALE Table size 1024
[ 19.978988] net eth0: phy found : id is : 0x7c0f1
One more line is coming if ethernet line is plugged:
[ 22.994534] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
Occasionally I get only first two lines and then ethernet is not available - only loopback interface is listed in ifconfig.
Usually this does not happen very often - below 1/10 of boot times, but when it happens, it can be every 1/3 or more often. Only once I have noticed it in successive boots. I did not notice this behavior with 4.1 kernel. Have anyone else discovered this kind of problem?
Note that at least first and third lines are coming from kernel driver: drivers/net/ethernet/ti/cpsw.c. First one from cpsw_probe_dual_emac fuctio. So, ethernet is probed/found. Initialization message is coming much later when it comes. It seems coming from cpsw_ndo_open function that is assigned to ndo_open field of cpsw_netdev_ops structure that seems to be passed to network device during probe process. Do anyone know what should trigger executing this open function/decide not executing it? I don't see error messages in dmesg listing.
My device is am335x based board running linux kernel 4.4 (linux-ti-staging-rt 4.4), bootloader u-boot-ti-staging 2016.05.
Any help warmly wellcome!!
Thanks,
Matti