From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?bXVhZGRpYg==?= Date: Tue, 23 Apr 2019 14:48:29 +0300 Subject: [U-Boot] =?utf-8?q?mdio_error_on_ar9344?= Message-ID: <1556020109.884156161@f466.i.mail.ru> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: u-boot@lists.denx.de Hi, I am using device based on Atheros AR9344. When U-Boot initialize net device I get error mdio_register: non unique device name 'gmac0' dm tree command shows that eth_ag7xxx is not probed. ag7xxx_eth_probe -> ag7xxx_mac_probe -> ag933x_phy_setup -> ag933x_phy_setup_reset_set -> ag7xxx_mdio_write -> ag7xxx_mdio_rw return -ETIMEDOUT because ag7xxx_switch_reg_read return 0xFFFFFFFF, see below static int ag7xxx_mdio_rw(struct mii_dev *bus, int addr, int reg, u32 val) {         u32 data;         unsigned long start;         int ret;         // No idea if this is long enough or too long         int timeout_ms = 1000;         // Dummy read followed by PHY read/write command.         ret = ag7xxx_switch_reg_read(bus, 0x98, &data);         if (ret < 0)                 return ret;         data = val | (reg << 16) | (addr << 21) | BIT(30) | BIT(31);         ret = ag7xxx_switch_reg_write(bus, 0x98, data);         if (ret < 0)                 return ret;         start = get_timer(0);         // Wait for operation to finish         do {                 ret = ag7xxx_switch_reg_read(bus, 0x98, &data);                 if (ret < 0)                         return ret;                 if (get_timer(start) > timeout_ms)                         return -ETIMEDOUT;         } while (data & BIT(31));           return data & 0xffff; } I use tplink_wdr4320 u-boot profile for my device.