Reset ethernet chip - Apalis i.MX6

Hello,

we need to reset the ethernet adpater on a Apalis i.MX6 module with Windows Embedded Compact 2013.
It’s the same request as described in topic https://www.toradex.com/community/questions/31643/reset-ethernet-chip.html?childToView=64210#comment-64210
Because of the note of alex.tx I created this separate question.

The root cause is that we connect to an other embedded controller via the ethernet adapter and during flash process this component switches to Bootloader. This causes a disconnect and new connect of the ethernet communication. Unfortunatelly this does not work correctly with disabled autonegotiation.
A reset of the ENET driver did not solve the issue but a restart of (only) the Apalis module does.
So we expect that a reset of the ethernet adpater solves the issue, too.

We already tested via the GPIO tool and toggling GPIO 25 which seems to reset the ethernet adpater.
This worked and ethernet communication was possible again.
So is GPIO 25 connected to the RESET_N pin of the ethernet transceiver just to validate our test results?

Best regards
André

Additional question:
If GPIO 25 is correct, how can we switch this GPIO via the GPIO library?
We tested with uIo Type = ioGpio (which sould be right!?) and ioApalisPin and method Gpio_SetLevel but both did not work.
If we switch GPIO 25 via your iMX6 GPIO V1.1 tool it worked by manual switch of GPIO 25 “ENET_CRS_DV”.
How does this tool set the GPIO level?

Thanks!

Yes, the RESET_N pin of KSZ9031 Ethernet controller is connected to iMX6 ENET_CRS_DV ball. Which is GPIO 25 by GPIO Tool notation.

Just want to note that mentioned community ticket is related to the ethernet issue #15455 which applicable only to Tegra based modules.

Thanks!

Can you share a example how to switch this GPIO via the GPIO library?
(see my additional question:
If GPIO 25 is correct, how can we switch this GPIO via the GPIO library? We tested with uIo Type = ioGpio (which sould be right!?) and ioApalisPin and method Gpio_SetLevel but both did not work. If we switch GPIO 25 via your iMX6 GPIO V1.1 tool it worked by manual switch of GPIO 25 “ENET_CRS_DV”. How does this tool set the GPIO level?)

Please check GPIO_demo example included in Toradex CE libs package. Could you please attach your full (and compilable) code you are using to flip GPIO 25?

Hello,
now it works, it was an other failure in our application.

Thanks for your support!

Thank you for the update.