we are trying to use two ethernet ports on uboot , in that one ethernet (fec) is working but another ethernet (eqos) is not working in uboot, we have debugged and found that we are able to probe fec but not eqos .
our board is based on nxp imx8mp-evk board , but the difference is we are dp83867 as ethernet phy instead of rtl8211f , can you suggest me any solution ?
CONFIG_PHY_TI_DP83867=y
From your description, it seems like you're having trouble with the Ethernet Quality of Service (EQoS) interface on your custom board based on the NXP i.MX8M Plus EVK. You mentioned that you're using the DP83867 PHY instead of the RTL8211F which is used on the EVK.
Firstly, ensure that the PHY address in the device tree matches the actual hardware configuration. The PHY address is usually set by the hardware strapping pins on the PHY itself.
Secondly, the PHY driver for the DP83867 might not be enabled in your U-Boot configuration. You can check this by looking at the U-Boot configuration file (.config) and ensuring that the following line is present:
CONFIG_PHY_TI=y
If it's not, you'll need to enable it using the U-Boot menuconfig system:
make menuconfig
Then navigate to Device Drivers -> PHY Device support and enable the 'Drivers for TI PHYs' option.
Lastly, you'll need to update the device tree to use the correct PHY driver. The RTL8211F uses the 'ethernet-phy-ieee802.3-c22' driver, but the DP83867 uses the 'ti,dp83867' driver. You can change this in the &fec1 node in your device tree file:
&fec1 { pinctrl-names = 'default'; pinctrl-0 = <&pinctrl_fec1>; phy-mode = 'rgmii-id'; phy-handle = <ðphy1>; status = 'okay'; };
ðphy1 { compatible = 'ti,dp83867'; reg = <1>; };
After making these changes, you should be able to probe the EQoS interface in U-Boot. If you're still having trouble, you might want to check the hardware connections between the i.MX8M Plus and the DP83867, especially the MDIO and MDC lines which are used for PHY configuration.
i have made the above changes then also the eqos is not appear on mdio list , for eqos the phyaddress is 0 i have add the phyaddress , here i have add my eqos dts file changes
&eqos {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_eqos>;
phy-mode = "rgmii-id";
phy-handle = <ðphy0>;
status = "okay";
mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
#size-cells = <0>;
ethphy0: ethernet-phy@0 {
compatible = "ti,dp83867";
reg = <0>;
eee-broken-1000t;
};
};
};
is there any other changes i need to add in my dts file to up eqos ?
The ethernet is working, but the compatible = 'fsl,imx-eqos' has not been added to my '.dts' file, causing the ethernet driver for eqos to not probe.
Hi @arka
I have made the changes in dts and defconfig then the eqos ethernet device is up successfully
The following changes have been made in dts file,
&eqos
{ compatible = "fsl,imx-eqos";
/delete-property/ assigned-clocks;
/delete-property/ assigned-clock-parents;
/delete-property/ assigned-clock-rates; }
The following changes have been made in defconfig.
CONFIG_PHY_TI=y
CONFIG_PHY_TI_DP83867=y
Hi @arka,
I hope you are doing well.
Glad to know that the issue has been resolved. If you have no further queries regarding the same, should I mark this thread as closed?
Thanks & Regards,
Sanket Parekh
ok