How to change kernel source to use a second FEC on imx7d

Hi
i am not good at English , please understand
i used kernel 5.4.161 , i extracted this source from toradex-yocto BSP 5
the SOM is Colibri IMX7D 1G Ver 1.1B
with that kernel, i had no problem with a second FEC ( phy is ksz8041 with external phy clk,RMII mode )

recently i tried to upgrade kernel to 6.6.63 from BSP 7.x
but in 6.6.63 kernel the imx7d_enet_clk_sel function ( arch/arm/mach-imx/mach-imx7d.c) it clear IMX7D_GPR1_ENET_TX_CLK_SEL_MASK/DIR_MASK both that means phy clk is input

in 5.4 kernel , it use “enet_out” device tree config to set phy clk to input mode in imx7d_enet_clk_sel function

but by the 6.6.63 kernel , ENET1 is working
where does kernel change phy-clk direction in kernel 6.6.63 ?
what do i miss ?
thank you in advance

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello,

Thank you for reaching out with your question. I understand you’re encountering issues with the second Fast Ethernet Controller (FEC) on your Colibri iMX7D module after upgrading the kernel from version 5.4.161 to 6.6.63. Let’s address this step-by-step.

  1. Review the Device Tree Configuration:

    • Start by examining the device tree files for any changes related to Ethernet configuration. Pay special attention to nodes associated with the FEC and PHY settings, particularly those affecting the clock direction.
    • Ensure that the device tree accurately specifies the clock source and direction for your PHY. You might need to adjust properties like phy-mode to align with your hardware setup.
  2. Examine Kernel Source Code Changes:

    • Investigate the imx7d_enet_clk_sel function in the kernel source code to understand changes between versions 5.4 and 6.6.63. This function is crucial for setting the clock direction.
    • If necessary, consider modifying the kernel source to restore the previous behavior, but proceed with caution and ensure you understand the implications of any changes.
  3. Test and Validate:

    • After making any adjustments, recompile the kernel and test the Ethernet functionality to confirm that the second FEC operates as expected.

By carefully reviewing and adjusting the device tree and understanding the kernel source code changes, you should be able to resolve the issue with the second FEC in the new kernel version.

I hope this helps! If you have further questions, feel free to ask.

Best regards,
Toradex AI Assistant

Please, also check if these links can help you solve your problem:

https://community.nxp.com/t5/i-MX-Processors/imx7d-second-ethernet-port-is-not-working-with-kernel-4-9-39/m-p/686690

Colibri iMX7D 1GB issue with V1.1B - not booting.