We are using i.MX6ULL processor in our custom board with DP83849ID as our Ethernet Phy chip. We are having 2 Ethernet interfaces connected to the phy chip working in RMII mode and the phy chip will provide the reference clock to the processor. We found in the reference design that the processor provides the clock to the phy chip, so what are the software configurations we need to change in our design?
When we are connecting the board to the laptop via one of the Ethernet port by creating a static IP connection, it is showing as "Connection established" print in the laptop and in the board console also we are able to see "Link is Up - 100Mbps/Full - flow control rx/tx". But when we try to ping to the laptop from the board or vice versa it is showing as "Destination Host unreachable". We found that there is no increase in the RX and TX bytes when we give ifconfig command in board's console.
When we set GPR1 General Purpose Register (IOMUXC_GPR_GPR1) bit [17,18] and bit [13,14] only we are finding the increase in RX and TX bytes in ifconfig command but that too ping is not happening. We had checked the packet received using Wireshark in laptop also but we can't find any packet regarding the ping with source ip as the one we had set in the board. When we clear the bit [17,18] of the IOMUXC_GPR_GPR1 register we are not seeing the TX and RX bytes increasing.
for uboot DP83849 settings one can look at configuration for DP83848,
seems it is similar to DP83849
for dual enet issues may be useful:
We had tried those but that were not working. When we had gone through the include/configs/mx6ullevk.h file we came across one field called CONFIG_FEC_ENET_DEV which is defined as 1. With this configuration eth0 is working fine in u-boot and when we changed that field to 0 eth1 is working fine in u-boot. So it is like only one Ethernet interface can be configured in u-boot?
Another update is that now we are able to ping in both the interfaces after kernel boots up. When we try to ping in U-boot we are not able to ping in any of the interfaces. We checked the U-boot code and found that by default only of the interface is getting configured. In the U-boot config file when we change the CONFIG_FEC_ENET_DEV macro to 0 means in the FEC0 interface we are able to ping in U-boot for sometimes but when CONFIG_FEC_ENET_DEV is set to 1 we are not able to ping in both FEC0 and FEC1 interface. So whether in U-boot only one interface can be initialized and how to ping from U-boot?
One update is that we are able to ping in one of the Ethernet interface. The issue is that in the phy chip side extended mode strap was enabled and while removing that strap we are able to ping in one of the interface but that too with the bit [17,18,13,14] set in the IOMUXC_GPR_GPR1 register. But we are not able to ping through the other Ethernet interface. We had checked in wireshark and found that the laptop is sending reply to the ICMP request packet coming from the board but that too very rarely.