LAN8710A: Ethernet driver init failed

Hello. I’m not sure if anybody faced a similar issue but I hope you can help me to solve it.

I try configuring the Ethernet on my ESP32 board using LAN8710, but the Firmware fails during the driver initialization. I’m using a pretty simple project with Ethernet and WiFi libs only and mos 2.19.0. I also tried 2.20.0, 2.18.0 and even 2.10.0, but all of them have the same issue.

I receive the following error:

I tried to investigate these errors and it looks like they are inside esp_eth_driver_install() which is already part of ESP IDF. So I think the root cost of this problem is inside mgos_ethernet_init(). However, I couldn’t find the implementation of the esp_eth_mac_new_esp32_clock_mode() and, look like, it’s part of the custom ESP IDF that Mongoose OS is used.

As a result, it’s hard to understand what is wrong and how I can fix it.
I hope someone saw the same issue and can help me to fix it.

Thanks.

First off, the esp-idf used by Mongoose OS is here. Select the tag that a specific Mongoose OS is using. You can find it here for 2.19.0.

Are you using a development board with integrated ethernet, or a custom board?

I have an Olimex ESP32-POE and if the clock mode is not set correctly, I get an esp_eth_driver_install error with any Mongoose OS version.

[May  9 19:08:43.526] E (840) lan8720: lan8720_pwrctl(343): power up timeout
[May  9 19:08:43.532] E (850) lan8720: lan8720_init(383): power control failed
[May  9 19:08:43.538] E (850) esp_eth: esp_eth_driver_install(199): init phy failed

Thank you. We have found the issue. Our custom board has an uncommon configuration of the Ethernet module, so we needed to patch the Ethernet library.

Anyways, thank you for your help.