"Cannot attach to PHY" error for AR8035 (Atheros, Quallcom)

We replaced PHY with Qualcomm AR8035 on our custom board,
and we have no response from it too.

The error is below:

eqos_open: Cannot attach to PHY (error: -19)

which is also mentioned in:

Does anybody know how to modify the following block for this PHY?

		mdio {
			compatible = "nvidia,eqos-mdio";
			#address-cells = <1>;
			#size-cells = <0>;

			phy0: ethernet-phy@0 {
				reg = <0>;
				phy_rst_lp_mode = <1>; // 0=disable 1=enable 
				interrupt-parent = <&tegra_main_gpio>;
				interrupts = <TEGRA194_MAIN_GPIO(G, 4) IRQ_TYPE_LEVEL_LOW>;
				// Setup LED[2] as interrupt pin (active low)
				marvell,reg-init = <0x03 0x12 0x7fff 0x880>;



The phy register is followed by the linux kernel framework.


“mdiobus_register” from Linux PHY framework will take care of scanning all the PHY devices (Max is 32) that are connected to the MDIO bus and loads the corresponding driver accordingly.
We will call this function as a part of our driver probe.

Please make sure the device driver is really for your AR8035 now.

lbuntu@jetson-E3360A01P0351:/sys/bus/mdio_bus/devices/2490000.ether_qos:00$ ls -l
total 0
lrwxrwxrwx 1 root root    0 Apr 26 08:19 driver -> '../../../../../bus/mdio_bus/drivers/Marvell 88E1510'
drwxr-xr-x 3 root root    0 Apr 26 08:19 hwmon
lrwxrwxrwx 1 root root    0 Apr 26 08:19 of_node -> ../../../../../firmware/devicetree/base/ether_qos@2490000/mdio/ethernet-phy@0
-r--r--r-- 1 root root 4096 Apr 26 08:19 phy_has_fixups
-r--r--r-- 1 root root 4096 Apr 26 08:19 phy_id
-r--r--r-- 1 root root 4096 Apr 26 08:19 phy_interface
drwxr-xr-x 2 root root    0 Apr 26 08:19 power
lrwxrwxrwx 1 root root    0 Apr 26 08:19 subsystem -> ../../../../../bus/mdio_bus
-rw-r--r-- 1 root root 4096 Apr 26 08:19 uevent


After adding the AT803X driver (I don’t know why not AR803X) to “defconfig” and modifying the “mdio” block in dtsi, there is no error (-19) anymore:

ether_qos@2490000 {
        mdio {
            /delete-node/ ethernet-phy@0;
            phy0: ethernet-phy@4 {
                reg = <4>;
                interrupt-parent = <&tegra_main_gpio>;
                interrupts = <TEGRA194_MAIN_GPIO(G, 4) IRQ_TYPE_LEVEL_LOW>;

With the cable attached, the eth0 is still not up:

ADDRCONF(NETDEV_UP): eth0: link is not ready

A manual “ifconfig up/down” gives the same result.
The “ethtool” shows no link detection.

The GPIOs are configured the same with the original PYH.

Any idea?


Please consult with the vendor if their PHY requires some special programming. Or some datasheet to check the phy status.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.