Hi Dear,
Thank you for any help. I am getting "FEC: can't find phy-handle" error
When I take a look at dts file, I already have definition of phy-handle but my u-boot was unable to pick it up the definition. My imx6q-nitrogen6x.dts has fec from two dtsi file one from imx6qdl.dtsi and one from imx6qdl-sabrelite.dtsi and imx6qdl-sabrelite.dtsi has phy-handle. but my u-boot was unable to find the phy-handle. could you please let me know how to fix following error?
=> fdt print ethernet0 // I don't see phy-handle from uboot.
ethernet@02188000 {
compatible = "fsl,imx6q-fec";
reg = <0x02188000 0x00004000>;
interrupts-extended = <0x00000001 0x00000000 0x00000076 0x00000004 0x000 00001 0x00000000 0x00000077 0x00000004>;
clocks = <0x00000002 0x00000075 0x00000002 0x00000075 0x00000002 0x00000 0be>;
clock-names = "ipg", "ahb", "ptp";
stop-mode = <0x00000004 0x00000034 0x0000001b>;
fsl,wakeup_irq = <0x00000000>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x0000002d>;
phy-mode = "rgmii";
};
My dts & dtsi define like below.
>>> imx6q-nitrogen6x.dts
#include "imx6q.dtsi"
---> #include "imx6qdl.dtsi"
---> aliases {
ethernet0 = &fec;
fec: ethernet@02188000 {
compatible = "fsl,imx6q-fec";
reg = <0x02188000 0x4000>;
interrupts-extended =
<&gpc 0 118 IRQ_TYPE_LEVEL_HIGH>,
<&gpc 0 119 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX6QDL_CLK_ENET>,
<&clks IMX6QDL_CLK_ENET>,
<&clks IMX6QDL_CLK_ENET_REF>;
clock-names = "ipg", "ahb", "ptp";
stop-mode = <&gpr 0x34 27>;
fsl,wakeup_irq = <0>;
status = "disabled";
};
#include "imx6qdl-nitrogen6x.dtsi"
&fec {
};
>>>> #include "imx6qdl-sabrelite.dtsi"
&fec {
phy-handle = <ðphy1>;
phy-mode = "rgmii";
phy-reset-gpios = GP_ENET_PHY_RESET;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet>;
rxc-skew-ps = <3000>;
rxd0-skew-ps = <0>;
rxd1-skew-ps = <0>;
rxd2-skew-ps = <0>;
rxd3-skew-ps = <0>;
rxdv-skew-ps = <0>;
status = "okay";
txc-skew-ps = <3000>;
txd0-skew-ps = <0>;
txd1-skew-ps = <0>;
txd2-skew-ps = <0>;
txd3-skew-ps = <0>;
txen-skew-ps = <0>;
mdio {
#address-cells = <0>;
#size-cells = <1>;
ethphy1: ethernet-phy@1 {
interrupts-extended = GPIRQ_ENET_PHY;
reg = <0x3>;
};
};
};
thank you.
Solved! Go to Solution.
The node contains phy-handle may be covered by other dtsi. You can try different include sequences or move the node to imx6q-nitrogen6x.dts
thank you for support. I was able to figure it out the solution.
The node contains phy-handle may be covered by other dtsi. You can try different include sequences or move the node to imx6q-nitrogen6x.dts