
On Wed, 17 Jun 2020 at 00:01, Vladimir Oltean olteanv@gmail.com wrote:
On Tue, 16 Jun 2020 at 23:58, Tom Rini trini@konsulko.com wrote:
On Tue, Jun 16, 2020 at 05:55:10PM -0300, Fabio Estevam wrote:
On Tue, Jun 16, 2020 at 5:51 PM Tom Rini trini@konsulko.com wrote:
Ah. So this is probably why the DT being right isn't helping then. If you want to blind-convert I'm happy to test, otherwise do you have a similar board conversion for me to look at? Thanks!
Please try Vladimir's suggestion as it seems to be the less intrusive approach:
--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c +++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c @@ -321,7 +321,7 @@ int board_eth_init(bd_t *bis) if (!bus) return -EINVAL;
phydev = phy_find_by_mask(bus, ETH_PHY_MASK, PHY_INTERFACE_MODE_RGMII);
phydev = phy_find_by_mask(bus, ETH_PHY_MASK,
PHY_INTERFACE_MODE_RGMII_ID); if (!phydev) { ret = -EINVAL; goto free_bus;
OK, tried that and not enough. Console says PHY autoneg completes, but DHCP still doesn't reply.
What about with the manual revert in place? What does phydev->interface print? Not only in atheros.c, but also in mx6cuboxi.c, right below this phy_find_by_mask call. Trying to understand if this is your only problem or if there are more.
In fact there's one more 'manual' thing you can do.
Check if RX delay is enabled (bit 15 of debug register 0): => mdio write eTSEC1 0x1D 0 => mdio read eTSEC1 0x1E => mdio write eTSEC1 0x1E <new value>
Check if TX delay is enabled (bit 8 of debug register 5): => mdio write eTSEC1 0x1D 5 => mdio read eTSEC1 0x1E => mdio write eTSEC1 0x1E <new value>
(replace eTSEC1 with your mdio bus name from "mdio list")