1. have a custom board with imx6 chip and marvell 88e6122 switch (fec1-mii connection)
2. U-boot initialize pins, switch, FEC is up and i can ping remote host connected to switch.
3. Linux (openwrt kernel 5.4.85) starts and initialize fec as fixed-link. Linux knows nothing about switch. eth0 is up. I run tcpdump and can see ARP requests coming from the remote host. I can see ARP responses on eth0 , but they are not come to remote machine. Also CPU cant ping remote machine. So looks like in linux MII interface work only in one direction.
where is a way to solve problem?
i build and image from yocto source repo init -u https://source.codeaurora.org/external/imx/imx-manifest
-b imx-linux-gatesgarth -m imx-5.10.9-1.0.0.xml . kernel 5.4.74. And it did not help. Switch did not recognize packets.
The kernel version you are using is 5.4.85. We have not issued this version of BSP, so we have no reference BSP version for your problem.
However, we can recommend a direction for your reference
In our BSP, l5.4.70 is the closest to 5.4.85_ 2.30, you can download the source code of the kernel. Using fec_main.c (MAC driver) to replace the MAC driver in your kernel.
# git clone https://source.codeaurora.org/external/imx/linux-imx -b imx_5.4.70_2.3.0
Try it, please!
Have a nice day!
I checked MII interface TX and RX lines and found out the the the length of ARP request packet fec send to switch in Linux ( first picture ) two times shorter than the same paket fec send to switch in U-boot and length come from switch. So it looks like timing issue. What can be cause of it?