eth0 - no link

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

eth0 - no link

Jump to solution
4,136 Views
ennebi
Contributor II

I'm working on a port of Android LL (based on L5.0.0_1.0.0-ga) on Solidrun Hummingboard, that makes use of Atheros 8035 ethernet controller. While I can ping correctly under u-boot, I am unable to get the link once Android is started.

I get:

fec 2188000.ethernet eth0: Freescale FEC PHY driver [Atheros 8035 ethernet] (mii_bus:phy_addr=2188000.ethernet:00, irq=-1)

IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

I tried (with selinux permissive mode enabled)

ifconfig eth0 192.168.1.5

It works, but when pinging an existing address I get Destination Host Unreachable. I cannot exclude I misconfigured the interface (I already checked it several times, but I don't see any mistake).

Do you have advices on the steps I could try to understand where the issue comes from?

In boot log I have:

init: process 'dhcpcd_eth0', pid 125 exited

Logcat extract:

E/dhcpcd  (  125): Android requires an interface

E/dhcpcd  (  125): stop_control: No such file or directory

I/EthernetServiceImpl(  379): Creating EthernetConfigStore

I/EthernetServiceImpl(  379): Read stored IP configuration: IP assignment: DHCP

I/EthernetServiceImpl(  379): Proxy settings: NONE

I/EthernetService(  379): Registering service ethernet

I/SystemServer(  379): Connectivity Service

D/ConnectivityService(  379): ConnectivityService starting up

D/ConnectivityService(  379): wifiOnly=false

E/ConnectivityService(  379): Ignoring protectedNetwork 14

E/ConnectivityService(  379): Ignoring protectedNetwork 15

I/SystemServer(  379): Network Service Discovery Service

D/NsdService(  379): Network service discovery enabled true

D/Ethernet(  379): Registering NetworkFactory

D/ConnectivityService(  379): Got NetworkFactory Messenger for Ethernet

D/EthernetNetworkFactory(  379): Started tracking interface eth0

D/Ethernet(  379): got request NetworkRequest [ id=1, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ] with score 0

D/CommandListener(  119): Setting iface cfg

D/CommandListener(  119): Trying to bring up eth0

D/EthernetNetworkFactory(  379): updateInterface: eth0 link down

D/NetworkManagementService(  379): enabling bandwidth control

Output of IP link:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000

    link/ether d0:63:00:00:00:00 brd ff:ff:ff:ff:ff:ff

It seems that I am unable to get the link up.

Do you have any advice on what should I check to understand what is not working?

Labels (3)
1 Solution
2,898 Views
ennebi
Contributor II

Even if we received no answers, it seems that, when the ethernet driver has a reset pin assigned in device tree, it resets the PHY after the phy_fixup functions are called from board mach file, thus the register setup is lost. It seems that the board initialization sequence is wrong. We solved it by relying on phy initialization in u-boot only

View solution in original post

0 Kudos
Reply
2 Replies
2,898 Views
adamhuang
Contributor III

It's recommended to add .dts a line that specify explicitly a reset pin. However, I suffer a same issue even if I removed the reset pin from .dts file.

0 Kudos
Reply
2,899 Views
ennebi
Contributor II

Even if we received no answers, it seems that, when the ethernet driver has a reset pin assigned in device tree, it resets the PHY after the phy_fixup functions are called from board mach file, thus the register setup is lost. It seems that the board initialization sequence is wrong. We solved it by relying on phy initialization in u-boot only

0 Kudos
Reply